From 533edfd9b3e0feb8255090af67bd7191476f9c1a Mon Sep 17 00:00:00 2001 From: albertxu216 <145351853+albertxu216@users.noreply.github.com> Date: Sun, 24 Mar 2024 15:10:07 +0800 Subject: [PATCH 01/11] Add mq_delay --- .../CPU_Subsystem/cpu_watcher/mq_delay.bpf.c | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c new file mode 100644 index 000000000..ea413e0de --- /dev/null +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c @@ -0,0 +1,89 @@ +#include "vmlinux.h" +#include //包含了BPF 辅助函数 +#include +#include + +#include "mq_delay.h" + + +char LICENSE[] SEC("license") = "Dual BSD/GPL"; + +BPF_PERCPU_HASH(Time,mqd_t,struct events,1024);//记录事件 + +BPF_PERCPU_HASH(key,int,mqd_t,1024);//通过pid帮助exit_receive找到mqdes; + +struct { + __uint(type, BPF_MAP_TYPE_RINGBUF); + __uint(max_entries, 256 * 1024); +} rb SEC(".maps"); + + + +SEC("kprobe/do_mq_timedsend") +int BPF_KPROBE(mq_timedsend,mqd_t mqdes, const char __user *u_msg_ptr, + size_t msg_len, unsigned int msg_prio, + struct timespec64 *ts) +{ + u64 send_enter_time = bpf_ktime_get_ns();//开始发送信息时间; + int pid = bpf_get_current_pid_tgid();//发送端pid + //bpf_map_update_elem(&key, &pid, &mqdes, BPF_ANY);//记录发送端pid与mqdes键值 + //bpf_printk("send_pid: %-8llu ,mqdes: %-8llu, msg_len: %-8d, msg_prio: %-8lu\n",pid,mqdes,msg_len,msg_prio); + + /*记录数值*/ + struct events val={}; + val.send_pid = pid; + val.mqdes = mqdes; + val.send_enter_time = send_enter_time; + bpf_map_update_elem(&Time, &mqdes, &val, BPF_ANY); + + + return 0; +} + +SEC("kprobe/do_mq_timedreceive") +int BPF_KPROBE(mq_timedreceive_entry,mqd_t mqdes, const char __user *u_msg_ptr, + size_t msg_len, unsigned int msg_prio, + struct timespec64 *ts) +{ + u64 rcv_enter_time = bpf_ktime_get_ns(); + int pid = bpf_get_current_pid_tgid(); + bpf_map_update_elem(&key, &pid, &mqdes, BPF_ANY);//记录接收端pid与mqdes键值 + + + return 0; +} + +SEC("kretprobe/do_mq_timedreceive") +int BPF_KRETPROBE(mq_timedreceive_exit) +{ + u64 rcv_finish_time = bpf_ktime_get_ns(); + int pid = bpf_get_current_pid_tgid(); + u64 delay; + /*通过接收进程的pid,获取消息队列的消息号mqdes*/ + mqd_t *mqdes = bpf_map_lookup_elem(&key, &pid); + if(!mqdes) return 0; + + /*通过mqdes,获取发送消息时记录的信息*/ + struct events *val = bpf_map_lookup_elem(&Time, mqdes); + if(!val){ + return 0; + }else delay = (rcv_finish_time - val->send_enter_time)/1000000000; + + struct events *e; + e = bpf_ringbuf_reserve(&rb, sizeof(*e), 0); + if (!e) return 0; + + e->send_pid = val->send_pid; + e->rcv_pid = pid;//获取到当前进程的pid + e->mqdes = val->mqdes; + e->send_enter_time = val->send_enter_time; + e->rcv_enter_time = val->rcv_enter_time; + e->rcv_exit_time = rcv_finish_time; + e->delay = delay; + + bpf_map_delete_elem(&Time, &mqdes);//暂时性删除 + bpf_ringbuf_submit(e, 0); + + + return 0; +} From 68aedd92bb1711a4d9491f8660ed96f3a441fdec Mon Sep 17 00:00:00 2001 From: albertxu216 <1418106416@qq.com> Date: Mon, 25 Mar 2024 12:14:39 +0800 Subject: [PATCH 02/11] Add mq_delay --- .../CPU_Subsystem/cpu_watcher/mq_delay.bpf.c | 107 ++++++++++-------- 1 file changed, 58 insertions(+), 49 deletions(-) diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c index ea413e0de..69b567898 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c @@ -12,78 +12,87 @@ BPF_PERCPU_HASH(Time,mqd_t,struct events,1024);//记录事件 BPF_PERCPU_HASH(key,int,mqd_t,1024);//通过pid帮助exit_receive找到mqdes; +BPF_PERCPU_HASH(get_msg1,pid_t,struct events,1024);//记录pid->u_msg_ptr的关系;do_mq_timedsend入参 +BPF_PERCPU_HASH(get_msg,struct msg_msg,u64,1024);//记录msg->time的关系; struct { __uint(type, BPF_MAP_TYPE_RINGBUF); __uint(max_entries, 256 * 1024); } rb SEC(".maps"); - SEC("kprobe/do_mq_timedsend") -int BPF_KPROBE(mq_timedsend,mqd_t mqdes, const char __user *u_msg_ptr, +int BPF_KPROBE(mq_timedsend,mqd_t mqdes, const char *u_msg_ptr, size_t msg_len, unsigned int msg_prio, struct timespec64 *ts) { u64 send_enter_time = bpf_ktime_get_ns();//开始发送信息时间; int pid = bpf_get_current_pid_tgid();//发送端pid - //bpf_map_update_elem(&key, &pid, &mqdes, BPF_ANY);//记录发送端pid与mqdes键值 - //bpf_printk("send_pid: %-8llu ,mqdes: %-8llu, msg_len: %-8d, msg_prio: %-8lu\n",pid,mqdes,msg_len,msg_prio); - - /*记录数值*/ - struct events val={}; - val.send_pid = pid; - val.mqdes = mqdes; - val.send_enter_time = send_enter_time; - bpf_map_update_elem(&Time, &mqdes, &val, BPF_ANY); - + /*赋值*/ + struct events mq_info ={}; + mq_info.send_pid= pid; + mq_info.send_enter_time = send_enter_time; + mq_info.mqdes= mqdes; + mq_info.msg_len = msg_len; + mq_info.msg_prio = msg_prio; + mq_info.u_msg_ptr = u_msg_ptr; + + bpf_map_update_elem(&get_msg1, &pid, &mq_info, BPF_ANY);//pid->u_msg_ptr + // bpf_map_update_elem(&get_msg2, &pid, &send_enter_time, BPF_ANY);//pid->time return 0; } +SEC("kprobe/load_msg") +int BPF_KPROBE(load_msg_enter,const void *src, size_t len){ + int pid = bpf_get_current_pid_tgid();//发送端pid + /*记录load入参src*/ + struct events *mq_info = bpf_map_lookup_elem(&get_msg1, &pid); + if(!mq_info){ + return 0; + }else{ + mq_info->src = src; + } + bpf_map_update_elem(&get_msg1, &pid, mq_info, BPF_ANY);//pid->src -SEC("kprobe/do_mq_timedreceive") -int BPF_KPROBE(mq_timedreceive_entry,mqd_t mqdes, const char __user *u_msg_ptr, - size_t msg_len, unsigned int msg_prio, - struct timespec64 *ts) -{ - u64 rcv_enter_time = bpf_ktime_get_ns(); - int pid = bpf_get_current_pid_tgid(); - bpf_map_update_elem(&key, &pid, &mqdes, BPF_ANY);//记录接收端pid与mqdes键值 - - - return 0; + return 0; } - -SEC("kretprobe/do_mq_timedreceive") -int BPF_KRETPROBE(mq_timedreceive_exit) -{ - u64 rcv_finish_time = bpf_ktime_get_ns(); - int pid = bpf_get_current_pid_tgid(); - u64 delay; - /*通过接收进程的pid,获取消息队列的消息号mqdes*/ - mqd_t *mqdes = bpf_map_lookup_elem(&key, &pid); - if(!mqdes) return 0; - - /*通过mqdes,获取发送消息时记录的信息*/ - struct events *val = bpf_map_lookup_elem(&Time, mqdes); - if(!val){ +SEC("kretprobe/load_msg") +int BPF_KRETPROBE(load_msg_exit,void *ret){ + int pid = bpf_get_current_pid_tgid();//发送端pid + /*构建消息块结构体,作为key*/ + struct msg_msg *tmp =(struct msg_msg *)ret; + struct events *mq_info = bpf_map_lookup_elem(&get_msg1, &pid); + if(!mq_info){ + bpf_printk("erro2"); return 0; - }else delay = (rcv_finish_time - val->send_enter_time)/1000000000; + } + /*make key*/ + mq_info->Key_msg_ptr = (struct msg_msg){0}; + mq_info->Key_msg_ptr.m_list = BPF_CORE_READ(tmp,m_list); + mq_info->Key_msg_ptr.m_type = BPF_CORE_READ(tmp,m_type); + mq_info->Key_msg_ptr.m_ts = BPF_CORE_READ(tmp,m_ts); + mq_info->Key_msg_ptr.next = BPF_CORE_READ(tmp,next); + mq_info->Key_msg_ptr.security = BPF_CORE_READ(tmp,security); + mq_info->Key_msg_ptr.m_type = mq_info->msg_prio; + mq_info->Key_msg_ptr.m_ts = mq_info->msg_len; struct events *e; e = bpf_ringbuf_reserve(&rb, sizeof(*e), 0); if (!e) return 0; - e->send_pid = val->send_pid; - e->rcv_pid = pid;//获取到当前进程的pid - e->mqdes = val->mqdes; - e->send_enter_time = val->send_enter_time; - e->rcv_enter_time = val->rcv_enter_time; - e->rcv_exit_time = rcv_finish_time; - e->delay = delay; + e->send_pid = mq_info->send_pid; + e->send_enter_time = mq_info->send_enter_time; + e->mqdes = mq_info->mqdes; + e->msg_len = mq_info->msg_len; + e->msg_prio = mq_info->msg_prio; + e->u_msg_ptr = mq_info->u_msg_ptr; + e->src = mq_info->src; - bpf_map_delete_elem(&Time, &mqdes);//暂时性删除 - bpf_ringbuf_submit(e, 0); + e->m_type = BPF_CORE_READ(tmp,m_type); + e->m_ts = BPF_CORE_READ(tmp,m_ts); + e->Key_msg_ptr = mq_info->Key_msg_ptr; + bpf_map_delete_elem(&get_msg1, &pid);//暂时性删除 + bpf_ringbuf_submit(e, 0); - return 0; -} + return 0; +} \ No newline at end of file From fe8f8ca971c57b1e19c2bbe2aeefad209c71903d Mon Sep 17 00:00:00 2001 From: albertxu216 <1418106416@qq.com> Date: Thu, 28 Mar 2024 19:54:22 +0800 Subject: [PATCH 03/11] Add mq_delay --- .../CPU_Subsystem/cpu_watcher/Makefile | 2 +- .../CPU_Subsystem/cpu_watcher/cpu_watcher.c | 84 +++++++- .../CPU_Subsystem/cpu_watcher/cpu_watcher.h | 46 +++- .../CPU_Subsystem/cpu_watcher/mq_delay.bpf.c | 203 +++++++++++++----- 4 files changed, 280 insertions(+), 55 deletions(-) diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/Makefile b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/Makefile index a1757cf4b..efe1a9de9 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/Makefile +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/Makefile @@ -42,7 +42,7 @@ INCLUDES := -I$(OUTPUT) -I../../../libbpf/include/uapi -I$(dir $(VMLINUX)) -I$(L CFLAGS := -g -Wall ALL_LDFLAGS := $(LDFLAGS) $(EXTRA_LDFLAGS) -APPS =cs_delay sar sc_delay preempt schedule_delay +APPS =cs_delay sar sc_delay preempt schedule_delay mq_delay TARGETS=cpu_watcher diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c index d5b890ac5..8c2beaf39 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c @@ -31,10 +31,23 @@ #include "sc_delay.skel.h" #include "preempt.skel.h" #include "schedule_delay.skel.h" +#include "mq_delay.skel.h" typedef long long unsigned int u64; typedef unsigned int u32; +struct list_head { + struct list_head *next; + struct list_head *prev; +}; +struct msg_msg { + struct list_head m_list; + long int m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; +}; + static struct env { int time; bool enable_proc; @@ -43,6 +56,7 @@ static struct env { bool SYSCALL_DELAY; bool PREEMPT; bool SCHEDULE_DELAY; + bool MQ_DELAY; int freq; } env = { .time = 0, @@ -52,6 +66,7 @@ static struct env { .SYSCALL_DELAY = false, .PREEMPT = false, .SCHEDULE_DELAY = false, + .MQ_DELAY = false, .freq = 99 }; @@ -61,6 +76,7 @@ struct sar_bpf *sar_skel; struct sc_delay_bpf *sc_skel; struct preempt_bpf *preempt_skel; struct schedule_delay_bpf *sd_skel; +struct mq_delay_bpf *mq_skel; u64 softirq = 0;//初始化softirq; u64 irqtime = 0;//初始化irq; @@ -90,6 +106,7 @@ static const struct argp_option opts[] = { {"syscall_delay", 'S', 0,0,"print syscall_delay (the data of syscall)"}, {"preempt_time", 'p', 0,0,"print preempt_time (the data of preempt_schedule)"}, {"schedule_delay", 'd', 0,0,"print schedule_delay (the data of cpu)"}, + {"mq_delay", 'm', 0,0,"print mq_delay"}, { NULL, 'h', NULL, OPTION_HIDDEN, "show the full help" }, {0}, }; @@ -115,6 +132,9 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state) case 'd': env.SCHEDULE_DELAY = true; break; + case 'm': + env.MQ_DELAY = true; + break; case 'h': argp_state_help(state, stderr, ARGP_HELP_STD_HELP); break; @@ -455,6 +475,24 @@ static int schedule_print(struct bpf_map *sys_fd) return 0; } +static int mq_event(void *ctx, void *data,unsigned long data_sz) +{ + time_t now = time(NULL);// 获取当前时间 + struct tm *localTime = localtime(&now);// 将时间转换为本地时间结构 + printf("\n\nTime: %02d:%02d:%02d\n",localTime->tm_hour, localTime->tm_min, localTime->tm_sec); + printf("-----------------------------------------------------------------------------------------------------------\n"); + const struct mq_events *e = data; + printf("Mqdes: %-8llu msg_len: %-8llu msg_prio: %-8llu\n",e->mqdes,e->msg_len,e->msg_prio); + printf("SND_PID: %-8lu SND_enter_time: %-16llu\n", + e->send_pid,e->send_enter_time); + printf("-----------------------------------------------------------------------------------------------------------\n"); + printf("RCV_PID: %-8lu RCV_enter_time: %-16llu RCV_exit_time: %-16llu\n", + e->rcv_pid,e->rcv_enter_time,e->rcv_exit_time); + printf("RCV_Delay: %-8.2fms\nDelay: %-8.2fms\n\n",(e->rcv_exit_time - e->rcv_enter_time)/1000000.0,e->delay/1000000.0); + + return 0; +} + int main(int argc, char **argv) { @@ -582,7 +620,7 @@ int main(int argc, char **argv) fprintf(stderr, "Failed to attach BPF skeleton\n"); goto schedule_cleanup; } - printf("%-8s %s\n", " TIME ", "avg_delay/μs max_delay/μs min_delay/μs"); + printf("%-8s %s\n", " TIME ", "avg_delay/μs max_delay/μs min_delay/μs"); }else if (env.SAR){ /* Load and verify BPF application */ sar_skel = sar_bpf__open(); @@ -613,6 +651,34 @@ int main(int argc, char **argv) } //printf(" time proc/s cswch/s runqlen irqTime/us softirq/us idle/ms kthread/us sysc/ms utime/ms sys/ms BpfCnt\n"); printf(" time proc/s cswch/s irqTime/us softirq/us idle/ms kthread/us sysc/ms utime/ms sys/ms\n"); + }else if(env.MQ_DELAY){ + /* Load and verify BPF application */ + mq_skel = mq_delay_bpf__open(); + if (!mq_skel) + { + fprintf(stderr, "Failed to open and load BPF skeleton\n"); + return 1; + } + /* Load & verify BPF programs */ + err = mq_delay_bpf__load(mq_skel); + if (err) + { + fprintf(stderr, "Failed to load and verify BPF skeleton\n"); + goto mq_delay_cleanup; + } + /* Attach tracepoints */ + err = mq_delay_bpf__attach(mq_skel); + if (err) + { + fprintf(stderr, "Failed to attach BPF skeleton\n"); + goto mq_delay_cleanup; + } + rb = ring_buffer__new(bpf_map__fd(mq_skel->maps.rb), mq_event, NULL, NULL); //ring_buffer__new() API,允许在不使用额外选项数据结构下指定回调 + if (!rb) { + err = -1; + fprintf(stderr, "Failed to create ring buffer\n"); + goto mq_delay_cleanup; + } } while (!exiting) { if(env.SAR){ @@ -692,6 +758,17 @@ int main(int argc, char **argv) } sleep(1); } + else if(env.MQ_DELAY){ + err = ring_buffer__poll(rb, 1000 /* timeout, s */); + if (err == -EINTR) { + err = 0; + break; + } + if (err < 0) { + printf("Error polling perf buffer: %d\n", err); + break; + } + } else { printf("正在开发中......\n-c 打印cs_delay:\t对内核函数schedule()的执行时长进行测试;\n-s sar工具;\n-y 打印sc_delay:\t系统调用运行延迟进行检测; \n-p 打印preempt_time:\t对抢占调度时间输出;\n"); break; @@ -720,4 +797,9 @@ int main(int argc, char **argv) schedule_cleanup: schedule_delay_bpf__destroy(sd_skel); return err < 0 ? -err : 0; + +mq_delay_cleanup: + ring_buffer__free(rb); + mq_delay_bpf__destroy(mq_skel); + return err < 0 ? -err : 0; } diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h index e21ef66cb..4d09caabf 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h @@ -17,10 +17,11 @@ // eBPF map for libbpf sar #include #include -//#include typedef long long unsigned int u64; typedef unsigned int u32; +typedef __kernel_mqd_t mqd_t; +#define __user #define MAX_CPU_NR 128 #define TASK_COMM_LEN 20 #define SYSCALL_MIN_TIME 1E7 @@ -142,6 +143,49 @@ struct sum_schedule{ unsigned long long max_delay; unsigned long long min_delay; }; + +/*----------------------------------------------*/ +/* mq_delay相关结构体 */ +/*----------------------------------------------*/ +struct mq_events { + int send_pid; + int rcv_pid; + mqd_t mqdes; + size_t msg_len; + unsigned int msg_prio; + + u64 send_enter_time; + u64 send_exit_time; + u64 send_delay; + + u64 rcv_enter_time; + u64 rcv_exit_time; + u64 rcv_delay; + u64 delay; +}; +struct send_events { + int send_pid; + u64 Key_msg_ptr; + + mqd_t mqdes; + size_t msg_len; + unsigned int msg_prio; + const char *u_msg_ptr; + const void *src; + u64 send_enter_time; + u64 send_exit_time; +}; +struct rcv_events { + int rcv_pid; + u64 Key_msg_ptr; + mqd_t mqdes; + size_t msg_len; + unsigned int msg_prio; + const char *u_msg_ptr; + const void *dest; + u64 rcv_enter_time; + u64 rcv_exit_time; +}; /*----------------------------------------------*/ /* cswch_args结构体 */ /*----------------------------------------------*/ diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c index 69b567898..f69f1839f 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c @@ -3,23 +3,45 @@ #include #include -#include "mq_delay.h" +#include "cpu_watcher.h" char LICENSE[] SEC("license") = "Dual BSD/GPL"; -BPF_PERCPU_HASH(Time,mqd_t,struct events,1024);//记录事件 - -BPF_PERCPU_HASH(key,int,mqd_t,1024);//通过pid帮助exit_receive找到mqdes; - -BPF_PERCPU_HASH(get_msg1,pid_t,struct events,1024);//记录pid->u_msg_ptr的关系;do_mq_timedsend入参 -BPF_PERCPU_HASH(get_msg,struct msg_msg,u64,1024);//记录msg->time的关系; +BPF_HASH(send_msg1,pid_t,struct send_events,1024);//记录pid->u_msg_ptr的关系;do_mq_timedsend入参 +BPF_HASH(send_msg2,u64,struct send_events,1024);//记录msg->time的关系; +BPF_HASH(rcv_msg1,pid_t,struct rcv_events,1024);//记录pid->u_msg_ptr的关系;do_mq_timedsend入参 struct { __uint(type, BPF_MAP_TYPE_RINGBUF); __uint(max_entries, 256 * 1024); } rb SEC(".maps"); - +// int print_send_info(struct send_events * mq_send_info,int flag){ +// bpf_printk("---------------------test----------------------------test--------------------------test--------------------------------------------test---------------------test---------------------test\n"); +// bpf_printk("send_msg_prio: %-8lu\n",mq_send_info->msg_prio); +// bpf_printk("mqdes: %-08lu send_pid: %-08lu send_enter_time: %-16lu\n",mq_send_info->mqdes,mq_send_info->send_pid,mq_send_info->send_enter_time); +// if(flag > 0){ +// bpf_printk("u_msg_ptr: 0x%08lx src: 0x%08lx\n",mq_send_info->u_msg_ptr,mq_send_info->src); +// if(flag==2) bpf_printk("Key_msg_ptr: 0x%08lx \n",mq_send_info->Key_msg_ptr); +// } +// bpf_printk("---------------------test----------------------------test--------------------------test--------------------------------------------test---------------------test---------------------test\n"); +// return 0; +// } + +// int print_rcv_info(struct rcv_events * mq_rcv_info,int flag){ +// bpf_printk("---------------------test----------------------------test--------------------------test--------------------------------------------test---------------------test---------------------test\n"); +// bpf_printk("rcv_msg_prio: %-8lu\n",mq_rcv_info->msg_prio); +// bpf_printk("mqdes: %-08lu rcv_pid: %-08lu rcv_enter_time: %-16lu\n",mq_rcv_info->mqdes,mq_rcv_info->rcv_pid,mq_rcv_info->rcv_enter_time); +// if(flag > 0){ +// bpf_printk("u_msg_ptr: 0x%08lx dest: 0x%08lx\n",mq_rcv_info->u_msg_ptr,mq_rcv_info->dest); +// if(flag==2) bpf_printk("Key_msg_ptr: 0x%08lx \n",mq_rcv_info->Key_msg_ptr); +// } +// bpf_printk("---------------------test----------------------------test--------------------------test--------------------------------------------test---------------------test---------------------test\n"); +// return 0; +// } + + +/*获取 mq_send_info -> send_time send_pid mdqes u_msg_ptr msg_len msg_prio*/ SEC("kprobe/do_mq_timedsend") int BPF_KPROBE(mq_timedsend,mqd_t mqdes, const char *u_msg_ptr, size_t msg_len, unsigned int msg_prio, @@ -28,71 +50,148 @@ int BPF_KPROBE(mq_timedsend,mqd_t mqdes, const char *u_msg_ptr, u64 send_enter_time = bpf_ktime_get_ns();//开始发送信息时间; int pid = bpf_get_current_pid_tgid();//发送端pid - /*赋值*/ - struct events mq_info ={}; - mq_info.send_pid= pid; - mq_info.send_enter_time = send_enter_time; - mq_info.mqdes= mqdes; - mq_info.msg_len = msg_len; - mq_info.msg_prio = msg_prio; - mq_info.u_msg_ptr = u_msg_ptr; - - bpf_map_update_elem(&get_msg1, &pid, &mq_info, BPF_ANY);//pid->u_msg_ptr - // bpf_map_update_elem(&get_msg2, &pid, &send_enter_time, BPF_ANY);//pid->time + /*将消息暂存至send_events结构体中*/ + struct send_events mq_send_info ={}; + mq_send_info.send_pid= pid; + mq_send_info.send_enter_time = send_enter_time; + mq_send_info.mqdes= mqdes; + mq_send_info.msg_len = msg_len; + mq_send_info.msg_prio = msg_prio; + mq_send_info.u_msg_ptr = u_msg_ptr; + + bpf_map_update_elem(&send_msg1, &pid, &mq_send_info, BPF_ANY);//pid->u_msg_ptr return 0; } + +/*仅获取mq_send_info -> src*/ SEC("kprobe/load_msg") int BPF_KPROBE(load_msg_enter,const void *src, size_t len){ int pid = bpf_get_current_pid_tgid();//发送端pid /*记录load入参src*/ - struct events *mq_info = bpf_map_lookup_elem(&get_msg1, &pid); - if(!mq_info){ + struct send_events *mq_send_info = bpf_map_lookup_elem(&send_msg1, &pid); + if(!mq_send_info){ return 0; }else{ - mq_info->src = src; + mq_send_info->src = src; } - bpf_map_update_elem(&get_msg1, &pid, mq_info, BPF_ANY);//pid->src - return 0; } + +/*获取消息块作为key,并建立 message -> mq_send_info 的哈希表*/ SEC("kretprobe/load_msg") int BPF_KRETPROBE(load_msg_exit,void *ret){ int pid = bpf_get_current_pid_tgid();//发送端pid /*构建消息块结构体,作为key*/ - struct msg_msg *tmp =(struct msg_msg *)ret; - struct events *mq_info = bpf_map_lookup_elem(&get_msg1, &pid); - if(!mq_info){ - bpf_printk("erro2"); + struct send_events *mq_send_info = bpf_map_lookup_elem(&send_msg1, &pid); + if(!mq_send_info){ + return 0; + } + + /*make key*/ + u64 Key_msg_ptr; + if(mq_send_info->u_msg_ptr == mq_send_info->src && pid == mq_send_info->send_pid){ + /*该load_msg为do_mq_timedsend调用*/ + Key_msg_ptr =(u64)ret; + mq_send_info->Key_msg_ptr = Key_msg_ptr; + } + else { return 0; } + /*已经获得key*/ + bpf_map_update_elem(&send_msg2, &Key_msg_ptr, mq_send_info, BPF_ANY);//key_messege->mq_send_info; + bpf_map_delete_elem(&send_msg1,&pid); + return 0; +} +/*-----------------------------------------------------------------------------发送端--------------------------------------------------------------------------------------------------------*/ +/* 分界 */ +/*-----------------------------------------------------------------------------接收端--------------------------------------------------------------------------------------------------------*/ +/*接收端*/ +SEC("kprobe/do_mq_timedreceive") +int BPF_KPROBE(mq_timedreceive_entry,mqd_t mqdes, const char __user *u_msg_ptr, + size_t msg_len, unsigned int msg_prio, + struct timespec64 *ts) +{ + u64 rcv_enter_time = bpf_ktime_get_ns(); + int pid = bpf_get_current_pid_tgid(); + + /*赋值*/ + struct rcv_events mq_rcv_info ={}; + mq_rcv_info.rcv_pid= pid; + mq_rcv_info.rcv_enter_time = rcv_enter_time; + mq_rcv_info.mqdes= mqdes; + mq_rcv_info.u_msg_ptr = u_msg_ptr; + bpf_map_update_elem(&rcv_msg1, &pid, &mq_rcv_info, BPF_ANY);//pid->u_msg_ptr + + return 0; +} + +SEC("kprobe/store_msg") +int BPF_KPROBE(store_msg,void __user *dest, struct msg_msg *msg, size_t len) +{ + int pid = bpf_get_current_pid_tgid(); + /*make key*/ - mq_info->Key_msg_ptr = (struct msg_msg){0}; - mq_info->Key_msg_ptr.m_list = BPF_CORE_READ(tmp,m_list); - mq_info->Key_msg_ptr.m_type = BPF_CORE_READ(tmp,m_type); - mq_info->Key_msg_ptr.m_ts = BPF_CORE_READ(tmp,m_ts); - mq_info->Key_msg_ptr.next = BPF_CORE_READ(tmp,next); - mq_info->Key_msg_ptr.security = BPF_CORE_READ(tmp,security); - mq_info->Key_msg_ptr.m_type = mq_info->msg_prio; - mq_info->Key_msg_ptr.m_ts = mq_info->msg_len; - - struct events *e; + u64 Key_msg_ptr = (u64)msg; + struct send_events *mq_send_info = bpf_map_lookup_elem(&send_msg2, &Key_msg_ptr); + if(!mq_send_info){ + return 0; + } + + struct rcv_events *mq_rcv_info = bpf_map_lookup_elem(&rcv_msg1, &pid); + if(!mq_rcv_info){ + return 0; + } + /*拿到mq_rcv_info*/ + if(dest == mq_rcv_info->u_msg_ptr && pid == mq_rcv_info->rcv_pid){ + mq_rcv_info->Key_msg_ptr = Key_msg_ptr; + mq_rcv_info->dest = dest; + mq_rcv_info->msg_prio = BPF_CORE_READ(msg,m_type); + mq_rcv_info->msg_len = BPF_CORE_READ(msg,m_ts); + }else{ + return 0; + } + return 0; +} + +SEC("kretprobe/do_mq_timedreceive") +int BPF_KRETPROBE(do_mq_timedreceive_exit,void *ret){ + u64 rcv_exit_time = bpf_ktime_get_ns(); + int pid = bpf_get_current_pid_tgid(); + u64 send_enter_time,delay; + u64 Key; + + /*获取发送端、接收端信息*/ + struct rcv_events *mq_rcv_info = bpf_map_lookup_elem(&rcv_msg1, &pid); + if(!mq_rcv_info){ + return 0; + } + Key = mq_rcv_info->Key_msg_ptr; + struct send_events *mq_send_info = bpf_map_lookup_elem(&send_msg2,&Key); + if(!mq_send_info){ + return 0; + } + + send_enter_time = mq_send_info->send_enter_time; + delay = rcv_exit_time - send_enter_time; + + /*ringbuffer传值*/ + struct mq_events *e; e = bpf_ringbuf_reserve(&rb, sizeof(*e), 0); if (!e) return 0; + e->send_pid = mq_send_info->send_pid; + e->rcv_pid = pid; + e->mqdes = mq_send_info->mqdes; + e->msg_len = mq_send_info->msg_len; + e->msg_prio = mq_send_info->msg_prio; - e->send_pid = mq_info->send_pid; - e->send_enter_time = mq_info->send_enter_time; - e->mqdes = mq_info->mqdes; - e->msg_len = mq_info->msg_len; - e->msg_prio = mq_info->msg_prio; - e->u_msg_ptr = mq_info->u_msg_ptr; - e->src = mq_info->src; - - e->m_type = BPF_CORE_READ(tmp,m_type); - e->m_ts = BPF_CORE_READ(tmp,m_ts); - e->Key_msg_ptr = mq_info->Key_msg_ptr; - bpf_map_delete_elem(&get_msg1, &pid);//暂时性删除 + e->send_enter_time = mq_send_info->send_enter_time; + e->rcv_enter_time = mq_rcv_info->rcv_enter_time; + e->rcv_exit_time = rcv_exit_time; + e->delay = delay; bpf_ringbuf_submit(e, 0); + bpf_map_delete_elem(&send_msg2, &Key);//暂时性删除 + bpf_map_delete_elem(&rcv_msg1,&pid);//删除rcv_msg1 map; + return 0; - return 0; -} \ No newline at end of file +} From 11b5141ae99abd58a850e484f8e6adcc3959449a Mon Sep 17 00:00:00 2001 From: albertxu216 <145351853+albertxu216@users.noreply.github.com> Date: Thu, 28 Mar 2024 20:03:52 +0800 Subject: [PATCH 04/11] add the head --- .../CPU_Subsystem/cpu_watcher/mq_delay.bpf.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c index f69f1839f..0284b1768 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c @@ -1,3 +1,20 @@ +// Copyright 2024 The LMP Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://github.com/linuxkerneltravel/lmp/blob/develop/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// author: albert_xuu@163.com + + #include "vmlinux.h" #include //包含了BPF 辅助函数 #include From 05b47541eeb52a95f5e35ca391620019f89b5c9b Mon Sep 17 00:00:00 2001 From: albertxu216 <1418106416@qq.com> Date: Fri, 29 Mar 2024 11:52:47 +0800 Subject: [PATCH 05/11] =?UTF-8?q?mq=5Fdelay=20=E5=A2=9E=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E5=8F=91=E9=80=81&&=E6=8E=A5=E6=94=B6=E6=97=B6=E5=BB=B6?= =?UTF-8?q?=E7=9A=84=E7=9B=91=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CPU_Subsystem/cpu_watcher/cpu_watcher.c | 18 +++++--- .../CPU_Subsystem/cpu_watcher/cpu_watcher.h | 4 -- .../CPU_Subsystem/cpu_watcher/mq_delay.bpf.c | 46 +++++++++---------- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c index 8c2beaf39..29e622e68 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.c @@ -480,16 +480,22 @@ static int mq_event(void *ctx, void *data,unsigned long data_sz) time_t now = time(NULL);// 获取当前时间 struct tm *localTime = localtime(&now);// 将时间转换为本地时间结构 printf("\n\nTime: %02d:%02d:%02d\n",localTime->tm_hour, localTime->tm_min, localTime->tm_sec); - printf("-----------------------------------------------------------------------------------------------------------\n"); + printf("-----------------------------------------------------------------------------------------------------------------------\n"); const struct mq_events *e = data; + printf("Mqdes: %-8llu msg_len: %-8llu msg_prio: %-8llu\n",e->mqdes,e->msg_len,e->msg_prio); - printf("SND_PID: %-8lu SND_enter_time: %-16llu\n", - e->send_pid,e->send_enter_time); - printf("-----------------------------------------------------------------------------------------------------------\n"); + printf("SND_PID: %-8lu SND_enter_time: %-16llu SND_exit_time: %-16llu\n", + e->send_pid,e->send_enter_time,e->send_exit_time); printf("RCV_PID: %-8lu RCV_enter_time: %-16llu RCV_exit_time: %-16llu\n", e->rcv_pid,e->rcv_enter_time,e->rcv_exit_time); - printf("RCV_Delay: %-8.2fms\nDelay: %-8.2fms\n\n",(e->rcv_exit_time - e->rcv_enter_time)/1000000.0,e->delay/1000000.0); - + printf("-------------------------------------------------------------------------------\n"); + + printf("SND_Delay/ms: %-8.2f RCV_Delay/ms: %-8.2f Delay/ms: %-8.5f\n", + (e->send_exit_time - e->send_enter_time)/1000000.0, + (e->rcv_exit_time - e->rcv_enter_time)/1000000.0, + (e->rcv_exit_time - e->send_enter_time)/1000000.0); + printf("-----------------------------------------------------------------------------------------------------------------------\n\n"); + return 0; } diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h index 4d09caabf..6812096ce 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/cpu_watcher.h @@ -156,12 +156,8 @@ struct mq_events { u64 send_enter_time; u64 send_exit_time; - u64 send_delay; - u64 rcv_enter_time; u64 rcv_exit_time; - u64 rcv_delay; - u64 delay; }; struct send_events { int send_pid; diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c index 0284b1768..65c140cfd 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c @@ -1,20 +1,3 @@ -// Copyright 2024 The LMP Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://github.com/linuxkerneltravel/lmp/blob/develop/LICENSE -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// author: albert_xuu@163.com - - #include "vmlinux.h" #include //包含了BPF 辅助函数 #include @@ -116,9 +99,30 @@ int BPF_KRETPROBE(load_msg_exit,void *ret){ } /*已经获得key*/ bpf_map_update_elem(&send_msg2, &Key_msg_ptr, mq_send_info, BPF_ANY);//key_messege->mq_send_info; - bpf_map_delete_elem(&send_msg1,&pid); return 0; } + +SEC("kretprobe/do_mq_timedsend") +int BPF_KRETPROBE(do_mq_timedsend_exit,void *ret) +{ + bpf_printk("do_mq_timedsend_exit----------------------------------------------------------------\n"); + u64 send_exit_time = bpf_ktime_get_ns();//开始发送信息时间; + int pid = bpf_get_current_pid_tgid();//发送端pid + u64 Key; + + struct send_events *mq_send_info1 = bpf_map_lookup_elem(&send_msg1, &pid); + if(!mq_send_info1){ + return 0; + } + Key = mq_send_info1->Key_msg_ptr; + struct send_events *mq_send_info2 = bpf_map_lookup_elem(&send_msg2, &Key); + if(!mq_send_info2){ + return 0; + } + mq_send_info2->send_exit_time = send_exit_time; + bpf_map_delete_elem(&send_msg1,&pid); + return 0; +} /*-----------------------------------------------------------------------------发送端--------------------------------------------------------------------------------------------------------*/ /* 分界 */ /*-----------------------------------------------------------------------------接收端--------------------------------------------------------------------------------------------------------*/ @@ -188,9 +192,6 @@ int BPF_KRETPROBE(do_mq_timedreceive_exit,void *ret){ return 0; } - send_enter_time = mq_send_info->send_enter_time; - delay = rcv_exit_time - send_enter_time; - /*ringbuffer传值*/ struct mq_events *e; e = bpf_ringbuf_reserve(&rb, sizeof(*e), 0); @@ -202,10 +203,9 @@ int BPF_KRETPROBE(do_mq_timedreceive_exit,void *ret){ e->msg_prio = mq_send_info->msg_prio; e->send_enter_time = mq_send_info->send_enter_time; - + e->send_exit_time = mq_send_info->send_exit_time; e->rcv_enter_time = mq_rcv_info->rcv_enter_time; e->rcv_exit_time = rcv_exit_time; - e->delay = delay; bpf_ringbuf_submit(e, 0); bpf_map_delete_elem(&send_msg2, &Key);//暂时性删除 bpf_map_delete_elem(&rcv_msg1,&pid);//删除rcv_msg1 map; From 1390b09e28a5bf6e048cabd63e6f0a7f2933850a Mon Sep 17 00:00:00 2001 From: albertxu216 <145351853+albertxu216@users.noreply.github.com> Date: Fri, 29 Mar 2024 20:51:03 +0800 Subject: [PATCH 06/11] Add head --- .../CPU_Subsystem/cpu_watcher/mq_delay.bpf.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c index 65c140cfd..92589afd6 100644 --- a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c +++ b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/mq_delay.bpf.c @@ -1,3 +1,19 @@ +// Copyright 2024 The LMP Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://github.com/linuxkerneltravel/lmp/blob/develop/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// author: albert_xuu@163.com + #include "vmlinux.h" #include //包含了BPF 辅助函数 #include From 7f552feb4eed68156e9c3d97ae23dfa8b74de672 Mon Sep 17 00:00:00 2001 From: albertxu216 <1418106416@qq.com> Date: Tue, 2 Apr 2024 22:52:38 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=A1=86=E6=9E=B6?= =?UTF-8?q?=E5=B9=B6=E5=A2=9E=E5=8A=A0=E5=8A=9F=E8=83=BD=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\346\265\201\347\250\213\345\233\276.png" | Bin 0 -> 219302 bytes ...37\350\203\275\344\273\213\347\273\215.md" | 92 ++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 "eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/\346\266\210\346\201\257\351\230\237\345\210\227\345\217\221\351\200\201\346\216\245\346\224\266\346\265\201\347\250\213\345\233\276.png" create mode 100644 "eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" diff --git "a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/\346\266\210\346\201\257\351\230\237\345\210\227\345\217\221\351\200\201\346\216\245\346\224\266\346\265\201\347\250\213\345\233\276.png" "b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/\346\266\210\346\201\257\351\230\237\345\210\227\345\217\221\351\200\201\346\216\245\346\224\266\346\265\201\347\250\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..1dae1df8f7327fccca94cbdc6654d6c88e2d09eb GIT binary patch literal 219302 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

)YFcA|iA1f3M-;9~`KC6@F2_f4|<#;H03S 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%0A5g4NEM(?kZ$)-<8ejM;1F;IQEA zqV^ppUY=ic5k5>*)Ib2)A5-KHSI(jRoHdHU=D z$djz)AXyXC$B?x+k4vOKC~7uJqBq}e(v0DF3fuDH5>_{=q^+6?kolmc*)=BztCA9B7VL6tuU{3M@Bk!voxTkv2 zG|BpPL+jPok4@T(U=?E8eeLB*Lk$J#-3C%dyI!h_mROmT>23HS4}H;b z`bRoU96*A=rxNAG;_|D4t#>Y+5Lft5bi$pq*HUy5Fp`^_*<)K@!bJAt|HgCCK zk?_tTJW7>Y;9;tBj`o1g32TIlmsz-Lp4qZxaWCD^t-mGI)xY;>sBXM<-q#QdWy@Il z#6=f>MnCIVo7qf^EggsI-k{il^IhgV9~gv)7r8VSpB7w8Ym0)+Q1~Jj9>e7DQmV-v z-m`2d_Ffv1=hM0Go`T4%rvKvttg+s{N8QqErqlQ#%X{9J;s5_jhQa|dNfxmZl5=?F z|14YHHL@i6Y?rpgC@#~US*M1N(SN{a!f9vX9a%5_`9ietD&CFrQEu+d-chM;gNJO% z?!K-v&|PDSSO2Nz@~i<6HBe&3$6RJ^^L(W6suRWJ5BKY%{{Ti-uITJT)|J7@YG2Ep zeTG30jW5Y7@X11p@77VUX-md*UrH13AkCIa%p9g|r6eIcTBO|m#a+>o-TgbaJnnf# zKAtmU*PLA>ayE>nRU&lDEptAWetC)o2+>wlS5?8#B}`tjFJsqv`=5VSZ`jZnm;3u& z*}@rQ=F-*JYMoneC?_#Qq7MvC#_>zpWgFKxXZB9@rd05CSi9FJ>qT;XN?f*7ep(C? z=imV3K#-lQ>s@z!HE|jk*iFp#KiVldL&k8bzD_Wa29SiU80NgiUI}I`6kgKfqOpj{ ztr;P}U}}WLq_HDAxRK2{FQ5{FO7Xal9aovxZe4246aK5p={x&K5|H~ zkm!?OHjVl&BaSMLbq>(aDO^H_si=UW_T4RFx({bi$-X4?^$yC5)Xrh)-ml*q1DX)b zmj*}PS&(2j+1NN>cjDO<6FfI=%q9jGiG*PA%U((%6rv)i4fEqnVfFSQ^TUb7m&%)h z%L&B<^`k%bGC&+C>@R6WKN~J%?xbg8AB43yR(@E9Rpvg%N`WmkWVl(Q7=r{2BGkLe zEx0CuNRvU}H5(Z7t^pXY?Ol`vv4Zq$gE?qT2bO=W;t6eN50X-uv( zhG?@bVA9Odl3#aiIcg(;cilczA2YZ2Kich*i|W4}nb$*EfXL0^<&c7=%rFm`bTTqr z&BVvepFVMc^{fU9f0e4vYfrc1zXfrR{OrQNWW*8b3vrUAdI*k$<@JplwEURLM9jjP z2)xD)*V&wdLR-MJ$XV8-(P?bqeDT1vA69h_p|z*|5FYtDAi3Qtv)?FaUX-@5Vx@AP6V3~4>p2e#huHM z)s%1tJTY_A2kbSr8aW_~0bA@G$WpO17hvq8hP(c73-;m9vzl|Z*A?{P?d-RBwS79q zLK&3^C1Q$c5!iF}(SmyJ;6gJJWNYoGyKBdVJo-^rqh`J>U|7Gi{S1h^+k~{Bw8H8ZW zp3N~@*}|Yk=ltP^bA+_wj=}w<9Iv?1T(N>pjbB#6;}2Meb29eOp?D}O8mZiCbO(uX zi0eqs6g-=iic8+aljpz5xA z@C)CJ=~*S=D$PI{w`&0t1=Xazee1DvH|-u`Lfo+yRi} z+5O%#EIi!v_ci?A6|8mbRgES3-smwcAjH)~dq?tt-{p>7<*Q?+_x*EzeMd1lgaG~H zQf}*F7BhI6#W(mCKzQYt^Im~8iAi$S^vmcWp}`BzV>5d{b89Kl&V`%oygQ#O$qocR zT2LeX`01P8OYWF|(-Xkj-~U(pheW0?wDcP{j@Q=y)0&Yx{?J^=uxA%doG$gRuc5In z1cwdjivMIDwa4p*$e0%|Ui^4G1Mgs{w(7DkU%Y@%|Ej7g)a3Evh0`}P^dUP{71p{m zCOQg){9*@gG}ty&p?LEIZ{SMo$Z*}0Gu_AhNJsNw#-FLE3^s43^%)+K3t5DB;jT{- zi|}rBby0pEtpN{#44N^1Eytw&>wkBoz+0Ea@k{l_iyZL-CGU{2qK;8+#S1pf$}Rm? z&(y;Mq9xDqjurWWMO;43j?g&t!7|Swih!P+ecBbr;G$EeAu#>O9od!*rL3}Yal6vb zO-C*w_++bz-xZ-13h3*4c1Ca*+1i25n~el(8|abvsYYDSYTdP$bI*!Cv8TpSj-tY> zHF;)Ourq;=Jw%M$0LKSGaCwTqv8ZXgtrkFr6)kkIszO-4-LN0t1mNb1Z7S}8m;iK6 zWjB4gjYhtQWN%gGwdsY&;m~(Cg6n?~EBT*}@Dl;mQXD{nk|92RJ6xv|0UhhPy@j^- z&WJz1iXprZ+!r2R?uK36PfU(94v5^zUv@n{Na_b+wJ2>k)Y1`{!u_vl4s5I1LhI6# zIB<5+NO5>NbU{Oh4rQZvshk8S%mX07TJ?OKG8(pacBeG&dt}UjI)z*jN-iMu;9>y(C1kxg_xq*CT=C0Ngk)uRp6u z{rH6A$Iobf;(O=`I_h}p{`@>YgNjPMC`_eHXJ_xk0G6p9F92wt)v;OmJ~2L?#e-N9 zT08#9H|XfsnNKwfIBjf*d>$I)8kslrma|I z`(?0sO*xJZS3Lsf|BjgDg9Evfj=`i!*Rrxmh#Rw4R$Pp~+ThDfcXWPhXh|pCjC>@m z7yE4%v7}oJ6{40P?y>YeyGR&f3=_T@(rcnRAxt9i@eB-nOXFC7^%WI4GP)3hhBLI% zmg#DiS9=g2pG-KkG%3G-8(ls!QXJa|m=kXuF1YxsWkjF40J&HyoK`mWo_ch>Y=qeD zkv!($v`6P7U|N-C;!ushW{k@8j<1E%lh*BeL|p@6#37umN~}5?b^|5Wvf6Pa)Q&YC z>XscljQz{{i%|*C?k&D}5J%q1rY7$Y0AQR|6O6XX`rL;PN32_AB~GIIE%MqT>sh5> ziw2Ft{gdv1k|s!1g`XLB`N*rQ9iSYII?ZAbV;>mEOUByBVI1$4PEaB=Q99y|9XZ^J zbZbdTBaeIpRfhC>`?ln&0K%yJvOISr4_|tB?paz27=T=T`PQUK|9bBT2ncX;%4_md z6PJxCj*E*kodO@nSykdM1+37iZv?DAx(fTT26y?*_#_iI-@ zXd)oW&?(|dJpT>r+cz&D_YcP=x=Rkr`SLtqItoPbAe%pMFHc-4>>yQENowW^(M_>j z?Xial#)+;^Wp$F%)mn)z&q>F3%a)l+qvIbwZ*0L5O0tli*lGOu{T5jK-4s(Apd5hQ zcp@}u&f|6K`Wc^_eR`OJ0+Kf&s7M}+tW zE!nC{Kg#|a{~bC~9vl8Fo2vgEsF}6e*RZO#R#kJY5HPTz>0bReAVM955C`{l>x$j= zYYIjt2$I5|aGh`t1A<6=T=Tz4lYo6;a4s2Zs$LYf5{PIjw>f8QV@j?{)a;3pGi|OT z{u@6Yt-ws7rjFDa9(hNIk;1kben8UPqmfI>I{(7Qo(1On7;jaofn>Ls(ZjLa{qMZ;>tlNA~HXjK``QJ;vvq! z45Ebh-AyyN;-*&}#+txEGM8|mJhi?uDU+2 zL+j^j2=QE?i|rv}1pMD;AAZoXG1((VH;!bQ zgRkszS>E%l14md&1?g+RAaqPG-I0bJxVKNe9jQMf6m|nf1oL^Z8MvOBsxxuo6Sgob z@j(e}j|(I@aij!-WOw~aVUGg2N9JeAgV2wUkxa7tW@L0ofeQ%LKp?K|%xIjVu=X=I zR&IAoisQD1vs@c^)j=yn)t_?AKGZ4H0HB*;#zY=TqQ z@hv9sALkcaaywT>%zElA``+<=%;4@acYV4A#wzYBIQRXxtqWFVAR+c4A)%_eI_!bm z^MBid-sSIA%agS_{lve!{e!8CbxH*)H=_(xD<$t33eBN=3(o8mQ-4hradR6GTzvUy zJO(B{4kQb9_MAC?X0(3!oSEEdsPt>4cbfLUb3d!+?|fo5{-D;q8(Q|!F2xV8AJAyI zUccbnq^+)_rMsqeJbiE`VZGteXI6#>E*|i9E4I9S_prOU>=+x_zdUM1_w^bo(;48M zQB&AH%-r(WIrq7*AAPVC)z;1ti->HVUh`vmF|m%d@e+G=KelwhdS|c^xGG4PUO3Ks zEm=scn|)eL%0~1CL>e5L+tAX%IcjxHU&d@F?tgGlgTSZI7TT@T{B z^W3_DfgL{^1ZB!sDADM8X=!fn>}*BwjIXtho*u|0vbpPaP1BlhA6Rf6S~?ODr2K_- zsW07ApXIhFpiS;+vG-{lySK(^Lmm*coc0kMws89TfsZ^Y*r?ffSvu(`I3*tZPeqIo zfcl?)(keV*QUCk{26Ex+)h~BglGJoow`s|jaFl{&018AaO%>hbNWAsKW!eYs?ZAi+ zzR22Z?F8T^S?_Uq3Dy%+JOgNicLZl^RpHJjaS2LNjKH3`U4D9sJNXGvW7Qd}pf}^Q zP4z~%DRTH$dOim4U9|4bM@2O{7-uwCb@?QBD)wzLzxDKqnw(_Qzh<;t* zkNu^354~3ascIZp?%?2HXD88jx3%iY-MEneVK|3# zc~2~8Zmci(9KBC{42eyG_ccwoj>6@24tkR(bKVwLZR`61vma26!%(iMq@q&`$oyXT z?+>GA8(s(O#QKdlG+IN0(G4yO?yGyW7lr+3zYYGgbCdr|qX&Mv(W#Armi7x>oO;hV z7(Ou6EcMytvIc7Vg9ra0-!cexNRbv3rLbRI^67c9y}G4Y$Kd(3iUW-E)%!jTU=OaW z-1R&oXEQrR#D$^r{Ui`-o_^BYCM=Siokb+ZarAaPFSS~IxRTKEr0J$cD#V@MujIOm zM|y~5O;ydsl+L!LoI?t?0t^`OfBChcVwbn=aS% znKpTHpBbn`w=!9tT@-XXy=jZ>g~W|em))cYeKq%pKX&ZK1+QV8lDkUC29`fdI!r)l6LD*QM zYx-$17B75Lo&2_Vg2-VJh9ld9^i*C>0_Omi2e{R$TS}`K+1lIVN#P8kVbh=Poi9$V z(@{|E%^C#1n!6%l**SYpVYG=ZBX9BL?OUcyo{SZmkTa$j#XUqg+-KI+_A9PT=`(Hh z;E0flM#w}3i1WpRnRM&CetoIR`sTl5THWs1`=)tyb!-lEcEDd7fzr%#X%&q~r-jY_ z$oRIjEBjz5}h>h*ttHYv<=jD{A57wWyCb69GQFe#Os4tH(nUDV2915 zOWlSaTecmz_jB@g30nw{I)O6tih?PBibD zr)Py1%P*sX%y-T=ayyL!UMlEkr-Uh|N*2ORy0F}C>>=o?Fb@-^ZDAw%%ov7FK<J_s!+G&)&Y`uSWR`4 zs-rk;*wKW9jhFkFxXaIdaU?SR+uz3!MBiH&u&B9$_-lU9k!YWyRZ)$Ppqe10_N=YkU!ipD(a8JmfzpMejuy{k6j_eRf0X<$6Hw1MaB80mxh-pdCY-4t}a`;^dbUA zyW|4T5bi^y#TxYcvmKf3X(i_jEC&&nB^=NZP+kQ zPxrJYJIbh-7}}2+kJnzKNviU_)7VSr=zRPXV29RRjCAJa*OdFz-0bP$QDikR{N>2K zr74#$^QoDrmR3~_-15j;L}c4IjE`nU1dy4iXa&Dhu=1AZIEPg>n-k7x<}%z(C%+e# zzS9-S(xC0HSWs2-bK5Kbn1ShTcJ}r(G+cJJ(fUI->SqrL4`iHU%8Gy3w{Zzow*K3* zl+KpIlL{}MK1GC3x79eV1pQP^O5O64Q!3^|w2XxuIUz0!wZx>yMhLfZ zo!hNRExS{e(DcD#Navt6J9JzJC47>r+eX*SfLxWW<5qwRxh`a9hli)?S<9 zS#5*~X_3_g`{OH4Ke?Wf0ls9h8R$$U=KREt-7?#JX4!;j2qrFyQLDgJ&kXSH+igzUh13wr?YO$4}+ZT zJK1)#Y|h8mQs0!t8!Ki^{EHA+`GB{@V_&izV+e6dKvw-McMIy_j>RT}KNc&FHv2fv zwEXWAtoyC_Kpav$Z>y$iZO~EpGj3maDJC>TWV_7_>P0|GQHLCL$T1Pm!CkXO?~EW^0s z=DMbmwcApE<#r7TFtItvmM3BhlumWomdfpW&YDeMxvEh8@P~G{^#1{ing>l70?V`7 ze%bl5{4N*`X_ZZAkE%W_%icZh_fW{O+kT&2SXKnj#-bmMXooBjMqqfcHs#GJN_y=^98!y8hvHA-~bk;v5g zWx;)I`FJ|yz~BGJ1$c5geu`%f34VgaqNe!|f)RA*ic@@vz|qmM)()objF&GtpefeN z#T_0b-8#gKe`eQny5-b4?ogHa#X$4brAzS>3@Nx`!(BZml(3Kb{b)(puSxW64LF3r>q;V%3ud*Gb{d@eS{w@9+S?h^*ze`}r*uI55mx zSSEq?<6zLU33*|0=_;=+^HO}!0ybP(J)HPtcYNmoeT`H}7&_Hpa79bh z@twn<`8|xEQqg6I3{y|t^LI$s{dFTP7s-TBD0yKq5+dX^P1cfnE2{SDywrS^oB2+( z=hQqx$oAW1EEO9n<2qYkSJwv|oZDTH=Tuh<6g`$vF`RWQ4M}jYS+Y9vbw|jK`1*_M zrV^`}mNro{_Tg37SSXxnCem!7K5xx-`1tJf4jVsjclQU4Ehh-fd>7})bBBk_8r{%B z=Obk0rTMiiUn;a%QODedh1we3G_80Gb%X$b4J%f2_%PxE0@l}9c3lS-jw{JG z!`2XU%xIV6~5Ehac93VR%Q4pUAu-O3m8dVT^$QWS05kQS8ty$yt3#by)zpVTBkQ} z-lX7NUg5BPVCxR!{_qR{BZOoO6(fHgeSP*etsy5a*eqULb}1zXKmt4(#r4P-mPOFJ zD3yA%Cv*k;$;->z^muylRixgxyzAK(XK!!gPG{h)@lt@bh|A{V>1|4DRN)fQgLxS+ z5)FRUDbcVMyFzU_32uHz2ZsRJ$H6k&v?`D9xuylsn6$ke^K*6!&t1mb2#Bg`G|+;I z@eaUndpo;FC#Kt9TvENQaXg*Dk@vT}6Dyzu5^ge{)SduR!)Bj8rD>S308G5xt#^>g zsQv!Gz9QR`H~04PDt+gZzgP%DA%mH+!8OM*sRw_?!4V>YY2BgCr(dmVF0YR!atblh z*&EQ${+)c%do^(P*+r)`^^M1TGnX2w=ct}@SCP{$8kNYlY!&_IImoHe-K-3QHQ5I9 zD^%q1ogYRIyg9mEmdly{TGX`_LQQ3palr3ithZ@VD$ZJz?4Ws0C{9JI(sDa4Hn|EGWVE zO&6)@6Mw9^Dl6_DvvL$k192r-gK@vvuNwv#?e%MhDP!hupG--S0VJOL8s_SH!5}ZW zn(y=#E)7FrHzCG;Y#ly!DoBOnI)R|0%PG1ZTqWrt)Dtg=`5!-mcpN)Ik0(nd(a7_9 z1WEzDW0GQ2w_yAal_tw0Dw+2QDdwu=gcUb+CQokhgwu=;k(6Fk+RIn0AOVwPnHJgg zO2v$)WE`;O1$AO=g&E+Ck;UEtxw#iFGJPqXIVkqiR?1u{=)=|*nj|J5bz;;y{K^Cj z%;{WyxmAqb6Qw$5UP^`M@l~jOhC29* z#P&HM8s-cKPDkPRi4!mqt#=I^d0pE?DZkDOqCa4&PbU4WYRdlt{sA;xRmHVqJm_ES z%_ih?V`COT00~75&}2jv*9S!$W8ZG>?czd)WZc}pUL>b>9Y+U^Sl{+ApE2SF!mnZ9 zoqm!hrbzTNi5q2GF&*pZdjZcJKD4oi5Po1^mZYp$r~_I)_ISQ?{NY1M>yNoCzZ)O= zsy5ZpGd|Husko15kgp-Dn2oTy^yA0i5{N&o9%ExSwgIZ^u(8~)-rq5Fz3YUy_@hT@ zWvv(B6@@w=&9=58sjLBr2ub{k{N1-2OP?vr`X-IsK@(Px%>m!|CeymoOb9P6!cJv# zR1kJ2g*pbs=B~v!`KDBKKA7|vmfQ!(OQkc@y8p(D!IJ$LOWgeyv*gUf3n%L6lvYkq>ar}rcV)S< z{Pi;6EWzc=rKiMng>fUeyw_k ztpK}jv-RUio=A9->vKU!3uaLxT?B-u`Z2l@| ze%J~9OWiW8u#T4B{kNas7kavqocmvdIK`gXJfIddBCDp$gR;y1*Z5a$@4crSc6_^& z@Gzne{bPggi5Yv0S_uSHdCYgXWf8>2%N>jkL4PVoXqn+}4bKoFJ%E_MQ`VfOn&~$F6D> zM*XGKYrtHs60@ckf-r9eZP|&yZXxaW-kO5CuRNcehJyC(#Xae+dl;ikdeMt$=O?c2 zZf>vM-x1MOyX^os>r>S5Dd@eHB%*yr5FsoxG}5?A`XIs`F>r zLRLIvxQ&eNRkmf1?)-%d1)Vzws?lR&UtZtzUd>J|IeFj$EUk!CEG@M*Q0f*u`pH_6 zl$6vfnoM7E&|;S(1-u*RjIp4mncv6d3nWE#gz=6S26t)Wd=0xmG&nTDLK$8acA-Mp zcOZDESBT&7rI&W1rNzZJFfb6Z<>eOzSKaIFJ2_qWCXbBa6LKjjz6MHkng~7cKv)_9 zcM(|w+L{<+;Fa7l8rQ>$25tI%~)~y@u{ss3u>v03GR^FIu zmr>dECQ=*L7xyuYfs2EAGY|{;s>XjE-<<+3TqZM z4bc6*Jnj;fJ>7fzj7%SRsZUY0BObnIb!?S!F2&fxe1bI6k4TRn72SjMyN514fHs%w)*S`1<}UxGSzsd%^8Z zzsHShD#Kk1q(ouh9&2o9__i%OwTh+{CnbWVA*kfmIOghNBv59x?1z{s=scPt;Faub z<-OX*UtZScZg-ZCY`^s}@5TEOldQ^c;?%P$?D!+B-nZSKUZ~@i-a#LQB-O`<^({8o z5GBNRo3cB363%iCoC-Uqj8bl6Hetl|XlvKx?94iQw$FQqN~KAbu}a0Lb@6ai2Xlf;ix$sdWUJ(#d$4J8XW~E$xzVEC1=$LKfl7<3RbDz4p ziXUr{l9tX$Pw&Hws&^wn1Ug%OK6))am`$0lIb~;`X0aeAVLB(R<31T@N!A~!RTHi| z@ie8LdH(dN=zyh2?%S^m3diw2jAw92qC?(F5%}A=eav1qCP*_PW|_&|vCr_BC z!O5EC3p5VQK0V08Vux`Ji&X?JX|_1CtXqD=TV;lU!HXwP(z*_c-L@EYeW%RI&<79s zHrq5pb7v;Zz|Ixo@Z_O56K7u;Z&g-$x3AA0g)r6)R18q#rB9MnXmu>pjdS2W_kVZEZ)-0?@|pW8OZo1T<*?`G@s=Ht%B^KF*& zWF3cY82Fa1@XLp?U)&j3(nKVmVMeF%?RRP5h{;pS*GHbVOm#2MO6?4*{R9?+7CRR zcuck4Iih0Yv&+pFFiy$vtZDT(;++k*msXSvV}b)?(_xXa=py$B8_UNHz7P<$Syer?`~jM``22$8ah=!i+?~?hR-*FOfJ6cs zEx^gUvrvn@_CK*%`_8#sMax*0Y}_KB$34=KEVf^66VP=Fm8kg*ayK;Pz{~gof>E~w;7y(Q`TfIqARME|c!g(F zW~V)PP_%4qr}p~OMNjmNL4oP6w0^SCgGIs^h8`e4-&Fi{LB5=M#3|beaY>Q0x+M1* z^qUzfYUE|I`ptyPdsdxS3h6lv$v{oF8)4+{^{2b5qkf-NX?eMM8ITW_S}gmfRbx(o zs=B+gxiCw?ZNmtH&FgQ%)4F=~du@Jip1HpzZ_J2XrSKktww(D+;6WTH($j}%Jl85= zMJRYQ@%-?*(w?6zYuEuOYY?5az0IS?#)U_Px@`;@s8FXx@d^ff57%Z?!fpMOJ;dpv zmE0YWA>$pt_Bkt@FU#zD`bH)hT!BfC4vS9%0|3Jo9Kmkgx_?z`h3v2}+WlX3(t-Xz z-ao9&@T9522)nzxn>9kPDyb!(ek{v&5Mq;jGMNk^!%?$pGo7SxmlDjr^c2@0lL|F6 zOo(f z@PGJnPyNlP$x;eo?(;s+ z`UkW88eU)9lB~2@=F5}Dmefm9NwfP+8j-Z%@H;p=*RSi%n1Q_Eq;lJ>)lN10U%G?M zvUyXG#I}jyo{HEB5}cs9S4NG`RKTOR;)4a2UG6sTEYuB$j4U!Ua9eZC*|F8v_h)iO zHJ0tViZ>Sbk@3k>{BSyTv2R(k%kmr7uKf_^r5V3!cavXu^Qd`g+S$rA zQBk>WmrV8dy!~x9eMcDw07T&*M%pF1m(L5t0M<32BPudyH8Gs5_;9%f*I*uosM9XX zpR?*T4R_b?jCA}RtST;~#!^E-bXetFT6Z)hKS)n=OV@XZ zzQLu$%j$o;d%NVPdbos4R(x1=0JJFnp}wBpv+C*zma;qU=Y3el6XrR#uU}Rd77dhT zZ;`>@brrW%9((wnVum`_beglK(U~W%K)F!aKsSdbx-91|sAwb^ruNjz8NH37P3^Cr zSGwz3a6o5<@b%|VI5thipU$?th404~x7+4P%IS8>;$k`9-EMn$%T4d|%WcM$-b3c> zS{06bOgCUgN_|B)?)@rvFe!nP?uMwS;VTZIgVRp zdC3)%N#%6@CJUByEx|Z~;YzX)6fikWoaOTvlnw&R95Wmz9TSh(d?%c+4Dkeb{Nd8j zS)nG3ygM-=b)GTy=hPbiSM>d1&d`u=O<&uhFShRl6yZ8tE!ka;?F)BE|TLK#|XJn^+isSw!u9D>vx zoFLkj0T@2~P@d*@8K(ztT^2)pmJk%L|6TKF9_GQn17?UNO<6E1Y5z3p$FJ+NPm{sK zi1zi^vw356C3|P-a5Wki`^7)>!xjR;vX(qZ;Fg+q22x}Da%a#`li2$vQsr~Y`3Z;S zI%ZARHQVF=d*QajE(r_Pb$!`(dUJf$9&OzP6)QKo9&^aprM7n!TZp2y_L99;iKO=G zW7$1?dw#%6@sT4o*Zbgm6V-=ksq&%@2kY?^i032ry9`@&<>c`u`PE^X`k&9(4-E`| z^R_WM{IS-B6F2Xy7tx9<-xQWBsW;rdt+wc$uEiC!EjL$$wHn{Hc}cH7eae)!L*dX8 zr_0W{5Vtuz!O^krCsT!}BCE2Os`sr^R zIgJ_(*0h>-!UXgbBrBIE2QP{iwhRxQKocoBY^sdJakkaWOu>H3#YlHTgSF@E9a^W1)Gz6O7N;HEDf`55R3 zFJQ^U-T7Y+rO+%>!!k3M(?a~uwyhj3(@%U3N9g*Wxp=XGyN@wpy_Vdp9ch1?vIWiQ zR#sO2^DE|$_>;p$yPbEBSkY1AUmu01+0OdBlMgHP+eWK}=%>$l{|3qBp}D3RKgLV# z_PRFvbo>1Pr-jGVEs=kNmAIuRI~HyWEr=TYGUfH;8-dDa68nt2K7v$8fl@>k(0q-{ ztM;_s?EUu$k^3Q+hfA8!4|3iYMOs4>Aj{(2unDJYW8% z48v5gw1;c$Ge)ILor&>Q%4jgdcg$$>C%GkGU$(?ZhTOPuz+3FLw%r^Vu?uHzZC*L< z#id-2J}ODd;my{*z4oayyprzeA&p>SlzilL|F6B=etLKx>7fs(TY4ni_$miF$KW6k zUB-{!*p*LVrDIhUAFkGi>wkZQ7j8ubD(x#j?}5ua=T)O>$PLZtn^V@Oze2s{=`V{L zRAptBTD|E<%W2k~imk^Wr**b92ZGE}O6--u6Ny!LNkgM`J6y)he%Jpp*qAanWKG8p zYtO2*n>TJCh8;fdfxBExF@nLJFGO3P72OzPBgbGzCwX?!OT$$E#^=d!wi|N#E>S@Y*23f}1_8U5VDyx*F=>uxwV+O1nvQXw=$25zniTsktlYdE=%3Rf2EXPtj z;FBl(JAxo3g4s6$;-OQ!E>bXIRb}|aVDXV5rSdw_yJXB<|FBFvxBefs%MhV4L_A+c ziz!*iV0q!YrlqX8&CMTyoe;7$C1&;)e(IdmlA1XoGG^f-mIBi?d1-z4Bg0sAtAz`} zvoYk6?8|wA`>aCPx%Iz_J*2&Ah!8j9#q~M9NHs*})jEsVf9>ByftUl}I5$(yH!W?52= zTBEM7tK0s=+gVBYu~#)rp~i`c@$no|zykrf2#yNlboTH*#krr)#tYYX=lsL(Ktp?W zpV)GUi9$n1y1#6IW^`)h>RG~{4GQ)a<5jrkE|Nnh3f-I4G(R`$QVPot_c1+!S~M|{#hXgZXc=+My`#uzw<`3A86>>3elo2) zg}>4Imt`zE0~Yoyl(DhLgTkuJ+TI4k5xH|pqxjB`5qUd$UPWTinceJPo;IN>3E%{8QP)oXrx0wMy*uN;R`-yFRr08YVw+ zeX#b2M@*k4+_2ciR(TXlmu@Wh@5(-g%SQO~H>1GczrGzljDkf=oG3=cDDHyey+>X@ z@0$J!5UdI1&N9Jihz(Jd%Ai*w=i4A+PCYF$+C;o*^1hf}e}MEzzWwl^A8^C!<$7e=N%7p@ER0LhnIHa^hYh#J^HM{mo^_Z zyx{nm&r(!JVU~$&bGxp&C54$Ws zcFwzccWHG$&lgoHeO`$u;naKQDyo30rZm;-1Nbvvg>0bGu>aX=6?_+e)yzouwbAhp zM9wk+vu;W|soZO-9onj%^{%_oW9gF~AfbscvxB+D;q;%P<_A%nmW2Wlx|C-8ZmAL60t5O+YCa!FF zRSTUI6CISjy{9;2ft=OxpSG5}qa%64(Ny^1D|sq5!hfGoD?#rCl+l^^r+oyA0~oY3 zuN|^Wo-G6_7fpx}-t?>SM`RQd%nLBr1joGyUH3UC^mA3U51gfC(-to z@a9}Ioc=3n_Ph<BS%2oGS&M8V(Z^jfcY%Scypx2aHZ#G4Es%rW65 zw_+vv?fi@`0La`LBGKH^Y>_S(>Xg14v|*f3qg=J~hV>V!d#9Kw>TWnC?K`U1UV{z- zGdxy(%-&P$6(1ED`#9B%ShwAUq9{~u9r9#`Yu zw*QODk|ZQa5<*ClkO~!{6lEJKNl{cgDLX}FN@Pl87Ey-SNkoby71B6dIFCUyr=hJ2&uM7ztIR(K@Body3%Tf;zSWl`*&dsQ zFGx=HO4}t0rf^=4Jvt>`(QhKO#aEaA8^;w#LK+I2gIE$Q0i~ExNm-k#c6@K(X&pU!G^Wnjt~(!n2G@ zCENT!6@L9A4};A^w{@`0+yQ-2eT^b23rn{QYb&82T;p%&$NzpO2 zUZ&6^M2CBmR=KDk#=wGaouyViNj0q5u;SIL556g^q_`y{gS*&rh4M7}EqVZeOT)vI z5CY|dGA>YO9W(jhM=R-f;SQ=~)t5W=@%R6-M7|F=1zwZpBO+^(<~|J4nFt3CVq__G zMgHWtt5-`?{2;Q^LQ?vMWTrP88q3ROUf0}r$d-?hLrur*fg1Dp@@u`MXCj(_`1hBp zl1YkGb07J1?fsfLFnTv3M&cCMfh!irQvj=9y1c8ffnCqO)qCci2=y3QBF)E!6&E%BBbL_JS6}78@_{hkhp=}g zBGzM&`0%0Rk&_7XNz7wf6s@#p*6#6b+v2WWW6BP!db)L3aK0~ZGR8G$Z(F+`8q%Fr6zWjxqVEOYnX`ux6i6kJZ;V{NgF!N8Rk-MU>YR zq+C!?Kt8{bveMtKCgKB^my;4g>R3ZBMSdQ_QLsgHboTb>WVWPLFxrTwuzoq~frYSz z=J5W@JlnqqZZ}e+AZp&U@w8yk!eRR#w&tIsGrO%?4c9WrrC4leULaaD+w!m(Jrq~nGJAWxdwrHJ9e`Pqf++>jk^vl&;}uLXfME`Xvf_r#r?3KD zP%HSN-WPif9-|j#{5zJ$n+``@A3n}eDm%~tprq%fj#MV$bx$Jv&>%{T-@)7;giFSp6{|M}0H-y9~y zv3%>?0-|`rD<=WIOUp(>gsOH^h4z5bj#FGUY`mr>C@INnESTi=CTmTPxrlGEjw1xa z*VaPJ73MZ?er`!48OuG9J0L{n*PZjfFBa8NE^tP03e7%$Wd>SAGW04Mv+j&H5v{d6 zR=sG2l8K~v;4xnrVH$8D}pWM*>!_WQ3 zdRs79*a0xh6iU@u>9M2st;9qKZu@Vto?juCKxU-f2 z=7g(fYBM2(1jaPA(hGVR_u*g@n;{Z$14NRN#$4Mrwzh{{=(b_`vk4)u+0ULSiW)y$ zIMQJ#q9J3b1DZ)MV6W9vu)WVopw6uIS}2q?X5qd8YOaXGm~WQ6dBX`<=#H#kHdA-9 z!ORW?vvB$Liu&!JdwzSXiLyhBAs2Jj>~9{DR83Y;Ar z&1xc^e?N(+%&QBp2)Y^|^|N_73HRtU42%>Wc}zxqbccO}tjSyj~L0QPmQP|FTfZTw$> z+thb&eiXAZ2C>8s1mC>U?NVamQMKKR#w3<>;{$|W06i^efv9}5WL5DHnw`mHi_wQ- z9S3dx=a#KFUCoavsW;~PsY0&j$iovRubF@(q}=Le%r_0Xy;?G>_TXWcsS&wv>IJeC zP8^MGUh*apaH)Ra9zx6_Pq^bT)i1iW8D9(uMD_a=?20!r=sT7ldCd&Ng@a+t(=Wx1 zO1oH8yfFR%Qv}N$2%MhAc*4M7p8P{5&J>eOuOzptn?0RnBO*kTd*}O zAqG{6!0SyZ8kmIB$k9Fl5P~5m+F1%0n$j+ETK=4{qP54>MBf8d6|E*5xSlw8-*6bz z$ln1cgyZ5URMvOw8z9T_1DSKDJ6cheD3FzXWs%L7fkIIg=1fiG zk~HT=QT=Pp7&MNPCcztXikZJ#{*5i9;7z|f+led4YtDZyJ@HzfAO1pphC3%b7ke#S zx>>a#SkA+U*{*!n}p}>%cWaDP7wo^Xj}{xt^kC)~=_@>-#|KG7CSF zQ_aW`1ZUm4b;#0eG)b39n#k{`^2*mwe!WXxe=e&j-wFPmW=_g9ncy~9`S`XHrAiI+ z-1Q#(gJO@>N?bUnE^%-Pwb%;j!x#I!x%nmad-9*Qdu`7P%`o7hh`zx3sPh+BQIHyG zkeS*i_K1;*nO%8jEX~{Ro4=#ts;+i1mgi*4t662MsH|(GBJrnb(w9YjwJqC@zbbc~ zkpW{}N-}iC1TMhH<2@XUJ8t^AUP7q*MALem2orw#W~s=U;aHI%MtfE7%f;rU(!JH( z?bKtgpZv*{;e$+S9sduaq5r`_h$4IBVFq;Ky9&O5S-7J?H{TgTztc8pf73Lr{o>+q z8C1l`hzI~92$_&R9kr=ngVbD4(WWGy5hEiZy?9479J$mCAb;1d%ZJWp=BFl)A&GFE z&{gIn{O=ivmRgJdF5_J43(h#|515fh{ZS&JPoZfK^IbQ5Z0`8QGqr^B`lnkUb5 zuHTd2mYra)sYrcDMl}?16vJyL<3ksu#;YtF$d4WBbD~mL_z!=~aJEGrv}w~+Ve=1|hw@<58VNo)rH+1@Jt;Ja6?8_;m~Mx%`Q`)_<-gnwoxw9p*ae2V;`A#Nvy z|NncGxNSUfBH6e8R8ieD5Uyhbq&)Lu z4m$yP^$2>P*44x{#?feq082)O^%Q?@xk;whL|T6NqMhYE{cL<{>KW+XiS)T7jODBZ zJZs5KUoKM~s}?LLEq;3X_o(m1e{fu9_L%NS=$2Xd+;C@G#S}yFs$LtsL6M_j@Ip4* zNee8jYMM7O;cfno-CDFpf+ncg|6f6hqNc4G)!awHG~Ia|TcRUKGY91wXCh?`$8w%w zGb~O;;i!a;PPH{mXnI6zWx(@-<@J3wMvgyf4yOwaB(x{~tiE|?Nvv78WXV7cndVkd zO4*_k@e2IEonGrDcGBi=LOV1M_kpBKF4*2^HIcg6dX=B}_vc!oVb3wCG<+L}N6l-e*`VsSs{-tY-1A6`X#j_Z!D26KNJU1FXYrY3t zNGmK{9l%h0Ku^O|W8C5FtAxiJR*2d6NqWhP#sK{UscnqJY)O0>3Zc~qXgrJXHxdLF zcJK>icl~HbQbIe6d-9T440hZ1jNA)*1ngF@uC1>RT@kMC=HYSGUhC|%0CW*ehVef# zF1blXYcR+G5kVTYlk_A$%B7Ev+B7rV=~E97-dPtpOf?M4wUA6FI2B9kiZ+dY9=ToI zN{5hHffoyc3)T)AM=G3&Ihdgxz2p`;d&mEMCG-V|0B~)={86w-c;y|;nSAI_AIKC- zm#! zMRh)RSNwc8Kr;u~Gca6i_0{?jp?d_pi-I&2d6-y;;m} z>J;oeXo)X^_Tl96wGS;WZh??e%RCXM1*yTkdb~Y7FMNJX&z*>kv(ip?a}22xh1Aa$ z7r}2kE514GjJxese@?@_)^M}FhNDfb zbuEkXdW;8p-y0oR>0a)y_?P1-5Js$4b60S34MFdi~g(gpE_? z$_Gbl2o4UC#Cz5KM&&AY{w%5k{dwOkkWt~`Z~1r;ANIe*LU5X17=-af@j1#~gx7>H zTtgOF_iEfOCwd)G5d9D}8D@tHkGMQ7MpluliXMKj!IIzQfRN!A@@l}Q2Q>}`OVLy` zpcuhjy!4SgYP+bgOE?IU)vmN_6RcYz&vRE->0O&}0Jk8#s1oh)`g4dsUZod0yBSRv zF@6suD7Z*fSCAoEbCR5qe6V{WHfv}-FAW^nYGz>ZtEkK&Dpk6<&;3Ii4eukIk(Cw{ zmKDK}{gXV)urC8lT7C0M;ivl3u${1T3(KNJF;q>m(G<3&p(=vvQkxknz9ZQ7&t2hQ zzFmJ4IzH*$bO>USLWGO0p4s%XE0!&TSfZH&F_c3k-ufe!Yb#QGd0LY^|N9qBFnX%g z)M-kxCLg}s?FRY;so3q5DkkSX?>4N!1;on~t$(?aZkcF(EHCTxw|}=@|HCK~Tc)Et zt6bISz14>17F#4N(E6Kx{PamivMUlG0qx(;=)hz_XtYMh=In82=EEOmf#MM9qYv4` zGt9N!EF4M_T>hK4Z?EQ)FZo-&FQv5NJ{Jtt$(?{zU*(M=ymJ>+d_&c=e`@9j1dy!x z;O$#SltFj<$pqoLd|~R#-yXB9VM}=J7-zPSxZ9H_*|vPSU#YZ)+-fv&p%peWkg4~V zjEarTsq~_MhNWt1jmO&t{lU+#&*k9CcJ^;AT>8%)=*J^|H7=as-0wlzmQ|Wpnoj(< zqP$hhWygjU{UwLOGCyxkRm`kqWI=)KqWbps4+SB_T=#hO9k>IRE|~BMT9=Q_kHHZE zekSsroP;Zj+}EznF%)JWeLM~SLBZ->C7r2_5B5hNlN0?i4hnbuMa(2H zU~B$9+4BAy4du}Cdz)^;M!2|ek^>voPArjNsiFR!e1ck=80;4xQFE;%=Lk9t58K^6 zTH{~Rt4&5<8ckI+nFV8`N!<&uR9ZL8_SnRevVs2@o%Ub5mayzG0(iVB@+@+kk%y6F zt#fl@p2f|1)SQ<_?uX^fd4@vNm9q~0+@bj~&{V;_3*E!jy;azknE1k%(Omt+UizTR z^(LC=KAu{LXwa9WoPZG{mi~+|!(|4>SJ1(n>K7kxY35)YcyVFwvuDCQ>M9NzDgLhy zSkIVPT4WUM&C~qw>7#y-8ty;@t4*8M3I5Fv0%arytI}nBrd~#oWS?~Cx1EAx4YwF% zSmm_;ngexC2JaWV5*hcS28uNBYoH3HmoJx;D!)a-F{XTseJm}7R|05^uP*~u^kUJM zee}=FRcDT4h#KUZ0&e(<`*vm`Bme0#){P2_BL#EXgFd%Bqrn(ny0YhYYrTCD0y?oWXl3<67fco zpL03Mfvc;%v4WfJ_QADH`z}X-hIb;_oU*lf3XF=X1(M%aC1|eF>1q;UdBf(OU!&@g z{qAmVWbkR{W{6>X-@SO5eA)%DBUnY+KFOxHWH^7+<$Law3Q#=~WNb9ot8iLFb`_-5 zp;OA4_PMxJBTb@$14uy%BDQ=4#emrWRNGrt79mKg17t;LPlMVg;p^e0Cu=4d%23j? z>~6Jh3a-=Xjy!=h@2XvR;^?XHn4q%!+(|h`nGsv4cL1#G$LE`Q+yPu~etzw*j`rcT z8>;%Hl&z>LBtV=Eg2Mk74~#xQXkjRHdW;WHAqxBwDwk=~AkmFqephnc2?n8g_1n7) zRS+RupMJIx?*<}?Nwm{?_LsuNC9%1yCuV9NbPfO(CI7jsEZ3Vu1hI=3m$lTuIU9f% zcr1nPHV-QFOiZl_;NYkLCPeu@W&RPf@T-l}gXVl%7XEg+N}Dap-7z3-B>EIP87}GKIBt;jQyZ)Jx zBFv^3(g6}O5`{mT9>k1dlP$m zY0J%ydYFx!*H|>%?ReI~6oa3E<;~Myd_>(bU%f9C5Z$w@u1P=5TIGV0c~U}``bL~5 z5@q$kP)dAq@^a2U-*&_~r3``ToBGKw^$a^(3MeJ9WqcEAJj%37j~wyec`%sx)#&FM zvOB<)VL80|Qnu!EIk~l;@9yfpv=QqHtfFS02MlId$*Z|zFJ~v0S#@0#nGdyOnI~fv zinE9v81T?AdgyPA3<(LcGzVXBa5ymgJT9S_%4to(#SH!hju7NHe_y(z z*P1n$^I%zPrNJOGAZI4UY?Kuk;Y!;!X6n>t>e*B@=og|O4$-C_&c==!g!Imx9&0_A zEsWm#sjjY|t`*F>_K@Uu?t;5eg4`2JJ=QxO5hkI-@3-?GWDZ5?a_jQctKV80zc^l=}t@n@-NuPYmH+N@2 zPCpALF#kFhef0Ucxt1p_!0-rHgF>Zs95Cvdxo;RPIp#u58&BoJG#xx};P%Us#_~if zzt~tg_;OL*bv@jAu01dwxvo75eh|idvxZ&&#q~ylgK8M)zu2c9=rhY3%jd>+^osEh zmJLe!9~YpgWNpgh=6e;5jlY~L{e~;aVk`(zOq{BS27cbf7x>x<1GnfUu}y}(2h`)3 z5>O!@S+nW}Z2HsyNe!d>s4y{-n=)a7leW_JRnL>8p8fqzpQU+aQP7gzXiC*~!{oV# z&t3ezum1^T$MUC}HqL|}U+hu-<_&$Nf+@H@lcRz;_uZC;m#=I6)jm1S9B%}oA2V@S zsYS015;Phj%Fu_jR5%xsAy&oCPa9`rLf*Zx&S>arE3(NK^mvM;oK(ZDZa?B zEVayYrpt2d+b{`p)*0w*gfz!E&xR1>0lkI9J9Hu`;J_gUXP)8ga#{sfc%Hyq^)J_% z5OTHLv=wWbP^6>wrC21RT{Z$-__^yXTB4OVK7Mpds~9iJ;1JcldC~31gzpzes7B0K z5ZvWu5c*yy$GB+_J2G~VwStSzKxz3tCSj5A=x*NZcKnd#$bRZcnXkP6{(GNGF}{nn zJ&E^*NvpF3Pp4LY+haRJwQl9JeP~{!yW{;{a&}_Wq%N7-)NXaH1QqlN#i1%SwO5H9 zA2q4Osrct42S6XeSmcuD24Xjt+t@(tntnFS#Ws2JF?M0`)uK9d!(11Xw8V^6#wO!K zi}z=*PC4Rom&8`vNgdDvNCMO_3Pl&^omGm(?`a|NFjLPfK33G1Xz0 z6MQpFXt^3V2T|Qz*b#B9FO~{8Wy0SfYCuT|t4c3BaC*nXn?oe~xzAYUpd$-=k?bNO%Bk<7Om25K3lWVr9?u!*YIaZz#mak1_ zW^~mI#2tirNU;Y}!vi)&teP2E`)|NX>WHTS^x|ehy*5HU3ns-8WB_v?N9CPWC=Ojah z03Z?bj%(p3Zed|zRDq}Q$((9dz+YDsoZ~W1<;dwP_KflfsMCzlm zyvy`Vt}GJjE8q=E=%1z7R8a(8zuqO*+h*8g6~xp=Le~i`t8hbmZH5@ z@0}(bBT-h+FUKhC_{4p11ffNozv|m|tceB=H|BY{@PNux_Op0HgLSOUj^i;ajb61RE@xxA!UlI$# zMSueCIyu!CA&LFl4^%-6TzKVkV`GfQzasByc3g4Rwb^bU16>UTZ6QhO=9Kd=wHuii)OS znz?3i<=A|c#E4!rbIdE>9s!brh_TMP0KRRDt-y9c<-Cd$uCphWuX#0OHPR8L)-n3* zB+B)!{WWB;&pea3ej;))HJ}+q7gWZ-MHy30_*{ECd~m&3=)Fu@a3!Q?8Z?KB9oOlT z7TEMcV6qrFamI|TxT-Nk7KSg6Hg`1%8>Qh#HGUW0BnbZS5kx%)xQ_j&;6uDS`+Ph1i}5`CK1kiO06STGG0wNG#58gQ6uT1gSjn-* z76WHw48EVc!uDV#WIG28xMuY<_PMLGj%}&~o>|PlEk=IR^3hTnI8cau9NNUyOyvMl zLV8b-oTM?9r3AWd-`0EjH^((=)-X#Gh!i+rK)z^NoVOG6{@m5aj~#Ou88H*QEQ!zn)l9C z=JsJ@#S~2SZ_$v{=@GQegkhnf&ACq-vPo;nCX`joH~E zsn>^7VuiP!ie}Dwm7@BpCqgfb9Tz8*N|u>=IBM%fW2CYNqm}XW)KU%0Y@I3kkx@JY zlJenfUO5$gOr-z6?Iy!at)XM+>pg`QaM#ByrT~Qmd%#g!G#=go=>+hlu}7aWrD*Vt zWwC__xIo#N3lDXAKj@dITCl3L*I*B5bvBxeXR!J@=2Dp;d-{^sf5S~`t)Zr31-D`a z9RmqMhIyH$=dcIS)xEH23`QNW=?mSfH(_&ak3lh7_+4YV2q;B0w=wv>Q-5+d%r7p) zuTOdha8uDg9J;^|OcDl7@!Wslz>m&fY}MLpX`Hyp$*$T;Wn!0O}UL(iQ3>qRY#6 z$c`gY*ksrtocBIV2fVZxN$9xG>}~%NIgQ^3haPP!ud69b5~Cx+Q-DA3zyc?YTa{Qipa?8gs%WBKlKDnJb4n3o4FcJCB# z_CGgY;+dRsC~H5)&wO0qV?wqLzmBSLzp{u_&Dg?>2@k&6>fPxlDWoxQeKQ!pVZ-94 zu~a!^F>+>3tycp=Hn`I2_d#&xQ zztqr{%b<*GU);-@upQ7pbFI*wJ6zduu)Yso%G`W-heC8>CjO-TXKdOJYPIgMYOlZh z9llLimuw+gY3**Y9D&@Ea65rSU3GDZYvS|yv=fzece2uFw*hY~4CTvzd-k zRxWwS`DCZ4>3VvwG{&1u*1CF;^unz_v$j&*z%@3|TuYNh>C0MY>&K`4($Dh#qD553 zMA@6k$=@c)h1GnII52eEP}day_6NSJFiQXELu(ULaFW@xz+%ZS;)EmmiE$@0+xamR z&~M&+a(MZ9`aX@l+Uoq;`yAo$g+`8lupX+@%t|jtda9~~KyuD< z{=Jh6J_0oQrmWRfcCzT;8$mKa=Sp~jFA40)0}XqsWK$kC2Aa2s9tcOR><~`lk3M9S zojw(&GF1ly=@Ln7Mr+;i_R>G|L67MXR|{1|GpffO-*0F)^!Z>Qlp3BO=#0|yY6x#3 zp?68_=%fFM35_oT)DM;+U24dn=ZG6H`?_$V_vit}I?`dw_FIdjpKMgEkw zmlsoGSFay9TYF2WN3`eJM>J>{V5Ihj@kqGKqA_PTw{ZphOiAl70D4+@1;ZbWy_z{0 znkuzvUFQV`sgX{Ftb-rRo=46tJFu6eF~F#C-{9x2pDlj`g-Ps<<|-;JRS6u)bN}g!`cKkVN};y7&my$UfMuzNd*W3lY|fY%{I9R}9r}!4$Y_eI+gT@I zNV5Zxd5=eABpefDC`bZKt=Wow_u$A8@l3M4PFC;C@HCz!^RIRVl(P8Jj6P(v% z<$G7>dnV0{lFw^qhvVMF)s5+<^o~ljDir~%S}tb@>oG7O)!{5I1?g(W@=(U&R50_NmotaTj4?BQ(5 zh&7_c8IFt7Dte#sKypaA966fOi@^HH5yB{_2|yuPZh?HT#@;Vw{;8ZQ(^Pxwra37| z|N9Y&gI!#CM>wb&X~Au2s_h01^OzhJrN3y?gH%4(y?NSu8KhIBFnjV2o_${8&~aB?nSuTAi2$1zo0vL& z6mog2a5ipy4adSzwRDkMi|e-gmg$b#hqIBPaK7IxzPpA*mbA8q;bWpLW%K6A;ghPE}>4(eN|4bZ|$apJ8#Fwrs(&=AL8Co;2@# z9PIa1?Yh=t4Fyp6q#JUX+S+d&m#QFpG#)6*NytB8A72zAG&&657LVbt0X;H8VEw6N zk;K6PZ+;OdY4l#1kW8M&#f2NfROE=UV;O%lrxKeS0W7*CmY{jektU7Ke+$>W#A7m5 z>5Qgw7ww08AX;K)cDs+&X4wdZZm>63FY-RtdxIRDvwB_#$vtG{QUO&?bCLoTWKm%>^iFN=cTKtz8)n6u4pPI%h43`0T*5=O^og@aO;qO9jIdA z6np$4J7$jj!x=v_XBf>Hc+!Hl&hhGeO~nAbDd7I}2*RgNSan6vZM2S$Rgl5pUgwnm z@99IUqii&J1`)ZJp1V4Vf(qTKV8Jfd*tT8rmb@Iu!nRtO@O^-Gt=;`;g0P z$DvThT#pxUeb%PWw0^nv$7OtUe%9fhIDSi0PxiHSSjzAIMxtr<=QQCeld%|r8LYcI z7n!m5cuik#qi!ay6=gnF?VWGiJGex;jyS8GlvCGg;(0Z%24>YOJA}=Qy~^Iba@6L( z9>UX2ArKLt{Ofjc*Y}quhJ*{C7jGt`bc3-1=vdSH$*=Z?`G8pFW4C=EN!_Y#Uz;t7*G!&TVJJ{H~E-ps(bMOm0 zTup@I%d0Q>5f7Yo(z`u|3!{tk>)qmh`8oyF>)muuG1cN8G)PnVML0b0&g}C}wu=7_ zA`>vD+8>unni0x^rysf;?AOb0lo>bg1lfP8|LZ^Z(l6+$TkuqJ-4~hd%t7t9M#AMK zYC~qA`yg#2IKV$LthmFV%h{KpBZcnirJ)Aj?YA6^lH6}!I&S~)(!nSCXd4*7A&@bZ zWZ;>vVLkFNP5FsuUAL-(Lv@wWE~sYnQuz~>!Kfj%q-cIjH&c0#9jut*mYj&mXg0hs zsLzUCV|JuD&}fYKvAob+{x7eTGKzkc;}9yi8fk5zQQ}&AX(S{3)>a|9oC}s*)73YP z*AD^-e2>ev$BtlB3V8Xt`30(={4^jOEn{=+VxBF#N`}1oo|M~!sfV7+O z8~i~+b1+T7xEl4=FOg_-z$9f1$~=v3|4X2o{u!K^uJjdj5n+Rx7=3;4iEIICX?4hu0Cz;4g?uIy$ zpBhej9*X1b-MTxTfdtDH-QMTzneEFmt~p#;gjn!;z?tzUEi%4YxE_kks{yiB4gIX(FJF z$V>9C5E>Ak6CX0ru+I3Il5UW`~Rc~y%o2h&-d%$`@ZCTe*oe_`K z&|5uxIIBGk#`aNj==@L07{-6}filL#bmub8eY-eeQ+{+amIsfl?4yj7B61);iPsZ|0nm zUAgP)eP^nWmX~a!c`ZIZJ}!=1nF{mr;Sr)?5xLi}VcoxA>_gy^6RQ!c+EYyhBgINfzRUidSq07 z@7z+mphs#pb~00j+(Gv#BZWicU=`oNo6s&R?!)X;$cUsbSCd2H>r^}PXSmNQqiBtc zdE4TR*85S80J)e*>@{~(FCF~rZGN{MGs07_9M05cH#)=*3Vn=0BA3)7(=X$a2j(Q; z4MpFan@gR~c(V0VA#UZwBs};Y-9CZ6hdQaK4h81B-Ljb~Q`gT@c$89B;k)K(!+*-# zl&1>Z)YIvXultM00Hu|Hbj@I22%$LB5?MSiZV5vomU*@_op#HU5u#{H9|xd-C&B99FMxqV z^nFDBbE(7A7|%cgQ4=^zEn3^*6FqtIgzc-I{X+LlPW3g1)KeBC*V(npbmVpGF85P# zAR;>kan4l20gsx~JJED(irh*#bVenUBgV94QsYdmInuQcHOcL`$F;;5zwuu4Gx&<2 zNL-3c$|wFVpVcEsjVKWkqu@a!XaN|6ok?yWBSfspCr_KUxn|vY)I^Pq1eU;)C?a8~ zrR7%c>Ymj9Fx2Ik?Rcsn&^Y0JZb@vE8+Gvj$tZ&dI8IoMYzCatk^P4q6Ou{7aKAkW zM>+TjZ>={`C=X02+w!9YxpB{(8K476c`K0??lh_Q9fZ+v5jKQ3xOr%)FkjW9Sid!B zl@jWKaavjqss8=jNdH^#`xaOQO~}k}q>ccjOvX|R6gBn+Nv{nUuBMX3G?i|m$da?= z=Px$%gO1)(Ps(OFM%FO%!By$PIJ9@h&mUr6YHAJpiTiX)ev1FT{BGO4gHyT{{(_dW zBz6P2d#BF$j+MK6*9jcy`mI~o0|?BGkt3<#ekUQsefH_CO(%-Pe53v!l0Db0E6^?b2xmIPMEYC5vO=qEg8kGcfdve1iX4+qFk#U1ziv7w zmEdxX=ja)z9ApKIJM*T)>S6AuBWeepG#koBA&A82c7BVbF`X%0)}Ccn&mL%7Bqi{! z2#dC9XdJ9G^l&yLi2aMyL>V5FGu7v9TsQPPmdwV-gBw!u^;42%P-CwZVlotx$xija zUHH@rZp_mjZcBUI*u|uFsKmZ9FFiV5D&wpw+F&pJpu^e%w_0`P^?e3JXq!Zxb9;lo zQW=AkhPpb$U{({}VA2zi`fq%E>{(15>*=y8|-$=;OrY7*G+BEU~WyIPCuYXWlA-B=bVA zvssjRd82Eq)Y2)eCtd##3(~LzZ@oJs`u504I9Sf*NX>|GV!{os)-nAx61ex77T)d; zig(h2G&zRFf5Y)r+_#~_oWn6l&GA82d3&$Bb{T6CSFY?8q;}3XLQSOfTB2I@;nJIQ zg^(4t4XJqlUj3em>+5W9`za%XRL8XIot@Xa>VI5-17GxfVj#3JtJG;)+~3NtZ+iJM zld;D^qcIrzMa>nGhEZ~b$K)PC+7Y>4OLkf(0WNMU*qoG&g`=0^E}u?ZgL79y9Dtxr z3Oi7tz@xdjbj9ZWs`p}3YC@V0;%B;P)Az!qE6$ua0cUurR+m7Nd)Oob!*W#!uUa)^ z%3AB0pFcWu%bt61^Ggy)tTdSFN3GFpTC5UPVu_57z?TLUySYb#Jfsfb%(`k*WLn^N zVjbUec;3w`8Mm0$x6Jx@YIo@cl4b)@d~;$$6Q&|5dr(vUct+TstS=+Z&%tz^{@iW0h?i@hi80cOr5d+uO@s zD4y$m$<{$twerRj@6)-fcjVZi8Z>x{+xB3?jnH~$?wRi4f;9L$x0F&p%*gEGR0j`6 zwM^u;IDf6Zp>rmvloDc6}qR!u5=1gL!B%TEKn3<(W9Y&#YVM1DISDgT$?eXui3iZ zUza1nu=fZ#*@Wd-LJzqi(|^8NwvKStOL?~~1h zF%(%NY-lUB2&J#5DjO8{3C>U3GLf)QXmzdi-L!l5dHH`Kq%htR2Gd#F#U8cL?(Tj6 z5CPE{fmqe1aulj#`ykfG@bXP4xg0M_OHY^7H%Q0$6GF`gP02RtJmM) zpp%vbVreTQ`&~|v8{h3A`XzTxa&GWZ9If(+U&Ak?qA}!^ChUoT;4QXxZSl`mGD`_vyObN<)Z61Q9a`A275f4)j)S;@|)LQ{b!v z!U#GliZB`3_1HwtM3dg1b)+o|#97n~Ml*lJblm&WU#X)gKwH-mGzw_jQi3n&T-I+z z{rgApAC3dRp*RE9Ii6FwPy0e?U28_+y33m42<)XKn*TS(u%}r#{jbdY#!rH~C6rI{ zNULWo%3)|U^UXc#tG$yq$~<|3E_R#4)co#)gL3>@FMP4$3eY;9x!CAH6=+T4-p)&V z?n)X{WMY_q_~o1W+d0+B%F01Kzf!CX+6cUSpbE~LK+D8aj``LnSR47R#19JLg3n#C zD)YSSO{rK;&YF|6^DOz`^88G#eBWM=hdl`Ett_4XW8kMl2500xk32UwssqbRCLEEQ z+c5J@!#aP@EGmp^eFg=r*r=rLh^1scHhUV~`(?=91ECr-`+ARAPTP#_g^{{LGqgrfdiSMOh0K_z%!r0fnOB zog+jDV_i4fPEz<`)HDvZ^H3gpj5px&f-iqqB8#x9Bp8oc!+s7pa?#A+t zC*rcIJ~lR{St=ZJIzfp?&1hhd<9%99R5oL&-dv?@vYYSPT6{UgjFEYs(>D+=v|s+S zxwrAE6VeWt<~T@%N%tBMaF+NOe5fe}fJK$I1jI*&$qSQlSl(W3b41flzg+}zfJya? z2xVlNu194CxFdqe&p)UpI=H9HOy@7dq)lqQM;@AcZe4r%I_|L7xeZ;%>K@L%y>% zaD4pCoXm)FrMu&d`XL{czW85RV}_6PH@_*Dx=h$d_fgrS_MS-Ud536be?L@lexuIj z&D_sDkKut$8Wz=&HC#yoc8Px1@?@Wbuld!EX54=~E>B=>^E*=usR;w~7#|y(6vsnc_%Gcty}rkKS`!x7&UU8P*>d z68)mM2PPm&gOoOX) zwrLlXNzclkDa8{HaYA;4&5e}tw$WkQLvK^S#4g_D?zv+7*WzMd_@Hwb72hV~_ zh>^w(o8VS0pCP3iR`-zv`h?hn|8d3Wg^i z?sm3LyZrLg?M3zXZ4OjncA3{aKZXDY_&?CU1Y;T1uo|if{lIV9EoD3PbWN=(`kbBB z;gK9R(v`;|NPR!k+{3=nim?!i&_f5?wkkVy&~4k9o*bxNm}ZXY~{7(gT`UzM(w_Bz=) z`B0N**~9YqihnP(OKg4oTsL(}vGah~LK!Iq7TBmOGnQx{@bZJXGe2gKvht@bQf)t> z`2&5}UxNde>Nj=$`zQFFl@PW`XS2@3V`FN$k3I-{yRTyKO(acJVgN;|VeRwRq8b4P zhHv*=c%_}mb?>`w_&Z;>`tN%-m$mSeFS{h2I(#T>uPv>yD_Yyz z8}&Pl({_P7JNf(nVCc`!p(`(W*Ln#Dyr%&n#S^Jj=}DqBwm?LJ&^%@Er+@yMGA%V@ zl!QeoQjW4CV}kSVQ_Ix*MyO}ABQ+I;b_Hh{QFo&u$Cht>ZkPuiODBy_Av7XS?u{#p zObk4qL}%Or9oItqzP?OKlX&@_2&CvT&kEh@CBqIG zE^)iAcc|&c&SvEX31|}UF-KeXL+-(bU(iTNpaMrpDw%p<$E}OYr+}2@M@!3us>pRW zwU(E9yXihdgVvXS<^Lmfy9Ka4batj^QUqj|!GGgg{;*G*YJanEUIha!g$=Q1m7N!C zSeI6}+G_muShEEKWLKO%d2;)7If|pnX@lewcXrj@PC($bw(uG+#$ok~g6)2%q$FLW8T}uZ1OmTDy z3<>Kotq%(LbjReyqb2vB#K0){McK0Ld-^8%ySqAQPoK_69Ea3k)hQ>!zF4M@RJ`=H z{L|$8t1duZX=!PKFiRqInQz&CmttyMS9!wZ&YkIDS+L@~ujo|6kIpR{Kc!aeygx}^ z;!f_o6w6`V)c-E~(8cu>U_jd8^E<=$Hf(j$UO>&+5XKH^^9z~PLu_FdFsRZet!LRT z_<8p4RR#^pEbfK5inW52@!XgK7%7g9U3P^KQY$Yx^w3=J0D7F-E|QB=+5!C-&2Wqz zUh`yC(5wA|X;suZsbem1YUoP8Z{LfS4TLdw(n7l4sjZ=n_3>i--e}cl(xa3^KQQxsw@LM@g6Gy% zPd2~RyH@bAbj&RRvrza6d2DzQCM3C8@00iMa&GS8VTW3tU4`}yj{!`WU9t67^V#tZ z_k_4j1UwCLd3SxUC-e2m7sc3I{2T>J~8I(k)!dMo&JO)2zqno*isJ;hcr zQ@>+LMg5u2KfH+0zO?+6r_87Ez8g-x4u~jOkZdfPHkW$+%>0?#7q|OJF5O7UR?!H} zpP@oT?tO6a%*;$M2}t%o9zC$ov^h|*CAybj!XN8I)i94jcJcuE#33wsgEp)Mlh9E`&iXh2q z^2wV=DPW#=!s(NiN$sIOqUPRn#q4P@FZ_@?91fTz;wd&?$X;vR+O^~~AgD;RGqn!( znz>@dSy;j)^$ePxyAt`qx7}IVI6%<74{gyC8#+dH%vCUrtbvBW4~C8d4+keDcs#R?nL+EsVV;cT#7@->$1Q`=2E zSy&dKS2o8iV+zPu3!a z&a^J)pFiYRQUK#-o*lAAD8j zqkKu>zD+-HaoFZ|RxTUj~DD+E`i` z_rwh6kj+~b3#W-m*c7qF!rc`cBiALB2=p*Z>m%a17-Ii0jlFMhi7)y;_t#pdZOzK;p0e>Y_X;wbzh;jj_9n5&fznUc zvY@3QEHZF9z2bQ*4N(wD9=JcPyg~QPC`v=chRWAU1^xWv&uf?wz=SFhisCad{a3-?;dPA{1V-~b08eSG> z0e}%(C9CTD#|2vjE*B|CV~*0_34W$RnvT}-ebJZG)6 zl0y2l%+7Zw*F;j+<9z;D2*ABr{9iQ@d>c_uGk;DgBfOJEydwH}?fdr^n8S5oc6rns zu8yFBIq6bte(~M)#X)6Yb z*UsG@;-&p#_AKkGg18L_tFt6*yC(`RYFb+6>fv})ys7jepgeT;M16f_xe#bs1Z=_n z2d{9uV}C!kd6;DZ5nnF0)(Qa~lW;aWFY%XOAAh~diVtOfu7`EZr$AdW6<{UXYq95u zVMF6q)r6~P0y&)6URm9fhZd9mmLCn)Pl>~<&QG%2k*S{>bBrk-B&UqwCX~jn0)L|6 zFnn{W5u}T{3JQq@^XIc8xH(~#^JNq5%n^a5K@4g2zHrDR^|9H;!A3#T+MXW++Blc4Tk8j zB0VOXS_2GoPuazJdU(LHiZ4R(K>QUpD5p=uab1%a$;?L>cfn1lXoNgD#FoElRA8&3dA!2patA^~I}i*0*mD{99}Qo4?$~-afD@bPAq~u*KLt1s^HJ zB#k)%V4=g{2HKC*-{8J-r3ux>#f8UQXc(Ax^Y_bf{pV?7UJTjfu$t(oIV$NeHkr;z zaN~Ow@vIZanXsY#5Hldbe`ldWVntR^gG9Lcz+LHe1O4R0H&jDV z?rMV#pI-XiZzjouL?HAe0?B%%o7?E)Ib^-7GL9X280rT0mEu5T@^XMIh?5N4(sCYe zT3W!>H>XaV2s$gXGbpbHie*P<0@cD6C)+l1uNn}~(}sy9tsR?Z)vE5!s$w7t4+f@F zN#iQx_AbG}Nc^RDHOPziLubXgi%{_CtZ2-E99(sEWD5otUtV~H+k%zB>8_!W?|bNy z8&a|6d(<*^aj;wX$6QXdwX&JJqn{)|azazo@#7tzWI7BCsK8$uVOw5V)YiT+f7%Ub z?X90sN`N#kXlTbNy0>;|5P$dg2HYR!+GF#4d zY}Tw*&2-5=lf1@T5@NxgSzPi>Prp6cw*8B)WtGzHIo(XHq2G@-F!8%q?D1j!9U;{a zA`VS{e9=7h@YE@+Zmy{KqQ4ZF28eNaoCd_?%?E*5=qk_V4G`R#u(gDdD<%o`hfgx( zVVLwWm(hE9892a-A9+LZuP?$_UQNW=fNae!E}-?g>yWh`9t6BJFtsR)p578CJ=G4r zSz2$&%{iFJa05pPe;9%Kbe#DuRt*2BJs%d7elD|;`XX8bCK*Zf6DCM3?~fMk(aMvj zPvZg9`}5*I=UPB@< zT3=W9&mDUR?p7KX3f!RldY4{P>>+7P9%_&p(UUs>s&Sz>n-{b23dv?_BC+zGx&rOz z4V$))g@1nSx=;5PnOFUiDxy2mi1 zSKbJ$F{l8d69iHiM=-|c#oB8DcH7Ltx0p30N^alKNM`V`Lyp2LMx7$!P%gU_qx|D` z<_BL_I&-jlM%4Y`=B&PHR&a|!jgl-SE28sZhnOoSqzUN*pQjb#abTq(r)v1xJ@FSy z(&VsdSQZP9!(uYg3PRnuEnvu;ZMmcTB{|fDGv*{@T=uVMn(+4QwGONEotc;BHA6Vk zI=;Zd0`sFtf#$-UUBf@T;t-E%XEWRYrk{QHNDd=r0g(Voa&Za0R$B>wOI-H1r0MbN zsMOXu4%x#0`b{q=keY(jpd*6K?s7uRr?Ho&T{-m9A8{NNC)SWh)kIAjORLwDFv}^) z5&`MWjjfC#U$f$8ZUrA33TL5vd;13A`-q|fMB+2>*MPicCN+n%nMAgQrvgS=!7U}Ej|G0U!6GLH_ zo5kFLbJZ7;#fN;*0iRyqlrw4~F<%V7qLO++r)Dvdd&)4c>bk1 zT-N!kSGo(I@UMe^T^D=H+8(3DQ4!L2UH37sm>YhN(Gw=0KKd9jRV4#7ee~gFQiJLp z5Lg&y;bV1apM4Ix1@s?h7HAzdI{_Lz4)c;{uUEt&lkF* zEXAtC-X2+k_7REugP>swr&VoZBN{kRGiJ_Zo_{Gw^$O!9vm34-bQtWc~0>P+|A0lL! zh;7E6yCNkc2M(eY0#<|#8zUQi^jURST}D_U>dzc3ZdLioxG7=QCbM(p))it$eEGXu z#a5K6IKm;!#a|1ZdV31y!$R@`KGr1jW(y%ABh7T6hV+HW&_tykZKd%vFONshFAMNLFN8g1}2Xp11%+~r`@1s@GJeWk9vpkd)IUMT*b#kHsE=KOEx7L6IL zuorxt;bo8-Gh}huM`aXKKw92WVqN}@DHtkx_wzfOw0Zo!FI{sI)Xh}&eRjJP&-hu{ z8*bo|*w6z9ZkMbjBJ}&8wyt)97>o07p<`rWXev&bG6i-6{_=wdV^ttniaZlCIq+r_ zeBaPEZH&avCvHhjz3<-wJVii=Nt6;+`>Su}u5N}{&Hv?iP|0#yf|+O3oW+c&H$7G` z^;SWw*{0akBM32JPPI;6v$~l{S;c*oaVEWG#e3m74q!sI%SRu;x!)DPJGKI>ibF}W ztG^PYV5NcGP|8e2&WBmUHqp-RiMJcIJ31Ld<(z7Qn~4}mzIX2@gm{OvEoG~3-q6g^ zetQ4Da3$4lq1|DcQs~ZRknSq6Bi*Y&&*YAM`RmtUl@ND*{vTCu9+zX@{&6R%Bne5< zhK86VX_8h&60(h@l9D}IX_pX+nlduhrc%f@QCUJ-NRlLkkQAZPO3KpqywA)1d!E;G z{c*o$?y0Nuy3X(U{T|2X_$)pO)zY>5MJQj8Hul7V)5?P{Up5)UcHvCC<=vgVwB12j zbLB~}I<9rj-)Yt4BD5B0j%+js;cc_z{0J|U4Wbb_XG_InAvfdEC{!7NCh@H`B}5D% z426mg0EEYwmO{6Ad(+qJQ61Up-ALP|e(qLAJBfwP#;ww96h;zIT#G zoD(^tP7JzX`SY}8(fq5b|AYw!3GlHKfyuNVq%1fYX0x;> zF$$7jp^8(gngY}ZyrQ%ZVLhN~9^xnz)wG1PCWa~u<>=bW_pvME`88=0gA}$|G;&O! z>wJ(&9Gt~Mk`_JCO|vPa66d3|W=y=V;P-<3w|HLMvhbaQ&8J``xc079l3X}M z6u!$AOCkIp5h#frN>&RrZGHx4BOa!^ZzV{J8>MNpWZV$J!I)?@%3dgDs=fRzW(*MT z{N0-0alYa(MDVpnteozKZ=<8m1jR@Yas?Sy*z}Qafe%A+5Z!26=*lN`Qn-rM7@#QV0IAjBYw z(N%c8ES4f5K)Uf9SP?WQyx0m?Yb;$q9Psj6hr2;}ocZKketn(`Crdt)y86k0+Hbf9SeM+sb8=z!r$j6hebs8KD1IbZEA9M@% z%HNpHC_BDpO7!g0r2^a`ks@`cregt08OWb~L%Gky=b?9?oB;DPih~vcM^9}ZpiuIu zQ~7m1A6o-MH9qYSHnB&&qu0D7?03Dsk*R6_v3*;7Ba+y$n1LFq@M-+#4N5eY9CJ+m zR_m{N)}*9tOQI(mzZUa`i3ugEENPgA$Japa7G$iHPYr~=H?k*-*j4{%q8tY1S(!$a z0)D?DRx)lbCPT@mPxBilY9#`;i76oMWOq?cXAutRz(%-m*p|K!*;o%u@GN*l;6__e z#`AtaH;m$c1RwcpyP6jNUHaZ4LAq6sJS1(m_!s?JM|BccR zPga3|WNvJ{QST@Yf!a+JC`nr2W6&kY}%2$?!>w-U0Mdm@yU~gs5nWcSaKdvV+)Wb1q;co z`l_kgJU#4rf+u@S(wVk4-`$qC(i?sWW4|?)L$QXM4Nht{Y0_r!WysS1(o&7sB^?Sy zfoWJu%6M|b@?5Z-D=S0Lq7`v_`iQSnZ#~u+iB3%^`NWA)A{#|aj20-=SAva^BcLIT z%hmJeWGdSqs>nKECB1bbHc5V&xaC1a!eAPK4~ZV*4!(NvV!gZjLCv#v+EfC2=Ds%s z%mAOqwJJZ~>gXJXA#6@g7n|$q1~PTug>97fgbABf)@78ZiPFi4Miz1*8f$Cub_9>{ z$oNK(rK(HDy#9&Cv)TnCj?Arc>%ZOljsg+c1yKEq$sxn{6uj=ZnW$*i*dyHj*3n-w&m&ILvQ}|s45p!|SNB`1y*2b$v!>709b-Oi zotO&)@aCz4>RaHOO>1G#5VvvgKAMWopJh3UR%t0InEIgDTz{QpkF}R>g)J7LWO}l6 zVkq3nCN~1qVz67LCMk45l*90>7<}*X-POU=pUNn6tKxd8spTJ0tK*-V7VTy1HD^!v zK44jQcPyKEhCr)GRKs1$)zcHZ#qUX$wN2Iw6i(V~)ITN!03rz!VqW7-w*ZBM5($cV z&I+Kl)?lMJ)R#Qp3@}I7mf`}Mx%DRve-1VD(K+BZH(`P)>Fs`0F?Rn%L z{cnN|G6&buIb>X{)(ZsMWzQ#b`NZQr{TOhsm$Heu(|Xe(C8Rbn+-s|rrT=Nvk;G3A zjih%@>`|T&?$Q5%)nh;WD6v;ruYY?R7}%{9>-i3@J1SX4KFZ?y;7lRL_zI=k6h*dq zSE+fN=@$GxZ~1S$qFmC-2j?4>#~5^nC>6j9K@3Gr<~m_ZW%tt<1G$TBsJv!VMqY@- zu%mZ0b#(Znia9Zw3lt!}pBb}fIqQhckXhYRS}(-mf$@hm z3s>^_8JLnL2OtnzY-?-Fe1*e3w%DVheTeXk)ZQ9lv+#-or$AaJP&Z)~6t14!v0|{*{%S)(;W>odMq73(-kWwIH1F+qJX8IJ zeeS%g@@oP{^!|$sHFzX6)GIldw5Fxvuna`Ux}}Ml)?y#rlkVM z6)1<7{!CfY+-}2e$NvWtUGXhmkRA+;6|5MowEh4z4yIV3ztq!PsjEa_`**>ihn(p1 z=Qp~!Jz(nTE-NWa{57N%tdJrbfBjqdf_FX2axM5IjUE*n44Ubuy&mg?UMYoJ?2y7T z#iR}=t=B`pInio}^4v*Dd)2tv!g*MO_8Nm&RXJ;7rlOYjrqPC=$j5)&B zp}EZ!@GMm_2&Zoi78nF>Z9icEa1;DHCkkITu+x+1X9GhRp5d4}Q`7I$_Vxa^95%++ z5F8ZP-eB+Mn>~Qi?fkPK*t`FYdL7C5m?6@LrgDx)yE2M?pm8#Skwbe>G;6v7%$|6h z>rV=cmI5>uqd0aPdu_#gBWLhPt(yt2V6cVs)?UHxA&ZUuRENpz#-B-`U&k3~Sgv1( z{FMqFG_S&J;8$M>@m?ZfDp3+di5Ov3%U-o_5@RNikC>Bii6F!awt76!qtgbsk-4v>C;bS_NL@&2aF0JEqTj~_J=CquUfdWZ|pzh$r`S`hPT0haaRqdUy z(@s0J(B96@Fr?Gaf_N{IP{UlLLz&V29b<^g2Ub?<#(r)=K}HHPeM7;>&s@1#`tNV0@t$xPAM! zpd&wA^qUYs$@;?UI8=!P84St{XVJZT_cGgHT1e7!Y_e;o?d}i1 zDVEyiHZd`pZ*#vmSuFSmeaUr4Az^0MFFzi_4M|tZtZ)*{p)XR^k!T!GIGO{D zq$Bgw%h!p3>|IThjqR;-M{?v(bw0?A1^EW#udB56!aypgrz2$r~x3Qs~lHi8txz+lsL zs5V}NXfcTaQ~J*#B|179vXk*QUEZxCM$_g+R^+4Q{hZ^S`wGp{`onvZFrQXzU)J5Nf{EY+`b8*W7GH%arY<#Rw>@DWD4h}}%@1~DC zh{erXd%ulKS$eHOS=cx`V?ICQ1djAzjVUR%iSr@JL|0E=fF(3%{i%h3$q`A6Ri{K( z2RaEAK>G6F?Z4JbNN5M6-$y#DlrYRdehw4z&6Z}Xkpn4Z4i^mzJA2U@;S+xd$Ls5$ zjySkXaJ(kJcRIxcK-=rr+J}oo5|3Mw{RfzSg@8q@mUht>6S{Z*w$HzI+76j^0c6y{ z5C}0-P*ykIb|Ho;9}Sy?sW=KE7@t(girK)=pyT;Gy1?*I*Iv0Xhk;1P5tFCe7HgmK ze3W%GIAz>i>(Z~P+vfcG4B4DotQu8d-=lLVuCx^ye$w#6$qUMY_HE9c#emd89wTs| zki_{4~=}qd&b;nZ+ zD^}*s>h3JO0|xorM4f{cmfNr9gv%QPG#!e{4~;xa9w zwxJwoOF(!^!RX`jkC5>voAwL$ldk9`f?F!^G3Re{m8ko0G=S-Kc9DV=;P-qjwV>J& zVJ_U^a=hD&>SjXwvn+6KVfq)eW53q6HZyTr9TI`rml1cDhGnvRu{yE0x<^#(0 z@ioJRmm_q6LaU&+EHUrtx+Tt z?v*}1Bze#=bFjx~(pR%3GeOb9BNEqlNCCXAUk8ZFYsE?#1oFK9Z=$K)2%m6@P98cH zo0xPV3j%(MzAa&)x=Jh^+9|<*5GI$gK=RgsZ_LZscvu(!r_;r6PtWpb{7E&#s0sr% zePJ^Yb{mgd!XEv{A*~1;U;wAUP|hy8N+t=Ga{YQS&Lf-c;C)=k*a#xt;h$k!iZ<-Y zV2*^MbbvOmTyey|} z;4nl21E~r!&bYbFl{p~$gCx>YQ*|d#=ENn)lgHXJ@kOI`nCL4~n=b-AqKGE)QD1-M z6&+$0GyNJFe}C9qVk%ey_!x;|Cqc?E?&IXC z`7!GhiB}rZCMDA>TwGkB|CBBHH^ZU_hvb z-61M!YPIHX2>Pwn0`Gj-)Y!gCcw%^}wWx%r0KCT_7in*c!FPg2b~je0za&DP<6zdQP4y*^P!G-;A}dMXgk4A3z?m_3 zWLVmKEw6lE>`Tq#7`$_b86M5whATn!_u66Ll6NOB4QeI8LE~WN7JZl;+m0wzzJ}$D z8W_=)p-KohiQPGoV%IWpg+Xja)O$X+Swf8=>}3n%uVv`rFW2pAXUnWw7G`soZ z4)PsNi9Vn?R$e;yW4ki}vq@Uuxk7~=5D?(yMIZR)zfJ7AINfsi03r&p9LND8R$^Wt z@SK=3vgz{RfmeW12!5bFJvr{e9ARbR{Nt`c&2O@hWo-O+yruIH(SFBxAm@Aj1cBm2 z>cqo`bLmDA%Q?7PTNm`3a5ELk=3{Gh8kzX`c>Zgc%k%{-Jne(C_(q@_!MAdRRV&b* z2foqrBJ+*2aH?4Xgf3iYnA})Lt8ksNdGZni_f97ecWKHJU!w|Q+Z>nRu)41RrY_8= zE{4L?2@y#gaZjE+;rOPY(K(C}`;{xcm)cV>ksB@)+0&G;&>u5M-;z+ zxM$O*O<0c#0WORWz^yo?MKP_{yQCNmKocOI8naJQXrwWLj=)e2ZXG2k(UFLELwXodgAL8{r)NjT1=+oaTBfkDaKjZD`1;BkKiQ6og@zyW3nd;p9P4(Y>4!6y;i1Vd=N3vC|o;PV~w%OSl8T*2goJT6@& zQh1m|7JuY~0y$w$DYQ|uGzUSx8a#L~*E?TJUc%*y17mN_Lo7&zBtqbP2!eT!dSA$; z{AA(3EgWj)y>g{^d;;O6^3ypf!RV+R3RmCgs*$RQOpQ)GK-hYLH~rc$w_Ta;(cWv< zeq?Pk!@YWyxeGisC~A_u^-an=C5vQud^M!m9Z4NQGsPFjDESwXaQ=Kfzed<|eQY08 zx%f}1?W1MCxZL^$YUlWPG(s&i0#~VGug#~&E~eGQQ}3upPPAC#I9+)FBb5R|)jK~< z&PjBoA6%9=f4%~63320+vw_b+tPn#QWM*f_|1W6+na16<3<|l(wU;QdH^5zHn%Oq~ zGtVjzueKsU+>WVY_0qKu(Z$1$M|g^N zN5I8xT^p$b;K)6%m*#eC*dVCeU>p*^{Yjc>`!P$ZiG%+(Xn=+;Efo(h)XU~#@ zl%`EG>#UfQ8q!R}*-#7vzi2KZR1nhv&aj1NfuzG+P{+Tn5Xk9T3di?A&*T1J`&qae z2_Ik$CX@^gcNkg1Yc6R8+qJX4*6gC{G6wO3utnxmkh-`NQzd3DwAb z6_sL6I(239w*Zq+4fK@|>WLgCm#%p2ujxh!O`zHv6d%owCopNH7UN%;-OtqAgc^SGn}8E%&oXGXs8h-PP)P;wh6T9r ztiHa!53G4AWp}xC5C8pVa|CLYB(_2ym>v8-PO)r&zzZDuAg+XtGCnjO+qvha1IYXXAc>`82AB< z)|4cyQ(DXM2Oy5AR}c4JNlmT$^S*6JcoJn`{*M{Mc*G>|!~KI@9p41bweG}WvXbVI z5NSeUHTG=nKn<47$HO3{r?aHTB%r0rxijB6xAm^KqrNgjZ)A3$bgU3=$8raUpw7<) z#4I^o#2bT`5O&O1yKwb}jT>iMkR11HQmsO}V{()Zzbj3`E0iTot7cR-fQAHzw6 zvTcwAV?*Y|L$CgOyhGOMV3X!OEApx^Y@KyVF9Ega8bk;awEor{d!P`IpeViN{!pud zLAyRx8R*+0=3769)x(Wlzkbge`xwo{MhN&A3nlnU@#c;?=qlZvFG7ouFBR*TlGBn^ z;%0z8lptZO=Tnxvy*pX*cgqCJESY8dcI>*C=ZY>pZ~E`Tv4fo`LF<*3^Gbc-qi<=~ z_Hkzc5NIik5frFU=FKa4ew*fptx`_B->~D4cP5>2NWqUPu{AUx$Wk!s5&?Zq^ZO1fIg9%dblW6c~6p7cpkjF%|fK` z(|7M+N$`DTWDI@v4-Lq^wF?ElJ{_wnHt(6om>=Gms2k!Tq*yH3bPlgS_Z3G^Ant^1#<%V=b8A z16l~}UTi`Fy*6j7khXVz)O-c%OW1K$RT{5J@TuVRK6VTviNe)i6kS(3OY4;}>ged` z0JGb8lOa?JmI6;dfKT_p4R*l`-bpLR1~VF}11 zIR!A#t~eyB-)i(@J_&UPyR*_AEnWNej;OhAW&G zb5D2N{$|GH6;HISZHonl0uy5TdwB^k#?MZD`%U~bHb$j@noEehP|OUf=_zzZ2_x#>n)=eI?z8tD@& zVF7nk-*$^h{Lg;3pv%q~4NyexLpL19E|O7Ms0lqk5~gJy#~r=S2Xx{xa~r|$7`Qk{ z750kY=3mI=3Pu?1Ixp3T|7W}-4~tw^Qzm71u{+p@(txRcy>!726QUDm(N zlj_g8!M>*!Vn5&{3!#N$1^kXcIC*Iy_KT7<)e}=MXFEGMy#90oyscA#I37xD1qlfZ0{fibtQG(-K3cWU^lrM_)=xUhQQ1^v&{iuu-h6|53!g!7ynWOBO;92V z7PS|_RnyYaIJt2M0hX8+F2?}UFmCSpJz>eqLp6|1GJ)r`!F#K`F|7Dx)qMVB<v8;?;O3Ojt&kyFn~@*aUSIXnzWCbu6r2*LHVz~9NIMGnseSmx~juP2aDEF zZZ6PgOJ|}56$0_p#%WOYh{zkX7xsdkwjWk(xb@wdG=HZ=+ng&uO*HT5&{PJ*oGNiQ zjY@I8{&^W|i0z-l<)rJY`Zm~pXPjOZZM*T7OG$h;g`h}}wH1^=14U#IT&G<>&jb06&zJLp%kb`TuYSjrx9auF-=dhHq zKm|pyKV*t0L{Yj*0rYW_AHYIde`L1|s6%BV$g&`Y9-Kw7K-uK(-UzD3lOkd9y(=WP zSn}529HMQ${Z$H5E?$HUFd_J^n%00Xt8#j?p`V=gSR~_NhyfXsLr8FhK;pg)+8-Rj zNm$^0tz8gZt+u6MBJ}UWMI&_H?i~|f73hQ+eDT_V!n|1Qzb0=~1=g4L8?B=lsZ#Jq ztqzdl<(xlizq8#EKvY`=E*D#Td)?P)brs2|sQQG^_=4fn{_&$?rm!Q3b>)O}Jc2mD zccw=1P_g87m4t*A`XG)pV3H4;NE|<1$|RZP6q%2s7q^}w)tS6P96oa5U{di)6<%Up z*Ci|*vx3_CH6w{3q76)XfkH5o_(VON4HfV_!ljyzcpGmT-^o}ZpogJX~e$#ak zueasNA%WU|%jt334%3@np9Y*{?yvF&H!&d`Cn2QT(8Jf4AP0CnvtkHF>&CrLUqOc0 zv@+*y5UM$--@I|ksRVvNg-y1HSoo0`7a7pfv60;^j|n0@4f(M zP4v)&8R)Vj_k-VuimW_n7{#;TMdw}KOk^TbjebLQ{>AYbkurUhimGa3T^-npD0Un} z5*0aqu~ffA;J|ujwH>PP@Z7j@nY}$KOM06mds=^k*xlos#zxRV(GrkS*$jbCH~yy! zapD^C3~=?)mRYgvYz93|ftN&JC6j1P8}Of3S2p5v$t-5=>~nbTz6q>Rg`uXaL^U}_ zRbr=w;9)4E{gq6_zwLVWS8V~K_=KtOxPyM5CWol+40)WQezex$R{cAkkGEb*P7RNK z(_-X%h?awL5_pknm3$teP$1BxT$Dpl%&;c>O~TKiEHRF(rFR~go>n_nzGr~7O$QQmUnRgy{~OvnYAYpeNu7W{KH_!uKz958&br+>K-Wz|n%k0R zd#X2HaiHsntcc6Tm!Q{Sd9O8BF4aJ&zTliQx6~&qwDkCfdk+!(Fp+jMklJZcJDnLQ z!$+*$R;Ix-K{q2(Fsw|oLsnMaNLhh}e$j{Z`ax8%Y$8yGp4Ln2wqEXUwE#epoN@Mm^sSF)- zH_BXm_Q?#V(?mq;$~H(a++T4-EVj6^Azxhe{^tM{gRpWxYms!|_OWP^RoiK^_##a= zf1E>_ngfCBv(TxWIFaXOP}Vvc^%fZ2-a4S{kKjMs4lYLlSYKO< z5;;`i5J&4%TI{Znd)hlBb#W>2{#TS`3SElVsZ+ZJ(86BbgtTJX{HZ0AEaZjTcjSoS z)}LP)zUwO^Kq7EAv^^Y9$+MpY(AI;R*2&o(H6K3;@*_r&49Af@q`WlPo&?<@xrqb3DW-CP7D)*f3P0sP=l6C-8X3xqbdw%EaYLSh(8mJW+ByK zV6UHrr*NG4wr&D&;oS(tcqo#cHa&P|bRoOG(WWyq24Ms?2mn81@&2TofVD)lF+pSh zF#PX*do@URT*GgZm4TERB&F{d5a9Q?7$XAw(Rz$CoD3TlhAI%`TQ4Lw>&r_y7}!fprebrZuMgWy(6c;v_z)_V zqCwRzd($u%jkY?j3lsr@C^Ujix=N^;3c8e=w%A#JPliJ3HUk#C+ohM_?AnUZYhlXO zwBk)p|934J3kky8sr^Y;Dm?jYgG)9nBloTQFKKTiCG8Nz!m47DX%W@F^Cp|tRu#lCXC|)&{QF=cu8KIhp;1i=+2z~1EsZ)K-&b`fq z!YMdw4;UZE!@2enJWv!=&o%%%jMqugiWnp@0`J2?eQS5`Y=V!&WOaokshN<-xa4Qg zkl-jY)VIm&_G??ZeiCKGPE*f4C9!>{MCYZ~7Ec{OmM@gZ?SJ

D4aH<48bd%i+XoUcz_9YBw)6c05bohSyqYPXU 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 l{|^z1?3Z*$p%bc=>pg8-$ Date: Tue, 2 Apr 2024 22:56:40 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0mq=5Fdelay=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BB=8B=E7=BB=8D.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2\237\350\203\275\344\273\213\347\273\215.md" | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git "a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" "b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" index 86402d95c..315308260 100644 --- "a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" +++ "b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" @@ -2,7 +2,7 @@ 为了对进程间通过消息队列通信时,发送消息、接手消息以及处于等待状态所用时间进行监测,cpuwatcher工具增添mq_delay工具。 -![消息队列发送接收流程图](image\消息队列发送接收流程图.png) +![消息队列发送接收流程图](image/消息队列发送接收流程图.png) 以上是发送进程发送,接收进程接收的具体过程。本工具通过跟踪单个的消息块(struct msg_msg结构体)来监测发送时延、接收时延以及等待时延。 @@ -10,16 +10,16 @@ 发送过程 -* 用户程序将要发送的消息通过mq_send()函数或mq_timedsend()函数发送,mq_send/mq_timedsend函数调用mq_timedsend系统调用在内核实现具体的发送实现,此时将指向用户态消息缓冲区的指针==u_msg_ptr传入内核态==,此处我们第一次追踪到消息块。 -* 在mq_timedsend 系统调用中,会调用do_mq_timedsend()内核函数进行发送消息的操作,此处将==u_msg_ptr指针==作为传参传入do_mq_timedsend()函数; -* 在do_mq_timedsend()函数中,通过load_msg()函数将消息从用户空间加载到内核中,这里将==u_msg_ptr指针==作为传参; -* load_msg()函数中,通过copy_from_user()函数将==u_msg_ptr指针==指向的用户空间信息复制到分配的内核空间==msg==,并返回一个指向消息块所在内核空间的指针==msg_ptr==,此时我们便在内核中跟踪到了具体的消息块实体,后续操作都是围绕这个消息块指针展开的,包括接收程序也是对此指针进行copy_to_user操作; +* 用户程序将要发送的消息通过mq_send()函数或mq_timedsend()函数发送,mq_send/mq_timedsend函数调用mq_timedsend系统调用在内核实现具体的发送实现,此时将指向用户态消息缓冲区的指针u_msg_ptr传入内核态,此处我们第一次追踪到消息块。 +* 在mq_timedsend 系统调用中,会调用do_mq_timedsend()内核函数进行发送消息的操作,此处将u_msg_ptr指针作为传参传入do_mq_timedsend()函数; +* 在do_mq_timedsend()函数中,通过load_msg()函数将消息从用户空间加载到内核中,这里将u_msg_ptr指针作为传参; +* load_msg()函数中,通过copy_from_user()函数将u_msg_ptr指针指向的用户空间信息复制到分配的内核空间msg,并返回一个指向消息块所在内核空间的指针msg_ptr,此时我们便在内核中跟踪到了具体的消息块实体,后续操作都是围绕这个消息块指针展开的,包括接收程序也是对此指针进行copy_to_user操作; 接受过程 -* 用户程序通过mq_receive()或mq_timedreceive()函数,从消息队列中接收消息,mq_receive()或mq_timedreceive()函数调用mq_timedreceive系统调用在内核中实现具体的接收实现,此时将指向用户态缓冲区的指针==u_msg_ptr传入内核==,这里是我们本次跟踪最后一次遇到消息块。 -* mq_timedreceive系统调用通过do_mq_timedreceive()函数找到要接收的消息块,并将其传入==u_msg_ptr所指向的用户空间== -* do_mq_timedreceive()函数如果等到要接收的消息块,会通过store_msg()函数将消息块(发送时==msg_ptr所指向的消息块==)存储至==u_msg_ptr所指向的用户空间==。所以此时,我们在接收消息的内核处理函数中追踪到了具体的消息块。 +* 用户程序通过mq_receive()或mq_timedreceive()函数,从消息队列中接收消息,mq_receive()或mq_timedreceive()函数调用mq_timedreceive系统调用在内核中实现具体的接收实现,此时将指向用户态缓冲区的指针u_msg_ptr传入内核,这里是我们本次跟踪最后一次遇到消息块。 +* mq_timedreceive系统调用通过do_mq_timedreceive()函数找到要接收的消息块,并将其传入u_msg_ptr所指向的用户空间 +* do_mq_timedreceive()函数如果等到要接收的消息块,会通过store_msg()函数将消息块(发送时msg_ptr所指向的消息块)存储至u_msg_ptr所指向的用户空间。所以此时,我们在接收消息的内核处理函数中追踪到了具体的消息块。 此处还可拓展一些功能: From 8088a50e0c91606cd6d646cc124670699b78c23b Mon Sep 17 00:00:00 2001 From: albertxu216 <145351853+albertxu216@users.noreply.github.com> Date: Thu, 11 Apr 2024 15:14:24 +0800 Subject: [PATCH 09/11] =?UTF-8?q?Rename=20=E6=B6=88=E6=81=AF=E9=98=9F?= =?UTF-8?q?=E5=88=97=E5=8F=91=E9=80=81=E6=8E=A5=E6=94=B6=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=9B=BE.png=20to=20image=5Fmq.png?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cpu_watcher/docs/image/image_mq.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename "eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/\346\266\210\346\201\257\351\230\237\345\210\227\345\217\221\351\200\201\346\216\245\346\224\266\346\265\201\347\250\213\345\233\276.png" => eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/image_mq.png (100%) diff --git "a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/\346\266\210\346\201\257\351\230\237\345\210\227\345\217\221\351\200\201\346\216\245\346\224\266\346\265\201\347\250\213\345\233\276.png" b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/image_mq.png similarity index 100% rename from "eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/\346\266\210\346\201\257\351\230\237\345\210\227\345\217\221\351\200\201\346\216\245\346\224\266\346\265\201\347\250\213\345\233\276.png" rename to eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/image/image_mq.png From ebbec9e3dd2b715da0bee333e947aa9372208a78 Mon Sep 17 00:00:00 2001 From: albertxu216 <145351853+albertxu216@users.noreply.github.com> Date: Thu, 11 Apr 2024 15:15:12 +0800 Subject: [PATCH 10/11] =?UTF-8?q?Update=20mq=5Fdelay=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BB=8B=E7=BB=8D.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" "b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" index 315308260..cfcc1ba5b 100644 --- "a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" +++ "b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" @@ -2,7 +2,7 @@ 为了对进程间通过消息队列通信时,发送消息、接手消息以及处于等待状态所用时间进行监测,cpuwatcher工具增添mq_delay工具。 -![消息队列发送接收流程图](image/消息队列发送接收流程图.png) +![image_mq](image/image_mq.png) 以上是发送进程发送,接收进程接收的具体过程。本工具通过跟踪单个的消息块(struct msg_msg结构体)来监测发送时延、接收时延以及等待时延。 From ee6547f1be3937b4ed4bc75cbf90cf8b69612fb9 Mon Sep 17 00:00:00 2001 From: albertxu216 <145351853+albertxu216@users.noreply.github.com> Date: Thu, 11 Apr 2024 15:19:12 +0800 Subject: [PATCH 11/11] =?UTF-8?q?Update=20and=20rename=20mq=5Fdelay?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BB=8B=E7=BB=8D.md=20to=20mq=5Fdelay.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CPU_Subsystem/cpu_watcher/docs/mq_delay.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" => eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay.md (100%) diff --git "a/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" b/eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay.md similarity index 100% rename from "eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay\345\212\237\350\203\275\344\273\213\347\273\215.md" rename to eBPF_Supermarket/CPU_Subsystem/cpu_watcher/docs/mq_delay.md