From 483a2658fbf4d58ae0ef997709c0fac44966bf99 Mon Sep 17 00:00:00 2001 From: Eden Federman Date: Thu, 29 Sep 2022 09:11:45 +0300 Subject: [PATCH] Context propagation (#32) Context propagation between both different libraries n the same application and across applications by adding W3C headers. --- docs/getting-started/README.md | 82 +- .../emojivoto-instrumented.yaml | 247 + docs/getting-started/emojivoto/emoji.yml | 61 + .../emojivoto/kustomization.yml | 6 + docs/getting-started/emojivoto/ns.yml | 4 + docs/getting-started/emojivoto/vote-bot.yml | 32 + docs/getting-started/emojivoto/voting.yml | 61 + docs/getting-started/emojivoto/web.yml | 61 + docs/getting-started/jaeger_traces.png | Bin 120264 -> 122278 bytes docs/getting-started/leaderboard_trace.png | Bin 0 -> 165672 bytes docs/getting-started/vote_trace.png | Bin 0 -> 65384 bytes docs/getting-started/voting-patch.yaml | 27 - docs/how-it-works.md | 11 - go.mod | 3 +- go.sum | 4 + include/alloc.h | 70 + include/go_context.h | 20 + include/go_types.h | 75 + include/goroutines.h | 19 - include/span_context.h | 55 + include/utils.h | 52 + pkg/inject/injector.go | 26 +- pkg/inject/offset_results.json | 4248 ++++++++++++++--- .../allocator/allocator_linux.go | 43 + .../github.com/gorilla/mux/bpf/probe.bpf.c | 35 +- .../bpf/github.com/gorilla/mux/probe.go | 39 +- .../google/golang/org/grpc/bpf/probe.bpf.c | 115 +- .../bpf/google/golang/org/grpc/probe.go | 86 +- .../golang/org/grpc/server/bpf/probe.bpf.c | 146 +- .../google/golang/org/grpc/server/probe.go | 87 +- .../bpf/net/http/server/bpf/probe.bpf.c | 35 +- .../bpf/net/http/server/probe.go | 39 +- pkg/instrumentors/bpffs/bpfsfs.go | 5 + pkg/instrumentors/context/span_context.go | 8 + pkg/instrumentors/events/event.go | 15 +- pkg/instrumentors/goroutine/bpf/tracker.bpf.c | 41 - pkg/instrumentors/goroutine/bpffs/bpfsfs.go | 12 - pkg/instrumentors/goroutine/tracker_linux.go | 132 - pkg/instrumentors/manager.go | 35 +- pkg/instrumentors/runner.go | 8 +- pkg/opentelemetry/controller.go | 118 +- pkg/opentelemetry/id_generator.go | 51 + pkg/process/analyze.go | 42 +- 43 files changed, 5108 insertions(+), 1148 deletions(-) create mode 100644 docs/getting-started/emojivoto-instrumented.yaml create mode 100644 docs/getting-started/emojivoto/emoji.yml create mode 100644 docs/getting-started/emojivoto/kustomization.yml create mode 100644 docs/getting-started/emojivoto/ns.yml create mode 100644 docs/getting-started/emojivoto/vote-bot.yml create mode 100644 docs/getting-started/emojivoto/voting.yml create mode 100644 docs/getting-started/emojivoto/web.yml create mode 100644 docs/getting-started/leaderboard_trace.png create mode 100644 docs/getting-started/vote_trace.png delete mode 100644 docs/getting-started/voting-patch.yaml create mode 100644 include/alloc.h create mode 100644 include/go_context.h create mode 100644 include/go_types.h delete mode 100644 include/goroutines.h create mode 100644 include/span_context.h create mode 100644 include/utils.h create mode 100644 pkg/instrumentors/allocator/allocator_linux.go create mode 100644 pkg/instrumentors/bpffs/bpfsfs.go create mode 100644 pkg/instrumentors/context/span_context.go delete mode 100644 pkg/instrumentors/goroutine/bpf/tracker.bpf.c delete mode 100644 pkg/instrumentors/goroutine/bpffs/bpfsfs.go delete mode 100644 pkg/instrumentors/goroutine/tracker_linux.go create mode 100644 pkg/opentelemetry/id_generator.go diff --git a/docs/getting-started/README.md b/docs/getting-started/README.md index 94d5130..58abebd 100644 --- a/docs/getting-started/README.md +++ b/docs/getting-started/README.md @@ -30,7 +30,7 @@ The different emojivoto applications are communicating via gRPC. Instrumenting t Run the following command: ```shell -kubectl apply -k github.com/BuoyantIO/emojivoto/kustomize/deployment +kubectl apply -k github.com/keyval-dev/opentelemetry-go-instrumentation/docs/getting-started/emojivoto ``` ### Deploying Jaeger UI @@ -47,51 +47,23 @@ In a real world application, you would probably want to send the tracing data to ## Instrumentation -Download [this patch file](https://raw.githubusercontent.com/keyval-dev/opentelemetry-go-instrumentation/master/docs/getting-started/voting-patch.yaml) and apply it to the voting deployment: +Apply the automatic instrumentation to the `emoji`, `voting`, and `web` applications by executing the following command: ```shell -kubectl patch deployment voting --patch-file voting-patch.yaml -n emojivoto +kubectl apply -f https://raw.githubusercontent.com/keyval-dev/opentelemetry-go-instrumentation/master/docs/getting-started/emojivoto-instrumented.yaml -n emojivoto ``` -Looking at the patch file will give us a better idea of how the automatic instrumentation works: - -```yaml -spec: - template: - spec: - shareProcessNamespace: true - containers: - - name: emojivoto-voting-instrumentation - image: keyval/otel-go-agent:v0.5.3 - env: - - name: OTEL_TARGET_EXE - value: /usr/local/bin/emojivoto-voting-svc - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: "jaeger:4317" - - name: OTEL_SERVICE_NAME - value: "emojivoto-voting" - securityContext: - runAsUser: 0 - capabilities: - add: - - SYS_PTRACE - privileged: true - volumeMounts: - - mountPath: /sys/kernel/debug - name: kernel-debug - volumes: - - name: kernel-debug - hostPath: - path: /sys/kernel/debug -``` +## Perform actions on the target Application + +Now all that left to do is to perform some actions on the target application that will cause the creation of detailed distributed traces. + +Port forward to the frontend service: -The instrumentation is achieved by performing the following steps: +```shell +kubectl port-forward svc/web-svc 8080:80 -n emojivoto +``` -- Adding a sidecar container that runs the OpenTelemetry Go Instrumentation agent. -- Configuring the target executable to instrument, this is done via the `OTEL_TARGET_EXE` environment variable. -- Configuring the Jaeger exporter endpoint, this is done via the `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable. -- Configuring the service name, this is done via the `OTEL_SERVICE_NAME` environment variable. -- Configuring the required permissions and security context for the instrumentation agent. Including sharing the process namespace, and mounting the kernel debugfs. +Go to `http://localhost:8080`, and click the **view the leaderboard** button. ## Viewing the traces @@ -103,23 +75,33 @@ kubectl port-forward svc/jaeger 16686:16686 -n emojivoto Then, open the Jaeger UI in your browser by navigating to http://localhost:16686/ -After selecting the emojivoto-voting service, you should see the following traces: +After selecting the `emojivoto-web` service, you should see the following traces: ![Traces](jaeger_traces.png) -Each trace should contain data according to the OpenTelemetry specification, for example: gRPC method names, start and end timestamps, and even the goroutine id. +Let's start with a simple trace, click on one of the `/api/vote` traces, you should see something like the following: +![vote_trace](vote_trace.png) -Notice that we did not change the emojivoto-voting application to use OpenTelemetry. This is the exact same container that we used earlier. +A few things worth noticing in this trace: +- **In process context-propagation**: We can see that the `web` application got an HTTP request (the root span) which caused two sequential gRPC requests to the `emoji` and `voting` services. +- **Cross process context-propagation**: The automatic instrumentation adds the relevant headers to gRPC / HTTP requests in order to make traces distributed across processes. In Jaeger, different applications are marked in different colors. +- **Extremely low overhead**: The entire trace took 3.1 milliseconds to complete. This show that using eBPF for instrumentation adds extremely low overhead. +- **Following OpenTelemetry Specifications**: You can click on any span in the trace to view the different attributes. All the spans produced by the automatic instrumentation follows the OpenTelemetry specification and therefore will work with any OpenTelemetry compatible backend. -## Next Steps +Now we will view a more complex trace, search for traces for the `/api/leaderboard` endpoint. +You can quickly find them by clicking on the points with the highest duration in Jaeger's main screen. +![leaderboard_trace](leaderboard_trace.png) +We can get a pretty good understanding of how the leaderboard feature works by looking at this trace: +- First, the web service will perform a gRPC request to the `voting` service to get a list of the available emojis. +- Second, The web service will loop over the received list of emojis and for every item on the list it will perform a gRPC request to the `emoji` service to get the amount of votes for the current item. +- As you can see this happens sequentially, which is one of the reason the leaderboard endpoint takes about 150ms to complete. -Instrumenting other applications is easy: +### Notice that we did not change any application code to get those traces, we are using the exact same containers from the emojivoto project. -- Modify the patch file to match your application by setting the `OTEL_TARGET_EXE`,`OTEL_EXPORTER_OTLP_ENDPOINT` and `OTEL_SERVICE_NAME` environment variables. -- Apply the modified patched file: +## Next Steps -```shell -kubectl patch deployment --patch-file -``` +The easiest way to apply this automatic instrumentation for any application is by using a control plane such as [Odigos](https://github.com/keyval-dev/odigos). + +For more details visit the [Odigos website](https://odigos.io). ## Cleanup diff --git a/docs/getting-started/emojivoto-instrumented.yaml b/docs/getting-started/emojivoto-instrumented.yaml new file mode 100644 index 0000000..80cd5c9 --- /dev/null +++ b/docs/getting-started/emojivoto-instrumented.yaml @@ -0,0 +1,247 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: emoji + namespace: emojivoto + labels: + app.kubernetes.io/name: emoji + app.kubernetes.io/part-of: emojivoto + app.kubernetes.io/version: v11 +spec: + replicas: 1 + selector: + matchLabels: + app: emoji-svc + version: v11 + template: + metadata: + labels: + app: emoji-svc + version: v11 + spec: + serviceAccountName: emoji + shareProcessNamespace: true + terminationGracePeriodSeconds: 0 + initContainers: + - name: copy-launcher + image: keyval/launcher:v0.1 + command: + - cp + - -a + - /kv-launcher/. + - /odigos-launcher/ + volumeMounts: + - name: launcherdir + mountPath: /odigos-launcher + containers: + - env: + - name: GRPC_PORT + value: "8080" + - name: PROM_PORT + value: "8801" + image: docker.l5d.io/buoyantio/emojivoto-emoji-svc:v11 + name: emoji-svc + command: + - /odigos-launcher/launch + - /usr/local/bin/emojivoto-emoji-svc + volumeMounts: + - mountPath: /odigos-launcher + name: launcherdir + ports: + - containerPort: 8080 + name: grpc + - containerPort: 8801 + name: prom + resources: + requests: + cpu: 100m + - name: emojivoto-emoji-instrumentation + image: edenfed/otel-go-agent:v0.7 + env: + - name: OTEL_TARGET_EXE + value: /usr/local/bin/emojivoto-emoji-svc + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "jaeger:4317" + - name: OTEL_SERVICE_NAME + value: "emojivoto-emoji" + securityContext: + runAsUser: 0 + capabilities: + add: + - SYS_PTRACE + privileged: true + volumeMounts: + - mountPath: /sys/kernel/debug + name: kernel-debug + volumes: + - name: launcherdir + emptyDir: {} + - name: kernel-debug + hostPath: + path: /sys/kernel/debug +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: voting + namespace: emojivoto + labels: + app.kubernetes.io/name: voting + app.kubernetes.io/part-of: emojivoto + app.kubernetes.io/version: v11 +spec: + replicas: 1 + selector: + matchLabels: + app: voting-svc + version: v11 + template: + metadata: + labels: + app: voting-svc + version: v11 + spec: + serviceAccountName: voting + shareProcessNamespace: true + terminationGracePeriodSeconds: 0 + initContainers: + - name: copy-launcher + image: keyval/launcher:v0.1 + command: + - cp + - -a + - /kv-launcher/. + - /odigos-launcher/ + volumeMounts: + - name: launcherdir + mountPath: /odigos-launcher + containers: + - env: + - name: GRPC_PORT + value: "8080" + - name: PROM_PORT + value: "8801" + image: docker.l5d.io/buoyantio/emojivoto-voting-svc:v11 + name: voting-svc + command: + - /odigos-launcher/launch + - /usr/local/bin/emojivoto-voting-svc + volumeMounts: + - mountPath: /odigos-launcher + name: launcherdir + ports: + - containerPort: 8080 + name: grpc + - containerPort: 8801 + name: prom + resources: + requests: + cpu: 100m + - name: emojivoto-voting-instrumentation + image: edenfed/otel-go-agent:v0.7 + env: + - name: OTEL_TARGET_EXE + value: /usr/local/bin/emojivoto-voting-svc + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "jaeger:4317" + - name: OTEL_SERVICE_NAME + value: "emojivoto-voting" + securityContext: + runAsUser: 0 + capabilities: + add: + - SYS_PTRACE + privileged: true + volumeMounts: + - mountPath: /sys/kernel/debug + name: kernel-debug + volumes: + - name: launcherdir + emptyDir: {} + - name: kernel-debug + hostPath: + path: /sys/kernel/debug +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: web + namespace: emojivoto + labels: + app.kubernetes.io/name: web + app.kubernetes.io/part-of: emojivoto + app.kubernetes.io/version: v11 +spec: + replicas: 1 + selector: + matchLabels: + app: web-svc + version: v11 + template: + metadata: + labels: + app: web-svc + version: v11 + spec: + serviceAccountName: web + shareProcessNamespace: true + terminationGracePeriodSeconds: 0 + initContainers: + - name: copy-launcher + image: keyval/launcher:v0.1 + command: + - cp + - -a + - /kv-launcher/. + - /odigos-launcher/ + volumeMounts: + - name: launcherdir + mountPath: /odigos-launcher + containers: + - env: + - name: WEB_PORT + value: "8080" + - name: EMOJISVC_HOST + value: emoji-svc.emojivoto:8080 + - name: VOTINGSVC_HOST + value: voting-svc.emojivoto:8080 + - name: INDEX_BUNDLE + value: dist/index_bundle.js + image: docker.l5d.io/buoyantio/emojivoto-web:v11 + name: web-svc + command: + - /odigos-launcher/launch + - /usr/local/bin/emojivoto-web + volumeMounts: + - mountPath: /odigos-launcher + name: launcherdir + ports: + - containerPort: 8080 + name: http + resources: + requests: + cpu: 100m + - name: emojivoto-web-instrumentation + image: edenfed/otel-go-agent:v0.7 + env: + - name: OTEL_TARGET_EXE + value: /usr/local/bin/emojivoto-web + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "jaeger:4317" + - name: OTEL_SERVICE_NAME + value: "emojivoto-web" + securityContext: + runAsUser: 0 + capabilities: + add: + - SYS_PTRACE + privileged: true + volumeMounts: + - mountPath: /sys/kernel/debug + name: kernel-debug + volumes: + - name: launcherdir + emptyDir: {} + - name: kernel-debug + hostPath: + path: /sys/kernel/debug \ No newline at end of file diff --git a/docs/getting-started/emojivoto/emoji.yml b/docs/getting-started/emojivoto/emoji.yml new file mode 100644 index 0000000..0e26c28 --- /dev/null +++ b/docs/getting-started/emojivoto/emoji.yml @@ -0,0 +1,61 @@ +kind: ServiceAccount +apiVersion: v1 +metadata: + name: emoji + namespace: emojivoto +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: emoji + namespace: emojivoto + labels: + app.kubernetes.io/name: emoji + app.kubernetes.io/part-of: emojivoto + app.kubernetes.io/version: v11 +spec: + replicas: 1 + selector: + matchLabels: + app: emoji-svc + version: v11 + template: + metadata: + labels: + app: emoji-svc + version: v11 + spec: + serviceAccountName: emoji + terminationGracePeriodSeconds: 0 + containers: + - env: + - name: GRPC_PORT + value: "8080" + - name: PROM_PORT + value: "8801" + image: docker.l5d.io/buoyantio/emojivoto-emoji-svc:v11 + name: emoji-svc + ports: + - containerPort: 8080 + name: grpc + - containerPort: 8801 + name: prom + resources: + requests: + cpu: 100m +--- +apiVersion: v1 +kind: Service +metadata: + name: emoji-svc + namespace: emojivoto +spec: + selector: + app: emoji-svc + ports: + - name: grpc + port: 8080 + targetPort: 8080 + - name: prom + port: 8801 + targetPort: 8801 diff --git a/docs/getting-started/emojivoto/kustomization.yml b/docs/getting-started/emojivoto/kustomization.yml new file mode 100644 index 0000000..b09dc55 --- /dev/null +++ b/docs/getting-started/emojivoto/kustomization.yml @@ -0,0 +1,6 @@ +resources: +- ns.yml +- web.yml +- emoji.yml +- voting.yml +- vote-bot.yml diff --git a/docs/getting-started/emojivoto/ns.yml b/docs/getting-started/emojivoto/ns.yml new file mode 100644 index 0000000..13491ee --- /dev/null +++ b/docs/getting-started/emojivoto/ns.yml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: emojivoto diff --git a/docs/getting-started/emojivoto/vote-bot.yml b/docs/getting-started/emojivoto/vote-bot.yml new file mode 100644 index 0000000..3de7587 --- /dev/null +++ b/docs/getting-started/emojivoto/vote-bot.yml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: vote-bot + namespace: emojivoto + labels: + app.kubernetes.io/name: vote-bot + app.kubernetes.io/part-of: emojivoto + app.kubernetes.io/version: v11 +spec: + replicas: 1 + selector: + matchLabels: + app: vote-bot + version: v11 + template: + metadata: + labels: + app: vote-bot + version: v11 + spec: + containers: + - command: + - emojivoto-vote-bot + env: + - name: WEB_HOST + value: web-svc.emojivoto:80 + image: docker.l5d.io/buoyantio/emojivoto-web:v11 + name: vote-bot + resources: + requests: + cpu: 10m diff --git a/docs/getting-started/emojivoto/voting.yml b/docs/getting-started/emojivoto/voting.yml new file mode 100644 index 0000000..e4d8c79 --- /dev/null +++ b/docs/getting-started/emojivoto/voting.yml @@ -0,0 +1,61 @@ +kind: ServiceAccount +apiVersion: v1 +metadata: + name: voting + namespace: emojivoto +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: voting + namespace: emojivoto + labels: + app.kubernetes.io/name: voting + app.kubernetes.io/part-of: emojivoto + app.kubernetes.io/version: v11 +spec: + replicas: 1 + selector: + matchLabels: + app: voting-svc + version: v11 + template: + metadata: + labels: + app: voting-svc + version: v11 + spec: + serviceAccountName: voting + terminationGracePeriodSeconds: 0 + containers: + - env: + - name: GRPC_PORT + value: "8080" + - name: PROM_PORT + value: "8801" + image: docker.l5d.io/buoyantio/emojivoto-voting-svc:v11 + name: voting-svc + ports: + - containerPort: 8080 + name: grpc + - containerPort: 8801 + name: prom + resources: + requests: + cpu: 100m +--- +apiVersion: v1 +kind: Service +metadata: + name: voting-svc + namespace: emojivoto +spec: + selector: + app: voting-svc + ports: + - name: grpc + port: 8080 + targetPort: 8080 + - name: prom + port: 8801 + targetPort: 8801 diff --git a/docs/getting-started/emojivoto/web.yml b/docs/getting-started/emojivoto/web.yml new file mode 100644 index 0000000..51c0b5c --- /dev/null +++ b/docs/getting-started/emojivoto/web.yml @@ -0,0 +1,61 @@ +kind: ServiceAccount +apiVersion: v1 +metadata: + name: web + namespace: emojivoto +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: web + namespace: emojivoto + labels: + app.kubernetes.io/name: web + app.kubernetes.io/part-of: emojivoto + app.kubernetes.io/version: v11 +spec: + replicas: 1 + selector: + matchLabels: + app: web-svc + version: v11 + template: + metadata: + labels: + app: web-svc + version: v11 + spec: + serviceAccountName: web + terminationGracePeriodSeconds: 0 + containers: + - env: + - name: WEB_PORT + value: "8080" + - name: EMOJISVC_HOST + value: emoji-svc.emojivoto:8080 + - name: VOTINGSVC_HOST + value: voting-svc.emojivoto:8080 + - name: INDEX_BUNDLE + value: dist/index_bundle.js + image: docker.l5d.io/buoyantio/emojivoto-web:v11 + name: web-svc + ports: + - containerPort: 8080 + name: http + resources: + requests: + cpu: 100m +--- +apiVersion: v1 +kind: Service +metadata: + name: web-svc + namespace: emojivoto +spec: + type: ClusterIP + selector: + app: web-svc + ports: + - name: http + port: 80 + targetPort: 8080 diff --git a/docs/getting-started/jaeger_traces.png b/docs/getting-started/jaeger_traces.png index 99afcd64f69990ba221564d085c83630d4dc2a4b..2110dda9c84ee6925fc4e747eeef4e5f09df27ba 100644 GIT binary patch literal 122278 zcmafb1yt1E^EO?Ipa=+ppoG%htxJRIqmAORB+n&dv>{=6xi1THw%PTxO-oaS#ET>srZ257d{Jnsrw@wkdvbwz zCCOM#H##BZ&dW)>vl$xL-F4<-)Yx>GbaXg4YVo%;0vgcIDavr23)X>M!VLOwHf{1& zu#V_QqLG|K6{1q9?kJ>lSD=j8aWZ_rc}^;cmvsHcUk z?ro?YP!AYGT##Ex^xNnE=gF@Te`~4pt0fmVpWyFJe|z+IQ%x5O=UWbTU`$u>UrY0& z@$V0RG!*4PiT;}^zU%qhUxA{<2}C*mTQqTk=LEbwXlRmX^0%clJkgiOaD6p2cbdME z^xn8iPkiA59vkeV#zib_Qc{iOfQve{q1b2U^&HQCC}rKLaWB!nt$}rixE3$_k>q@R z@c2!9e0-);AA8>^dZn8;hodKEcsk+QYljWf7PFnzyEvrr*DhiaOQNCw&wtr>V0wJs zuIIwhFz{#t|K~rgKuKx|ynj8x^Ms+nggIX0X`ugauV5q$x1+QF=n#)~5*q_+v2OC3 z8utH81~oyvzOOw0I}b2}Kyp0d?9Kb3lBE9>1doYGN>5MEOUu#_^qba>b%BJ0rQBiF zlJtw2*`Fi9)Um?1cxm&b%E}J;8 z@%r{>EN0UGCAhD0pk#89A=hH)|12KRbsW(3(MGAW`oEU2fl)H8Yq0Rrw)DTGQ3TTX zd+7=>{iTO*Z;eT4)#hxp!w#1Dszm9KRXb*4kCsEj4>uS0~!WNyHXlKg66f;@-Nz2JetZTv!%8x%Hp6*Zoiy z6F?}0`9sI+m@p3Q!dQta`>4^z`%W3jk%XfOthE%E`4#-7U`dgm%FFw8|C={9w?0 zybfF4MEJg{f;AhR%qXLjRLmx9%#D+gSh6V(dp5C0-(`b9*0aD$x(p##GK^Je=c*y? z@nPqe3GvZOrWHP%6k^4|+ly-&tWLCjZLu zp(0FSgiGX?*U07vis_d@z`!h1v0uJ?neKOZktFO4AFSH2@UCHv>x1Cn;MVc_LwXh# zeHFnMp?!sh`Vd4STS*C5?<-k>T6q%|f@>hkeKeYboi4t*$;i9QL}bOLz>Yk5_GXwU)-~lQIkuj>H~z z9cU{*gO4BE;OC<_)%=v6fuW7JV9aVqd%}GDK}S57!%)KtZ%3haQOcDaUDtt1JCP?{ zjy^Nc1jx}Ha57k9zwKP}49B096s0fH=KsYOLhc(iKU7*1|WT3@6H=&x?9iF30!wfw$R ziNG&vlJJH|p~0Fi#tS+<5#8=PhOc9>T9>9*vN>Fw;vJ(NZt<$TJbNcS&V#V z-$DSqfFDLn0=ij)L3NEfGnqYxTN}jWGQocbOW+y-7HPctz+zTLhP&0B`cc}9CQMOHD-2hYRP=g`Hg_r19p6uImXSW zt;&Y!n7Sk{JbsKXTPidHY>ELd-F}4qu2QBgM5XKe8r$0~eXlzs{E-*OCLis-dHBnP z#L%fd?}nTAX?F3MaG^a$3<+YKx-Pa->nH{g4NX&Ov#|mK_DFa6baOFy zL#wMOfL2iG$LWSAh(11sJ<2c_3{E5%9SNQQdQfUW3R4*b5lc+M>ez1fOiZW1Z$_wP zJ8O=LBv`k`EX$S`GuXDXHNphBYh3@46H2CQJj@>!8!udOyx=Mn_YUv&;JG+|yQmej z{#CJ3md!va*4DW72$LR*g3FvH?@jS^!+!dkz5J$$)N)2VVG~Xh$NLMpfN39g}B~Lm@YrhCg7D(3$i0f_VzT@)6BIL0o)|+w}cu z`p3_*J*IK*DW+bOdtyy{koGIM#(Egojk8z@v1ps02#Avwsq8perh=X)Wx!NdHxI;r zLFR8hl$g81Gf=18Y3OP%BAn_gc(klPh^ z2*LR6hFjUHMz1}+EZ`222j0ndqwPAk$Ev~5Yo}MqH0RG>O%`^G3}vs81A(^T(&CB# z{tP(uE^v7Z$g@(25$sXfO z`c?KZgT?`d4~b}0(z*~&9$>XsTb9Ph{qIns_C8CArUb+1l|T%WYy8+-01 zId1$~XJ=+w&fe&=Tq

3oG`Hyet}`gM6smBel+QU?qi^qh2Z1{I_rii+EiXJ@srK z;!~+~As>utF6gOIVlt!4qAE%JK4eUo!sTGW$f;rrGdA|^Gkv2w45`_-rKIkZY%dLV z+#(XAr*yn5>RC+KS)fyLQ~YGlta>iRXF5jP==_SBewELc$Jfn!UP|+?yZ38q%VQ!% z<$~NPBam}oYu^4cHB}Jgk`!m`uX`on=<7A*eX1Ll)N>VwWo1gw?$(uC_qSiM{8ViE z5_u8pNXlffZ_Rx4b$92QX1W#G*xuLFjz-GkS zop82xO}ik{tA&a#`7+-|eV)`)F@jFGKzCQ;;cBfNiMrnl3g_W1&9b#vc0*=r5%=h! zGRqO#WPTpMNf@r}y2{{6&#Mr^*o7K!o<@z>*D71qw$CEqc4XrWaRy%!wFmGE-VIr% z8h%*>(F~JQ!XXCX0d|6T&J8@zvZm>_yBQv9M$R8dALwR6p_gY)4r$1!3AKVeqD%3u zB32V7PI&`b&Pn82eigGuep-NDrk@z)QBkqg^W`e~6^?@7sRbLzST)9r-n)^H-&?__ zY*aDoyw#)LfhFv(q8L?>kZ>&kdod+NK)adE=vu8(v!SO|c6$8exQ}HrgWKsMo)~hA z&V6RkxFgbTWI8S39N*?hf}6Pb92LBx*mc)_VRy*#f`fQ4V_y+R83H$*GpfF#i8r*5 zNMX=_H~FX<8fBiC8Chc|i|lmE#~-z74!X;Ww;5pUYx?ZP$ou|h5vm-o)xIqDIca^a zz6fJu3{nq`!k^3c&aFOq+UYiMvRK}kDls8WM8W-@G`)&(#8RCAT0z{+5ra@wrI223pRE~mof#{g& z=OiwZzOWo&zR=1)cGh*Fcc^0bHpz`%DTYeB5&5*P4ClSayJYM_FKLs@EC~mWYoKN2 zp-}p#6y|SDKU4e{)Sv;MzbBG7eJktkT9Fi1VS=zU#9?GHcR%7)c%&2K4d(&l3Z>wIge`w6c~{|X=u%(fv9`MS%6?_IfvxxYOe`&7RcF^mH;l9hM2lyZp6^s2BouE$Bgg{kD-`G$+Ty!1TU213i&_LKJGC1*U6@;;D zwLP4A`bi}df0;^h>hX#|$Fb+ycyE!LjgSe3{n&VbG5^Xq-IOwkF16>iKJx}B$uQBu zPK*rWr=2|fY(vx1iP&1~VAt!zHp7S(j~EeQ8k^mm<7qZtB0@Cfy1jb~#MEpe=cpo5 zAZWpeOo~tUc(`-&;@z6zQuyUUs~(I&i#Q}uKEwJK$3Oc`gk7W)-X_NIvT5eBM$ z<+elW!mjhQ*OOf%^G>ToUF@`rjM&6{c37P(5paR34&Jmm@eBFkP2LE;!B3K7mW)27 z>2K&nS9CA~5}(c)@y-tp9*I&H`W`G~xjUX+q3NcWz8Ms`R<{{WEjo3B#50q2QW>La zLj1POGyj`c{I+!U*$|nvvxzJQK@FaF4eKk|d6Z~egkrWHGzo83$-sML;yI{p{0dq? zY)FG4PLW+ZiZyj%QMxsX(X(vSJP+DDl9()F(btWfvEVUjQpLn+KL|U^qn<*++#Su9 z$&?QngyuMue&$vV8I?$6ETznbLu4@eU&5*gA#l54+kuO_Fy^fa$U7k^VZY<26qAyQ zA+H55rz00Gk<7z|9RqF0QkmG4d1SJz?rLXs*Nr0*-qzNA1^oW32QX+OnHDl&OPq~l%DxMtGnr&u55WW3RqGJLq>c%YZ^Ux&Frtr(N z74-4Hxwc!{iiKBE&PrxwqbZ@j_1TEBkA0Zj@byp}&Z0Asi_)$i)`2Tq)V^mJ1^sOr z?*iUdKK~=n1TM3ORCWi~`y}D~Uj66qDKbMD1@khb&vYZUKr-!JeY`WWa-(#2A|OD% zmWkUq$l0Os*!{Veh2Ll1H`GGT(^uhEQMv>e>a+4GQ`pMji*nX8-4}+do}C{OyE9Lw6v)LFu>gkdiv{ z+ydie(~X*nNVTdIEBD0MD5b#J^v&)#|IF^!*o;kF9!px)X__pxN@asa9+zY8zH=J> zR1Uo@CeNqqX{H<-+aOLSq}#=do|L)0*k%#MIOOGy%WyQvEUZv2QS?CG z&OmP;mX}zJ71DRVW~nfW+}QVyxPTwImRrx}V@^7WR7_r!EZ3D}p z$YEXz2UZHoOU^8mf<@Xzg(FmqiWgcrVSFq0pFbvzM^@hOYd8@bS-N`b^;Ut-lb=B@ zDykf3opcG3pTALX%5{t!vpVoX&K9g%R6(C)Fl5}hwE#&>w?i?=ZcT5=_!oT ziY4W0jxwYoRmAZ6CoBg==HWHN!9qie4dbB4(d9-Kor7=acwJO5pWVrPChcb>>0AhH zSTP^bY^M6Ygrx++#Pb;b9d~Sl5uDXu2Rmt)3Mzlr;BPw z!TT`bw_Y(!kk2MgociVu3uaymX=@W_u^I8=n=v+>aRTa&%zqZW}jj*=39bWw@i_}~SR z40I%ElIKHMcBmi3+csRf8%NFPvou{|mQjGuTEK;X?!qUZhb!dy^&XeMD9*9a-679j zvf}CE=$xeHsNafA@?Ol@m`e>9o{UiunF-_RD(ql&Z z4SYAQkZP7!H`-h!k;ZcU7(z^vpO;;CXTq+7au-vJ`6!2Pa0lob*!PUHcv)K7{C&VXOmQY~qZty3N?VAercLiQWAg zzr{ksUKKcdY;S(A-{s6ug5{yI7FYGgv2gF)iKz~){Qlx#UHVL3yGzjZcHC<^)a|7dSlVY{@7-a5!`7A4} zqBvr8g2T&+=sg41U+i8ERUYh8VjZw-740@ zymq(pAr@?O2l9B~ZG9xx&hEATK3dO|HiOJ)YuKXp1LAHv z#Io{R@EZ)KL=izoOq@PD1`C60zC6y(bqm@hRR-P*AKcL{Qd`|u=ZDq2xazF133*8u zsh!Tt{pL7|MC_S~;q&8CHUP?IHpxVZ?Mk>jGb%O9GQT2vgEAfYa;!+uu-JT#tjpM< zw0A<@kiM+Swqj|W=EsKfj04onTFsR{9H6yzJ=p#GzVa&e46@YycLs_kXf0E`Y7m+F zWsv&8fuYMR11u#8<7u{7h{4vg%XetAUb)c*}^k=N@FNv17QU?MVfB zOa5iv1^G%7hM0V_5kHJn4X|1@y{X|tHgA{BwCk6;xXes3 zbXcqotjvr>Z~w>!(+IHlTs0rOUZz9|b{$r`)-Z;%pjU3iNG)6*mFk~(6(k2SvzbiS zGmbFgDpgAmCN>EtT148`A;AhG@eiGiyGd>zN@t+97xVh~eQDW?=`LHmO#*fZJt33( z?mxkV^>gT{SCrn0;N@Tgl@edVAQIb3Px4vSg}Bb@R8NJ&F{je=_E;+@mLDsVOt-i} zxhKpkF2)B4dF@}YzVCsHXr29h^-ZLS42wh?)-C z&B39GT`F7%lfw$-oeX4F;dh1Z6`**v`tqbpU}&{!4B^NPfGdEI++6@+$ijc==FC86 z)h-$2zO!YewJ8lnCduB}%@_M7{;=B*A1DMl%2;fzS}0zkO=`s7HuO7if9Ep3v{kSjH+*V=Y+qZKJkah`lc z0rbQ-luZU{9!p^?+%k5n=`EYB~$*PJaB(GqweX0|Q-`|isQ z1Qtm!S;B-`J2?ztVQ7Kg13%%q z)B?a9cMD;*|GOXscSm6XDcrf80D2YqKH zVT%om<>LNfX2haFAc2^3!xE#)LZ&9>>hPN{kI zXu#>aQuh_%$Km0zt*tnv5QLtH!))h7a=)hxN}Jgbm`jwt;%4iCtZyGqg-u7ltcU2A zl_BD90;6Lw8wZBfvf|UX!rT(p^hASw_*j6ExSwyj@wiQ^~(g z0~ji-QhP45y|PoOjjaWZ1cj=H+Z*N#s*uK zQZk?m$6$pjdr!xx0+#;a@y97172yR*iRmA|2xHjL?(G4Sxg4B4kLOV#QsQ%o#ty)>yH96m$r zaN~0@(Wn>CBR)R{*a6J_Z8g>k*vU7 zJPLYRhRVt?WNGQ?Z)YkWj!)s+L=ApaJBjvuZ_0?;KtW&wnZ6|Y$@}cZqNNu4E_vV4 z2m8etCLfjAP9$-}ipqxbGCAtj6FcEmk_1Y~SLx{k-1pwwUATCWo&n)uH_t#~)-1Zj z!1sdk`viV?m%sqvT{hR2I)=d6#)sd@N4M&Cus{!>?y|ljn$N4`~68CFKJ;vs1- zN?qpI2k-nw=8A9#RadkXD#ldUyb|pqA|i@fKw2tj4WPGmc1FH_t%DRWNYB?P=?%{x zZajV9yffsd)I8o%YVzh9JR{4m&RQq;tfsGB2W&`#{ z-$2*-kA)GS+y1KD7vLy44i_TN(kR)_4JYJM(*sL7)Ulz)e_mr_{4QGOTr1 zTp9kX-s@|4M^@d9qo#q3I`A!1xA5L`Uw)yW9CH-{Q&68{^uYTPfySl+hygf!2VWFT@jPTFdF zv4Y#Y)zJAZzTpfE_n{)3zl{-D$T_JMyP}KxhlV7ZM6g@4H@lW@767-Viq$2urj)=n zrA;B^TrNguH{d-JgDDL!^iDio$TFtd=>((+6F$DO`QAD%y`bPH{*3y?T*Y&>)GWWR zKA5m)m82Ss$)ez%o?hZ@S=l%@w*ge`N$zb)Tx~ferTmW#+x}WTe$iPNhdUN>_V$I< zAtz$R!S=?zN2Sa9RsF2>dwZ{MC3eJG_!zc84-(_!)drMxi2j^=+C|tC-*Ng^g%@?m zP_93QAuYi*ML~X3tU%v4#a{pUO6b}%)SCR#AQ}cAizJO3-%@wa?^ynSW>XAKjy@Zh)2hkI_I^Fkye3-)#NYkpENp^5?jGl-VQoK2-qwH{Pnw?EqmM)7>nUg5GyW zJ0lJohii>KqRnrDaHT;iym>McXPgu#iaL}378>idq?~fnX*jjWbhyZBgxBV5^|^@( z8*MMZ)uG77La!L1uLny-igI#~wpK=}xILDJ2LTO0&&Q{!BKR3=P}K5fkOyTv(s`v~ zP@zDtf}WYV9cLSmRw&|9H|AT=@Rwp>Xr$TC!-NTYL4T^_zMIPXUt4Hq`n8Q?3iPYm zSE?qAEaEg_JzuBsMNCdBVg?=`)WXJ&MpR zgODb4pZVQm{Lmt(WyszMs{wUXaCwhSgg_{OhJ?PpCz%0RbQGvzkdu;vVPRtrHI0>Z zi`&3Mnwy*3z2=gy2jLKwE&;Bs<)yMNpO11DI1g^3NXxz=W8>AvQ~%oVlikMCV^uO% z9oj_Y-A1a(=H+-ya=(dXnS;?ZaUs9{CUe2pU%RfjtY+2JFjGh{Knl!>`Lv&glqj}WFE4M zr?VQ>edUuO#pP+Z0n!vM_xmQ5C&H9*?9ZVX< zvg&@}Qj1GSfNJOIR~6c9J2dP!^G~fHv!2wtoC^sB z`xxM+B-d5S6P$Su%gCqA{|IPF~$ zr$=A%J`E02@$vHZO_e4kQHcQfw5w!WmuFGfeR)3st#YodGHW$Fnw8T&-)Oodfj?DN&gZ)H9eP@yo z5@#!kHi2Xkc~)@6rVyZQFJB>rr4Or+v!y9dc#IFbLZ3V-J?>o)nwgz#KiFPcVN@Yj z#m)NIDMIaeb8g{Pxyy#D=6>175Hay^+smpcPod(&DQwVHyuhjDaev z8`=g=4-92x-TbDX%PyBg@?tc)gyyJvAVtGx2kKutATt!nz4ktb%zPj>j#d@le_uEN zyxU+2FKzaakMMv3OJ&b2)l_@ju#e~M#7M8Zbo(XXpjQaeA!|7P zU#os!3EA;ByuaOXJQ1CYn%eLoUq|H=$N==N8a10{*+)@QRZKoly*0VHmGOFgP@YIc zA$W5)i+5pRp;9O>OA>y_RWY=Ba(rmZh+ z?yj(y=^aM1FyUqCdM1u(_d4%Rr2^!$#8n?)p7>4U9p7$Ov75@wY zez$a5M=WbzwK>(!l9G~_2$$ruP4AN75UhnXGI@FV5dD~$zfWk?LZZ{Et@!ormqEc< z(c$aOux+6|OI>{Je@^pn8EC|vIqkTpsK0{fZ<}ph6ICwkJ(Df)@1`Jy$?Irq`|FVT z_I589geu1M&V85vv2&Y>P<7S)Gt=h3i~3W1Uri7J6&VRF{;c`^UBpRk5UU+6Iy-a! z{@0(8N&_<}$<{8S+WwY`|K%{&S%5VDZbCv7|LaT8(2Ys)avndiw6yFPDA2b6isN(g z41WwFM_N=S1w8YGD_4v#W#@ikjX#IP^K3+=l)Q3P0Mm!|=f;41=gr}RY+yvox<*}RK>VmZ3EUJZ+6@FP<4PGr|5gy5 z63lw-l?uF8nC25^R8pA?tt0l9M=IkQ%;#9h8YTDjzf3j^qCn0G9z?Usn8`2k+oms%#C;a-ntXE_&2A{%afYLgadVa};{JUM z`TvTcr3$y>|57|2D^NVltzHNu&j20)@zqc@kKseYTIrj&&Nx&9ZXcC@wj~K|PJ_@f z7KiZK49Gj8zfN6mZ-Sj_BlxBrf6n=b&l*$0Ya5Kzcv0v7TfOWv-qu#2>~5GF z91@a1JFZl=`ZLvi92OQ0LOWC_njUa^W@fqUu$8B~j`a)~Yw3{Z^XJmhfay3wS zZ+u7VCkLK&kQJweT@h2Sv>#&xPHAIr>J`0^kbJ|*fym`8MP3V0?AT@Ly4QPeZxwgHECXl!9oL5= zEUF#6Q_uc7BGmlA-plPy1c;j?8UYqAu6)Qjrk&1;1?zkFc!nxi#`y1!m01=knhzF^ zWy;&WwhQZUA@eV-YZL*k2Y5M*R3f%$__WSZ3DN>Cy;3Uw z<43jXy)U6GzS5BH6gI^;_869;y3)6Yx%t#bCx>f0R1S4to7;yO4uO{?!WcC4$PnF| zeC7O(uxcc;U^sX?(WWq>xLECH4nC#;uQl?Tk=(?7Lw;pP-BoL8fQ{kmi^peaP6C12 zM~;o$`Wd9PzmWdvmIJ%-zm+EI{a2d2``QSUf-LytgtS=jiQPT)w+6+K$CI@_yY~9Y z+1ZUEJ`%kLVp|_?aXWpv-7^_q6%BGIMO3y@&5c)|Vbu5T6dTfW1O=lVcJ<3|=R z{_SW4S^P-VTJ)nwHR@R^$=Bd3BXOp<@JHe7r}Z*b{XOPWQ&Y>2ilyBRn#rNi2MM0w z{InRo-~X3GQy@XHXhrr1xym18!l{_9r}~yczqs9B2v|7BqkivU#mB(ZE}z4dD&^~o z^|oY5g|)!V3W1uQZ>@ee#YQZ7ey}L@2*_EnxrK4|il~ljs@@<7okr}l&a9zANeTZt zL?7~?;b1W@WURSx@^d4o|N7)IUhR@)nA;7Ck^oE_Fi}xCFa^WCQd|T=81~b>7K!`^ z1G|7&buO4wLY1$&(|}sUlDV{m2N$tMu>r|y7T`ZNN18egYUlv(nYCwYREuxLX!w;j znSDU1h7P}1XoTO6GT^}tRgv+8SU z#hODP!?SRZj9wsYS5D+@!^y01UtxatkT42VQ^seSzBBCf828HZ1qHYK5n1R3AZrX= z9mGF@PTH)EzwH_Wxdih_l|vOB3%|qoC}|Ti892puaTU?8w`*54wGA1D=isZGZ_jW< zgM6sHplaOu*$4>hgl6N-mT{qk!%($5&$Ng63kk^K^L;r{VsjJzhY0rl{kc?&i3Yz7 zgunzy0=iQmD;4%*dRqB9rUkAkdbed{hS6RkaZ~Llw>q-kh`Pn|ScXGWJc5!PJX!oX!gTCn znsDhBbAE$O{wYr4cq$;F)zNU%IV#ESC6HEEap;#@UELk?NJS{Pc74!&HrGTd zr=miJFzKIkP*C_hpAr7>#Hhfie)ufpqs-z!!BXe!??sj0LxOP0CL5kbUd}XWS)+PT zd9ZRTNJ%frLU?6-Fa{?R1eg~I?+NKjcJWibcUBmww6k-3qdVKlapJo(WH}Nhh=@kM z?6ypDdYGIwG5|t%(sblZ7Z-2fYz~$EWkNM;9^Ks#m(}4uO^^z`9C8_^(&96`K(*!UU<_>rYhm6mlKvqOsds zVkUdIQI1q88}b<@PsRCC&a`qzmfE5WyFx-7F^PPMAgy?fs}?S{qtnwcKN{-eB5hfd z?p^E9;%b6##i@rm5=zcdnUI*Mn~N~z3svFa`lEW{Tg0g5gkD70CzRj}Hq(womUP(^ z*lesIxaSYb7tLB*Ry{Ozk@4=E%^F5;C)<{h@ z$|j`$rp!~ynPENIcGsd1_K)IA!1eL6sD|!5kd;b%9mrola6(z(Ae-EUK#*P!H1IVv z`k(Mnav!@rHeBoESj+PaA`vNd-WBVv9YOBUJwPp;w|kh2p0z-M9w^OC6S7D!_zQTFxSvF9_{1!(1yl%SpDIV0CJ z{FM<^8ez{691~DUI@v&gMCEgqdOZ3SjWWkVXV0B;XEQ_5iGN0@%#4#26mH&n4)xoy zqn=YwU%sla?t!?2%rza64Z!c@WbLEIw6wG@Wd=pb#|vnrdWpQyd$@)l=e}g@`Imd; z?I>npN}avL*;G*j>8U?CSaNsOrRLHMb$@*df|J(+fO9CS1KVz6;`BsYtI&XnP9{un znZNLH#mNbk&O)jK}NgzsV*%@5)4o1 zdnthH6)RDN={;&4WgLduB5wvm_%FLX+1bs6vDyhQUU}pa8#kkSh(Lx3WIe0-GGZm+ zRnu9oTKmrKt}l)3hIdOi^#uwF-Fqg|eiin^YnQNLxn%J|E|7#oc$^jyBG)akIIhwN z+VMS5s0=XHjg18bh?8vqZZS@uyP=(=mAr zTo8QjAHhzqWf)6hL1zh8w+J?q_l6EsV4I*NT37t3bZ~SkiDI zOYLh0pmm}EA~z(((#o9o`nu1b>;Jv+jYg2Nnt?-_ry8J1?L{qQzn{MU<$D^DfrH@( zdh&BE_Wv4`cpV>PJK|0W+4O&$-rw5?HlldHU6#)Me_}+zU16B`4Kj5w|QgSCRmw z2JngJ0H+=%TG903-2vDA$FBjR=AgD{7wspj`YXJqVn$`c1^4~c9LDRa{iyU9W`8~W z?G>>nM*sL0-})n=zpmK-P}n&R$+XpVnfyOdnjalV#sKB#Io~_?-&+3Gb70eFpkM0o zM|}TMFLAarSXE7xPV|316|4hP;JeEue=&DI;x|opaNoE6vC!|~+ye}3Y;3jv#%CZ1 zj(#1C{ky@bF=6QMti^T56-9Oi;bz=f8SX7IybNm4@}m9z`>ud>8o+fP&FMKa{%UG; zBTcHtL!G>B*6+}~8-`ixy=(6^)2%TCkD7W=k)iP8lWI{I=6(I?;w`^Yu5}-nYHVR~ zg6rz_#OG0LByk1NEYB7v#o^HJzU9b>md>nk)VZTkEXA_O=z1GKsIP(4rmioSG``vb zYf<#X>U*ukcawlUIb%LIt7z}v&_cb^B{b!tmOT{xwjk+u> zdU`aqY<`ZE)TnlYsP)Q^9?@ZG zw8x5j9!^G<5J(%i_?WJmdUvKrHZ`WRQ)#HwB5!(jR(`Ha7GR=F;7+921xiY0aDDq~ zfgYcLR09{c!#G9{I()cNIToY=D{It;lNu(o=MN?yylnq9g9awf;#(p)mnj)nr|Jjz zFy*%tp;Pedw+p^cBKsOTBDb3%#8U-V_qff$a)6Hhjc5;R9`~c$W3~2=g zU(1p5MRnCr&&()#dd9zR=C3T<77}lGe8?;=pq$n<$4)_tGE`<+lZ|%Gjip?-mt(hF zB_bH+D&%vMsLRM3FL-WLNth3XCr8>P()RHTNhmALHJXugJns;$jEg12;L+J#C?zdz z$I7ryNV6!mn&j5iljU2_TQVAt(zQ5vvTxqzoZxT}A>Z8|$+?+%5IVy$v%sUmqbwfU z@Pd72yz40uJ>UG~69IS@PX4$M4(U=zp~e46ErpL0zNcVpixAnDmrqs2Cy{%)guH@}T&zFqei8^^(n?xR*dqa@>Y^fajOab=8^ghb5 zFUXD)bnWgZoSyjCh&mlGskiXndOlYeHtq>26))mlwZDjrDz!P0BA{4^GteH7TllU0*mXVALYK1g!V@r&B_~NiQAD5 z7=(vAkWYzy&%z>1Hk&g&I>>sni)ElqGxrfMs7GoQHl4&LshA6(g}T5mQ!l>$+Bma8WK(MNdZ-180* zZ2Q>4UBisTqMnN@XUEMK?1!qlwPa3L%Xt$zDiGZrk4S3!eX;$raVRJbrPmmGdQKAd z>xYsiUVrGAHj!#DpP5w{dD!Fpcz+}8f+vRV?Anu)d|8~nu?%M&M%V*vKi%k1mKnRbDc$5tQr^+lQK6fVVcY%^jpUL|sTu$B z5MA}`np&Y(K;b?wLJ{L9TL zB++lEwU}#o6ZF9AoE=C4;_9FR1vQNP>Gn=`>!iS=4Yi}izdR?P%%fAPZ-XS^@zmDlz-J2*9XdL?^6ig+nHtC2&F)5fiLWcfMrrx z-qwjH99U>+aoqHAF^Cde=&ws?bcy!%=Sb-vIq~h|?jiHDnlNMHdfF+8zCGQk#ilSe zKtmpGTys<0xIrPaz=+N`agIaDSpVYl2LNlDH0U8xTzu(AY0pV!wBxv%Hh z`oj3a3|wUG&8R5UT4p4ZHsW~{U1Q?10ix7Z0hZ9kNim+oxYziOblEL-gX$562$6Xx z;?BC`#xNHDyV1LKB_MWg&byfmVlWuDY= zqiV1CF89pN(JKjm;ESD74&2RVEa~k&N-}`l*E})Wg6}agwnjq5@vssmE)r^7;e8X# z<#N|TXSc97OH*-yjE2K6O0UhUt>8HMmD1eqz65*ZE9H;e42&{0^t>fOm>VvrBw7D@&3mMJf0VegDVYTgFw{Z2!X&DhNo4beEKL zNS7cDq9Wbh4bn=tfOJZWAl8Plkg%}YxGZymy}L=g)sN}{?(^;VoMqL zc!0?Gl7hBAOKXZ<-h^4({Kk%!yMT3(Fe%1_EUp)CvesU1b+0rT<^rfDhe3q2mKo;h z4-Myz$?))4%+2S1$Y*kxnL9#)gd*sNk5wKJSh6mI6P@6rTVOI z=(XFan7MX-3G-loyw#By|Hc=tpjT^XIj3uV)ILv!+Kakwq#1`tX51YWIJ^Xx?=QTllrA?3ijF@&U<&!5ss^y zt56Z`(NFvdOqyH?LDlNht)g60x2Y?+jNkU>T~fG3n{Nv`VIw(F3&Rlk9}o_7dV{HBF@!A zLJOGit1OwW8f#mOhxWy16+>lyW#KmupULOw)_ywA$J!e*{iN*F}GUu-4Q}^WLdo0Oof;p z=%Z-7&CM9&3qC8o7TBi zjiey8l`69R-g<)=Lz^mGarGJ;kI8kl6fyoeC`M|vqK+5ORY+GdFcXqW+Yp**>R2JF z03A)rwOx5X&;&ibdyw@j0e=x8x<1+Uvcm8*R1^bviTz`|17;97)3Pe}d1_{mJdN(W z{1ONIu3WM4oM!5hQ7Yn}b0V;WvT%3aEg<)*xgm`4($%Mu)P1Gv7a4hfIG&GqV<{owKfqCY7_JII%EHmKmBikqE!iAo7fCk zt^C{Z*i$aE3(1*~kg(kB8`TpxXy!yO%j;6nu5d!t)sssggERX6>E+YN*n|XAFMvP3 zGHSjI1Grl6*7u@W(-0dNp!&&}PviXnhJ1fqG{9aNv7W0+-(11wSCdTB%fue#-=|Nt zdpqMg?-i4nxY7UVy(vcGcfjO&bG)G+CE|W)L@40$S6^sq#`h3papX5OiP`E5WvLI5x#bN3jo9;7Zr;wgCp8u&6uPl zTIcQY_uC~6viz>XpUzC+z$q*C>oS7~aE@k*d0(b`Ec63_VJa)aP$)!6?&<>Dp^xPq zX5j&_+F6~yX`Z+Cj&8iz;0!8~mVmOv%221G_~5v`Tx^L_aliX1YGbt9$v zap>gU4S+KJb(~d1L^tsMRgIQ?r|8j>%4tgH>$Mc})mSBA*MX=AYi3|p&{Q%}f7NpB zT;tAaU)dy5_pnyMO+$K{%YI31jnlXqXtA__99QvDr^lL;4qG%c`L+d3w#{09(i&2a z^GKz+D%=ppcx$Y1ZJ=kFXTb?Lob&*qRZ&vb#^RjMjn}t@R8=_Hix~Rp6Ga-C>A_Mb z4l%Li+`{*opesNhFb3ER9CIN~-5$veGXi`Lz;)exA;%S+e*~}GZ_YN<02V+W(0QA@ z^Qa$@p--c^gzYEf$|clS|B{-ZNcw?~^vw{vCbPcVKH?rZ9U1BI2E+Ai=$}8V`F@s^f9#Jk9se z;O1&CY3J?&<1!g#WtIscBVY^{ma4D5M@?J2ym|fHXuT0E@Gn@y6gQJ)8Oa^t%d3k) z`w6M3?+#}izf9H(-TWjV8LL+|NL6>Fd=e)~dLr@ucn6!WW z@r-|a!nV|z|EPadVHm0#6JP!9&hAW&J|N$H(#@3O*n)E*Q=XgxVrcy!A0?%jqR`0; z;P+Os3OHfW*wj*A%Z>Z`Ywk%5@J8S8*aqsb^G0%|u)Ay**T6BQ-Rd{g9ss;p1#Dwp z-UgBDhzB{TNN}Yi#G|s&uv2!K&pV7hLZpG)>j##FY>iw<2}YgcmZg3J?L^wahmBB*nl> zK8Zu&SYjVcDzm+822f+Ncx&IFB?#WY?L(i=(N;$+xu1P8+2EQ{w{MbiFAG`-6^@0m~H{v|3_*C)+d*YaW7H4A`yw|D1@00S9f zwAHv}wfAP+whID*$VZoz+E`E1P4kWb6GQfs4D&6=R+E*^&Q4h)qa4%+pDX9z!uEZ# z&ON5OtH^;_Awbfmo`#uxzfb6pc5YBr=GD9!@6(sey-f=oNJv~~*h}VZ*PjukPM{~U z8>Vybo2$XKJb5P_ca9n~bn9JjE`>7kFM}_Ip6#=ykK0G8{=8o5pD?|O5#u~JFd$0a zQ+Anz)xT*0#E7HS_tNR?uqgSXX1Ahqy$sU|JAfk6H@NPX!8)+1_o81FCpYXzf+}Ny zZ>w#~K$%bWU5xsfz1395!Ajkw&9H|o$tma!W=Bb<>r~PN+*_ze=d9C}_XrqLcx~A; z{9+ZOAR|;7MK(xkP;kwpX z9Q^#fo`mNMl$Vb4yraMmL_ITp{l`mQHKgZ66pqOs>d9qNu+4_$kSsJRW!6E#PvK&> zi6=N8p%y?~iM-Mh{WZ4(6r$l=7D8T|)Z_hm-RtuqpI%_FpkGccRqs-Sz>2ZryfG{W z=Z#f zvSJSiIt1%B^HQwzlrl~RA|DE^0jDyPIj9rQX7^3`dX`^POz3D!stJL`H{N$sGcP&M zxS*$C^90>pTpX~o+|y}ujIR--0&~dwfzx!A^%c_O z-*3&7t?8sLOw}lETmuo#uHdX<-_6y0-KqM`=yJ>X8XC{Dd>{NOna|#CtUAXS2iI3g zJnzujG*R!p;hBk*? zQlcO@D?PI>R;0>r1Dxu^+Dr49m2VPVu#dCz{E>4LR%qs=Nyz z(5LM%d(CrLj_=diokm~)b-dOhzGreHyGj4_$5{t6n6#pO%iRx^k#waS30N0%Ya#UM z6~*WvIoRE47v4??yUnnTc&zVwi{Q=LF9QU{vQzN457kD z%||y})ZrQ36}dT&I^I^BoQO8bGFSZ$-q7$?1L+QWsn`7G=|!ON@y53`&0v~|!`mjM z!9WqRY2b*&uMKBd5Z`hv|FQG7<$5$P2bWI1R7`lFdDH<2C8m8dcsAk0^EB6QPw|t8 zb@VIl?5Zlhdpk9sI{wA&+gi~c@5}tneK>!a7wh2Qfal#Hp_%x0!R5$EPS5;&@`mNW zJ^PE#qZ1chR)BuNFY}AOYKLogapRP-nmlHk5QIT&p_`vmS@pxhG|jo*OQP7;WF8RX z!1=ez%dyC-&m7v{giiXV$*WMEUF3=j(yV_~)Sv?UE`Mi+=zRW0r+i=)EW-Jx@lRMU zPK6*QP_u_hKvH!Isl0<&g_=GZ1SkrnJ*|7zmvsQ@iUGED{3-Co@!^s3&*m(#(wNXY z2PauTMd2|yZ#W?Ot-pE^LSCB0naq$+9uqbXpJiZ7PHP7j_gME%Mnqfg;9s5y3>lqY z>2ZcS*WCe=CMB7*{M~BB5M2)jFM7Ej@<8-ARz9F!2J&8a_kgSD1Q-9X$NckEXJe{L z9L0Hx6@+%+7As^(2u(#`=JOw{r>ohMnxs=o-e2!E_gs;^7~!A#`O0S^8P@U&_z?jeiDBtv_}OH}jQZH12$2M>5{=XThY^A%jG)Ia0{A2+p0(bU^OL?b zkBjD9Hn+F8@6?c9NR^-Qa@7mNCF3Z_e#669M~iL^+b=jdF(*Y6ETtH5+uFqFBp!E` zWWiLf=-ektoJO14l&Uv30Xac`zv<157tl2iEZa=Xarx#S?KddhEqvrD;XSJ0ns~jD zUahbs{L`+{n&07QU;^(vezppUbMbn&!8_6ABAvloX(I2DM&%|d_;p4#3P#3}Jv&Gs z%NoRt>2mS)e2Td#)R-apX-eE!Z^hKX`tXQ|@ zo2Rgrt&gj1?V`(NLlYoA9-Ws~YdOEve;zVdBxs%vlC ztPIvFv+|Jm=;)RTGey2TFe>f#9K{?QoD&A5{e z4=s@Ao6MYaY|)e3i=L+VYSp+ zavmX$zcZ7%M8@ox;S%2<($Jzmaz3S-@o;wV$14%HO+DOX+AQ)5Ck>=`M2SwAR$ClR zi~ODEYZJ4r>Rp`hoa+%{a?)q=VAi@70|Dr}>#L2CT(;59SU;0GPhbjjnz9{&n?Ff0 zkE;}3PF?^gR)&`jBj^p`;qA7eJ{Oz#)9-(RL#2spep+9RbqdYR&voMxlk%yR)il?x zx8uG*L$ScV^_jg<;n^%B9c+eAdtdBjFd~Er0w9XoXfb^J4;e|-N$aSJ=y=2|DQ|erW9)4#FTaI1DV>fcJ zxzE}Mxtu#}H09|u)sulVYU>CbrxMWPae(BLSILJLKL26hp@n)iAyu#Ggk@cc|?p-BX)U+-6($vpc z*X}7B0j|EeE3)I8owU1+55E5h!hEVy=9`&`V$d1N!an}mAR?oQhR!0KyQ@HjJ$};T zX@t<}oPpd<8B9m4?4yCi)3SF|-bW;YDRq5w9= zZgPHxw=glDooeF{V04e~_>2edJaMcR_cjkuCh3@@Ze9akjih}h1x0iSsFfIgF8Et! zcgm(q8use>77^d7mglFxVH5^$vOUnM$=|PB@ z{q(aU8Bs)>4S8gjsZGqqXo<+4x8(bTDNV!TXeR8s4-4@TY_mg-cy4|k8A*&(N2WV8 z7Owg1SXG>$PFvT!OkJTgZXJMvtV$K7QIX_R#+6m!nO^Fg_wu*yo8_nY+I)hCUvb%4 z4Mq>z+_HczbAB!}nw(7}phib!T(`jPYua9=xV_VPwh)R;GyE92ddebe#gz>tF7=hQU6e7za?%=;p&}%s#ptE-~zxKX^kRii>HGO@QA#m^J-Ig4rLltnQtWFV^ zN)zeln$i7Od9Ek0??z$5#2d|42&*akY}~m}pJgT?*Bjw$EWca!=_O(R1XNZ7%v(M| z?8r`GEY-m}`e3-c9xMV2_9SM$Rr7C<-H&09LnQ>ThpR#ATRWJ8T`|C;`LOozm_R8~ zhMM3)_9s8x8$Q5dUWTDPuB8aI18hm%<4?r=PG&qF1B>cd`w<4W38?zm`{}}lT>$&K z(;=zjtzntO{UIytO?bNZio=L|0z}_nOEn(Sq zu$Y<_-Ap3t>7f<*UUbg7Hx{TOL}6kgpOQC8~>W>&Cmg7fdLzb4-XQ#ofi~v{6{vyJj0FT2u&G(F!+qb_oet)IOqKMdb%C*dFj}f!*tQnoO z`E<%MJGk3*uJ?28Qt0jXk=7lhMPGDwCTJ)SP@U)ydoFXHSg$F#<$iYK>5=^oaiAUk zfoi8T(Q|#+mpQq^wd!mDI6V@!U&NyX#HPh!|NTG zJ8O$rg=~dnRGEp^j_3wS?KgWPY!gJP-L3$gFKRBdW2kQ$2vzZxN7&_gMa(6IF(7_~ z55r*EbHOlIP}}U*ZwvNIM&`eVAhg9Vt27nag~HZv4We*xMIm?m_!UmHFLEdd0KGSE2vnUN3lv>#zWihj#9M2A}69$b|iB?Kc(9xfo|h& z^7+=ForKurau{(0FQHN%Zn|y%h<+wL_0tIR+%TnL5c<-fpR#uGNkVuCI}z@WM41Go zGWOKO5LzOE<}dyPrBlX%Gtoe_~C=L1> z5uq-A0j}bRc!U=kk4;UCW`X~kY^d_;nhMiqyl%RBOLJ&N?OH(n+IR+ULB|mFX*viL zV4lP85B?bc{ipI3GNbTu)djY?1o-YL6u#rCsW%-L|9<)3?-ZpPj>-C>txES8J{rHj z3ja#KUTo!pA`%a|`2YQZf4^PS&sSUlM`L)( zwN(HA{P7K)kdO3=sRUh-q{LlO9R-QN#L^r%At_}Ha|K*P_`qymYrw31N@W+0&#_u2fHP148!IOKb9`u^@ z_ly5E6a5BdM6*g9PaBH=K5q&*5brs^9H)FG{r7Ko#8EETPQ9`z`un{66b@$H2j}4L z@BbKi_$1y)MSifwZ`v|#@%M{kq*ksFpZ)rt`j;Vgt2;Q02bgAfRYPa-{`vs~)G-{t zWW23(x1|t%@mY1#G(5658(A6#w%UKcJ{n~T@C({mw@d!Err-|?39G;&YY#YGAb;cJS1HVC@&>G{*Y{7N2nfkxK- zeG*AO0N6YRs7ukeipZ?eihd5cQ4KTj5Hp`51Fa6x?ITbKWPdXV{EfBPTlSkTAKNK_ zJwEj|d(+d~?xlas^JW9Hh0w~N3V;U17Lp##BRC`A9@V~WRK-E@n1@rxx;=G9=JulRGyRi=u5zvm3} zPCn>*J`fCEf52pCt&Rg5YrT`Xd(nUxB90jcLZkX!459}@TIv~G=FeX{eS4acs>Dq? z42rxKpCX-q|5m^Iq6=^r4Hu?QE*v3Xuj!P6t8i2Z_%?H54VXWh)Qlm~QusZ@C1BGN z6`e7N!C#Vg*&Z+MbWisCV;n>gRZ(6POV8e8`iwRH+AzXyGdH0N)4uGXuIIsqv6}As zrnMS5VU1ko2@0D%GG`kcPbf|(d;(AHe+w*FV3tw)UIBLw2(Uqiz+>{o@uq5i!!=NM z-4X5qop&}Xx1NJLmOw;V3U#tZnf(0w8p#~R0gvVJ$+IXjAw=@OOuJvxn>0!Edso5s z*J10FzueHj0y+pDxCagY$IFbOU<*PVW&s!T+fDo{ICX+eA~fVo`~P?uk0Mi94PoQq zUl!Z1z-Rz=uujRJkN;eYzh1tF1>)wdzr}`MTLRD~1k@W)d4rVW|Bc)K39GkJDjSq1 z04@ST1^J82LilC8NWL{8e1il|2!A}6ykFaSi}zJK=+=O@owtWp^DI*WS2SmNYTd{8 zFF8W%7;?Q*Q=xSY*kGv92{~xO!B!w#Sz~R!2JYwu8iL?v?ddsr=3k}&8#g?*6(C}6 z0WDo-O$4xj+pj6Q^k|cZyMyn#q<~ZC(-*h> z@^px;Uv3_j^j9;^dj2s{7*Qy`HUcmz%jf1=AG*-?QiY!B+XZr01Tp@ld#f)(7JJ#C z(G9dnCT-G_`-O z7@RWG!0`kYHH)C-2on=aNC708QleMUR{W1A`QHRC6A8N(_})N(4KE4Eh&0W<1B?X% zrYDK_X+;KJb=e_Mumvth3OoiLfLHoJhHOu6Fh!SQg;NbE@%-jtEy{yn-w5NKxb&*u z%tKQG!pWw~S<3%?R-%aCC0et-d>_Rhmjt<%3gUXIqv9k$qql;cxK;s_d=Gy1e6aF- zlujv~1RgK#u1+TKCHYU`wjhhZO9vJ7IFgWs??L~&?D+}dhXeJXX)O>?oKY9VT)PNO zJLE4Ib#JyJT(@HoDH=UqS#* zN(P#aEZemr+?8D1iL+6PR&;X83p=ryp~xet!ndTCyOW+4vLQoKt%kr{@OPwrjj zr@2hE*Z(J1e!+{-xR(J=j8HJ7{@_l8n5)K~BkZ49RD&LCl&`)3X%%fzk6bUg&rkNT znwAwYmdV7e*z$$zA|RpOEb6<5^)<+PQIKLqE_Yw0s7!IyX#gn72uwhfV*_f;gxE&y zQBQE#*9VLIo4enza5%x%w`}Q@@kIbg2kZNPdM_YC?36;< zapah>TWp%o*YsDuzW?SJNsQnvi8T*TBx*CrCxKR&zn^b8Tpv`QFi9>GT7J^*Nvur2 z*)CSCc8;H^JnGTBxxPXZpB<57C0$<5y~^;uFmL>^57z%rF&}U}5CEW%zk%(MzIv@6 zkQh$90kCmo?=yGNMCRoe_Z~RD$4^lBEm3}x~%=|O-Dbd z3{}nrMTX$gcU`;}Id8Kn>wI{0r=dC0?q9*ci2%{RqjlRGWKIXJF|;r=Q23R74aOyT zc5pdLMEEl(sObY9g{=!225Bvb{av$a+RiU~=3RBDnt@RLz}Q%hJP(!daMCa;08~Po zbg~S9Fgg-OS~!SudnRKSnE4!B(_4QTI|Q#{%tU<)95evmx&1<6_4>rMg&yA*?&O-8XdOB^Y&v~D2wR$If-gIHhgY%wC z$_JH@a5<5eFF(@7!=q2;9n{7TsLDO@!04)yC;{xcjGpTQeC-qP6s)GWyq8fWM-KIs zhIwwg!Z}#bnqQO?MiLr+UhVsk(`QWDK`^qPoeue2bCSu<2>RE9>tuqPe>n#(<~7!3 zt;X`s#Q<+p=0;E-I3LJT$`JM=UcR|(xhbl+0zLwfo2tysm9cN^v)eTHjPSLcRQQhi zIhT=Sr@C;;?yKN_LHs9z4`ZWxp06h8*UY-05nGjtq35>=A+=NmTL}iw0kYA+=`&!= z-S?5#TNBl}alz236-+{caUfvhpM~_vO4g5a=rE>(1;~DFEAf#W_7a7#kr_@Lg21at z*FbbHO__!BQMvibP5yAHnn8RPo_x5K0XhcfdIjTWkbbToq+8@AnJ`)vRpSj>U--K~ zsm=rNb%N~^y2A-^Ygs@0zcfr^Y|F|uo^u*iSOkDEI%t$*t=EAy=d|1%6-DV4Ts+{2 z$huW^i27*k!%%M=d<)5=YGqTisXP?S zJ&> z(134@;cLE^h-l1Mmq%ZzqtJ_rt2M$g22LbJDnue&7&>cnotH?&ojPji2=fN}pd!}? zQ2|*^jbp&B>uC8L*pE1NJ5swR+V47ei~NK_4zwhKS1)oh*h`pn${oq{a~n6d3=xq^ z?CCx&Ypn^V9}>33rlQt%)jo7*04E{N4pSnxn{C~j&=bmVC4;C61lI2d(W@7-T~+?i zYJQlcbZ&E5uixO2@QI*)gEU=%(;unyAjR6EUsx>C1ZnrtjOdMHr1IU7XxArKp_6EG zQu}tE>H43Pidh=QH3Ev^$9g{tDqpP5=s3_Yt5UHF>jP-%@~t+4nBIHXts*X*{EGp# z&fQl#UawM1Xy@y)n!xt8)PYws;~+=LM1~xk)*VI18_hs=-?lsUKnndm#6Z)tS z2rQ~GZk%liz${Mqy0m;Sf=Mv((eis~vXD7MtMx9b&TU8-8=-Ad$g1=Y;00$tBVU(m zb2`fY?;2B;{H-#CgSYC7fXQadjMxg#P(UxXs7E7w`6iEQTb8DA7nQbYd*BD~{f_ z(7|RBh)iYhprtk!)r@v`p(_92cbTZNM&3Or4%{^}ShMqFz7!BK-(~C)fr> z%FW*ZC8Oi56jYy&7M2V$3%y3$wNCc81Xn1kQvP=L?H^MP@^mIYrx&lH5T=y;Heva> zOzOesn}aBy4yw9*Q0B!z$i=M7$RlSjAxx*nVsHiL`*vm5LBfmpo7+&)T7z097&KVD zr&nLxJvbq6{`$1$EB3d<8_X4@*W`oN?Mo|PO!xXw z_*)9%v!@4O>7R=PJ?fG3yhvO}F0tN%I3mf{D)#NFMFz1988c|zLbv>JTu`(+SFs05 zn=f%{k4NOtYzwg)vD(_F(c$&AKynVce3s98D4MUMReK>E1Vlf!Do0eP3kG-+r`x zn*FdV)E0e7>gJyl5I<;Zy+i$M@w`idp4_U3HX$5W=^%5UkDV+OyFR8HLq`S$xv^iC zOdCZ~FqK}(M-s`q;XoELvhV(LMAqjl&D7`?>-0#DT4OW>`bv)V8mj`Uo}xSNXP0p?GN=n2O)ig-(4G!D7%u zViNRu{(0eIO1Y7geGf4Ff+a#?69^#Eg~U`(Su}`x(TI_y{fj(X*cOq=TmiIX+YV9= zQty)@UA$V(b0S1s#H~=K5`vT{3jeP`Z3)8d)Z8NN)O%J7N~&9N<%FmB@p5TKurp~8YqI68MdLM-GIruw|ILz5&Mo5#8IR|U>2t0`56O@SM?(jdt z$tIIoSW~CzoLKWgN2IbZA4Pj3$Xn+EJzi-hRubuz;#zsL=A%%SdkLCc^>}yGaES-) zYncYm5r|V?#cxTrEWhk7APujFwote;mKT?K7e`SxT6}-7Wl^>Mxdxd=*%=wD;y(XI z=2^DX>RFb)nQ6WL0GeLz+~G=1RrNDzubA2{eks8xHhSmmD?#ZgJ_f@FLb~`PYx7cv zhOey}PX;yLI1ca#ZiY53)?&9l!ZqZRskdJkU?2~ib$B;OEIg+?&a3{kzg6U)C`m-m z2F?>*K@Nd$uqPt!E`xN7r@7G}m~@V1Mw8}!>YCsG*;jkq5M>r0{^lq;>e;*D&Sw~q<*64m>{P(O{M{5K2!v`_e-9ml7ApI4O>NvjS8Ov=Xh$>DW;MXCo#{59za8_+YWh z2`xNW=Nqt}LRS1GS;lqF?T$FvN{3gnKErnc?Nm+abR?|g0)4rT0PJ|LGnH)8vp;DM9mB3ViFRb=a$5{yOhs zSW!|oe4PNz%ZW-@pBh?L)3#ixF;ofEjRRmIm zx$(m;MpUhzdRX{~QB_9gX>7+6 zH>x}OGM{C)!P&=$a*p_;t+$B5^Xs|NMD8omdEU<6VpW{Xu%Qpfq}cB=?a3r=2myy*?#iX*m{*mM6L-eNq2yuxGwv~(QsPow{C!4&?vr)QH z20K1>u`r=U7>oOWjmGDKh?P%jV&&J;(-)4?&{QiZsv@gs27C5*>}TwXBN61hxwV1# z^L)AF97NGJQqK*8``Vzl!?Q4ot=(;#<6L!es7sk`sn6|Kq~iH-8E$cJhHS<#qlRt@ z$ocm^KuM{wuHBNvO^>z79%QK3hoos%fXSc+g>3fNDThG0M>v@K0F-ARAZ} z&}3@K+xD9=x%0ZnG}TAb;q>zN7~1x!Gmg`iW0a#0&A!mKY|4kX=HR$>u|0_Q$oMIw zWI?RMBh#q&h-6M?N5WHdMwCYHD}z>WU685LTm=etHc7T3y4X`@y{}AEYM+p(%y2ZZ zunuy>Un~lT^J%at!5o4M#xQIdbY7RQ+_vV>Xu>`x?UL;wn97=ld$UXV6iQQ5* z?fJ8ZgR7ojiF!L~@$(dBmT`R^6Mj@9l1i)opg~pZXl>_}PdU}dr^LR6wa}~ooYA)W zy(tc@Dv?ey=SmzKw;hBSb4Vw!1Q+%tj4c~;u4Ln7L1MnGTQu8mEok))7Z98&$mPB)M#!Lagn z*=+=xee2hQWegZ3a_+pjSKn)m&KMCNT}37eSWT9?mC&@|M#&3i2alqt(V6Lu+#jTu zWDu0Yepf3@AloBEmCX`^k8i!!*oGT>)xptGg!`r8;&ZMumF`6hHf69`s@zyeqTdV} zCmP3ea7FjI>?ME~Rtlx+;y#hj#X$88ZX?SHe_k&pp*uf5cTVT!8$#uU)D5@~ItPfR zhdU42b{uiV@$AaUbwEj7CMnC;p7?J2ChYYW^m}wBpZ?%lmC;+i%RLLlQ%fec^5^$fu2Wy@4kE7rr2v6zzVdYD8>FP_ zs#P2Wbp6N_VQ-o!U`Zx!UuZppY`@&AKnqa;bm+zn?ym!=Z#6I2bN7PdD)IdycKbhf zDKOYOJsXN(`z4l6y;zY3=Dkh!qMwnhAN5%jWo1qX{nw1s1(^U8h*ePpVY;cNb=AwpmPO$^ zi;P|CJr8M?C7oBPK8Q)i46Gr9Ij8pZOy5%y8$|X0?1Zs^kmN5IsJfKp474wug0;M> zt9;pF&%feLuI(Fc!koyu-i2OQRw^0=J(4bnU$O5x@4sTX8Vql%47fBgpmHd&6N&Jh zh_+`IOx!@Qf1H+rj!7G3gu&i+R89GgD1py)aDY5lkUh)dS?kIBi}J!NS>erk!={JDa;L8ryB(MYQ4_TU z`-Hlj;LA`W<(A0ErgT%Cd(HR_r+014v+v5Cn%Wp&jaz*@4eQt@BxpV zfFd1KXV;p3)RwIj)7TcCWA_ttK5F{V#Gu%vxpiF4XKk1ixvD_Mn=jMYm#lA_u zC!Jv>G|-jl9xS0fhO=F3h2s`6<4t1U>g^HRN*cs3?B&@s^HkxVYJ18Aeqh!=;=1%w&J!uDfDRy`wj$WciDh zVOZmW0`+6Q!0mt}f9wM{sfF8IA8jnlSzgjhK3!trd=a-De=QGjQPmuYS-)Kw_k8`i ztm=HsDaG)Ir8f55#IXdm1DC<&argRdqtoPU` z^uvpLw$(}e&4pB?-Rp)zIX^=aa&3(4N9o6<%V|aqOqks3%UG?~rS4Nk*SL3frCftk zK<%Icu5F9`jnYSpdcw8WbCZjB(FW@WE-6{83@qk2nsYBW*n_A@U;GOU+SovLOI*)N zJbSfyomD#!j8M!nf|u}Ze7=siP{}RR3c2(-jCIG*!|QTVw?xHT!daBL_zNc1gN=6v z_SrM#*zCz3R&~Z>7W{+z7Z(BELt##x*8WU$F2w`YS^O$@OQtVCeO-0^VvzQf*C^HW z3=E+|aUp7Bi2?L2p(J$Gt>=fAjy-=M-RB_8qo9Q@YZr|&LdT(R~ZAAXRnQjB3^ zVwDNr95xH}4koA+dJjxwJ>S0XRs6uc?}IOLvO*@UO-JGIIMGG&q2qr+L5nm|+Q28{ z{1qA{K2IQ*g7g-3LB$@9sBwFT5xQv}+u-vK3f23ma~1stwbN2KJ*=v+(Fk z0UWs>JO&)L@gh0gG^MQj!_V{>tAu=>3J7aUdtKab>yZGMz zvwuNt4a6-R)8$S_zw<-ppLVUQ7J+NuebCBI`8Dt(HLL?(u9nPOqe>ze zUz$!eY5~#(k!31=@KDEXvHH{7b3p6(+pkan47mnW_3J z0}-9Q{uy+UeHZ9S3GaiF8x)SW?9Dbv+tz{#AnP&kfW6Pt+ZOwnbp%eI{MDv&%p8CW zQL80oT||q3-V!CDPkKl5Znp0K`?&uNql3U0BHDoF9Pyp_+b+m*&;h()8g2}1Ue^PV z?(X(#Gs+bLpZh!Q%Gc^luzYjH-Q`Y2ZECJV-kn2l#5_rMgfgF ztisuA0QqE`Avw_r(5=#)vZbRUsb*OLl9PxpP65#a&0BFsqvH+XfDQlo*_x5XQa+ki=GO;a zvHkQR+iXz6j-S1ACG9r*+f)P-)C>(#dzxxAex(kerT&2A zB+>|A2>Y*_t$s*oKd? zXy+Q0AJx-v{Xb@XW);ed57MM_R`Q5qo^^np%~g$UzXvWpbQ@^V%#O(e(kEJ<8C|&dX69VAWE13KipCA@cK&J{RYqrA^%GNt@#rvIJ*Ad z$@QNDvKUjW_X!3qm z?;XZc^mowqX5XIUp1~AQ(LbVPU_KZFY3xKE&K5X8#PUlRj3VR=c))UZ|6M!(eQ1Y? zkQw=p0YuHv>AE>WTb&D<=Pm+SFa{=Q<_SmsAfR6gDbJKywzzcl6MV@Wi`aypK2h z8~p@65S6$69*dZ~vgzuN>!m@nwvMG&ip1qreuZ=J=m-oiCLB3@un4Cdy~b$9Bo`Kh zI}kVvE+*D}AaEQ7jrW?qdx4exi$Z1^48(6rJx;++pfQIU0U)ZU_0Y=FxnzT#{4p{# z&$=*(>1OE9D*?~JY>(6OC5D%R9<Jjj6Bg`|B72$l%qwH$h&V5be@opYnM0?@W< zZiabYQYdD|mVl1?B)|&Dv92G!*7Fk=?#MB$WlDGIXpl3{@9n?pe6v`jSoH5>0-=Br!lscg4a%<@;!P!^910e9exf3~OcO(Hj)q+06=m7z)G?Ze< zZsLK!mv7bmh_}HfZ$J1yiHHs$!C>s3i}{^<^G`%krT{D`(M2Gy_{+5S1$J{F zZaVC+sQ>@-$7j(jcWXJ!M{?M_f1W|XGp;c#d`Jr_lQE*8gA$w!BM#fcJFijg$3b9&F`-Qu1$U;J>$- zN&$F!DQ)BT?|=NpJWEU#Z5X=XcgCB6rwN%?s3e{f+Pk_1w7*}EXg-DA8IdJdQQAG{ zf%Y{qa9`3CrH~47=|LO9b6#*(kq1m#@1F?-`z&>D+qJnk_4uHf(cyHRmJhymgR>MI5 zFVy3-5K#rUG463nIN=7){@SKtsw!4|`_TIwWJ=jV6M&!OGf>8|o=2T8z8++W0v z8OR*;LCm=?GPD!`Z1D>tC+1X@gzz-sKBfV{)}Ff`0JLygY$zg`05r#AF#um2EFK7B z(Ptbuf5%t3+uq&&OFUNfNu8z~^XH;J*AXXn0csRKKeE!}js#E)WDezUb3WM|r3YRi z9B_JH*$|vgy-|D$l3v9s49w5cWbQQm!k0V0afKHf8<-fcpN(t3H=@~I{8Gb4Y{cqK<%ux28bm(rXW;wMO^a{@wgqFJiBZPXH6LB z^oo!rUP?^sf_xzHZuiJdWfN%Iu$W@oj0)rg@;lpcyoi*LFHa(m(IL5HshAk-%+B(L zUTRyOitCTpaVHQm;0mB|^Ko@k3@D_4e4Ve6Z-_ncK?_K^4t{3s0OuYyj!=Os>OWVO z=u7MZ!mP+e-(c=w#$Yui6Hc?wAh}o3Yezy=xsw&l6)e>`jm3`Tb++IYVD>Z}y{SW! z303TTPK-d3OB|)maWBnvE<}6)D0j%8)<%h3^MwY;JP=!GlM8>N=Qd2a!jA3;xSJ|t z;+2M^V&RP;LxB{D{`~$_{siIm9665h>LwveXm9&KMnd{DxiRx0F8&qeJXpMfq5g3} zt-u$SRhr!tutC|$w`6CrJ+M~JBGrhT#YiOk#rt!FDsSHj)+cz2_Yup0^jwwfBkA-y z7`2Vn_$ieaReV->?<3woWu&fAl0xXcLUZ>&Q?F1aQ&k%jq6_ZEye9*dUH^KnnRrK3 z`}_KFKlw1tFs&Egl?J$hLbFv0C`}l8EQ;%Lb(D^=yWQmS=U?Q}z9li{aoT(Sc!z*W zKCMt`?h&pZ?y_e9(mJNsGjhj4s>9qP7N5`mRLlQoxL?GJ4xl)@#Zu+F=wthpAL(9rjP5sQCWEx8jO9-kX zTQ&?GTo!0Y2~3RX5JF}^rj!&P`Cup$-i{W^qe|DV{Dl1gYl>|uH1VBsNU8rbe}bpN z9lg|DWT5TX%_DEBwoY z#ZXgVhsG$YG0Qp#ekAO|`4-|W6Mt6vWl}SyTGjP};)8_tLAV?u{`qiJCADqvnHFNbp**t61FEvk|L8f_CWO*jf3gjW@nuzv{j&D8=}mGLzCUg5YV56=}iV@ zU{!}1y>q7rR+LBwmn2t5Mi)9JKQd&+{;9CY<&U8y{lfo`ytfRCvR%VQUl9eQ22i>i zX;8XBIzv-)^krEQO_fqPe;xsxYJ7=*VAMyHywKzLhtP!JHbtA>u6j8DeAH1fVw54z+`{*cKfb) z@i;E}f$~Q_gY-%cEfBTX&S!gybl8?BT>A;QZg}O9d|X&nG_BG&F?ipY6J8&Y`Dxt^ zyHMzTS4hkTH+@ZKqp}>0d!Xz`;--!pIFKXqoRfU66QVSj#IvUdoex;#2)wyCEsJ%Z z(f5lkeloFYD(o7;z&)4%hD+N{HV1LsvuA6^$IH3m=pMwDcsIFE)9Pr$8M8RHpU@0W z0vcNiKSJY&yH)qz$JCg$NlAZ^3YL0qBG1}kiU}<)1mH~#PpLU#x&T z6;-}SJC#s2%wLgEWdc{0evXInkr#z7ZSXxhR#O1Qfm*8s-a|n`JLzs|_4nzUYVV92 zaXxOnmy2K2_LpGXeLJ)Kv^$q3@WY<*$XrJaz1SKsShfz{`!wq2O?nAE-ZSnIXJ50&opUmN7gy5UFbM;2H;`!!2i(?yeAa}w`@3squo zZc3rmyo=wiL~T`fB4h7kl+j0%?)itF+c^rHp*?c@i{}yri{x3;ZIepQY6fBGFZbyt zyI9kAK2rQDeUOKPqR+Ft=wtgZVi=>8UR=2%W{JUdasKt&?=yj)UxFsnjxxN0J!w6% zd?l%P)M&@Sq*T7;2PD`OakB$leWQjxq7+XZQ;5pDE`* zt|Kvpi_&Mqj~&B676uPvPNB1M;Oe(uz_)xqVmw+3NkKaRVQ$C3f4=a`2u_H~Hx%7D z9k-kvq*a74eeD`g?}odtec*br^ab7pay8ekqXpKkrt`C1AToo1u9E14ghlhr$H|lV zvz?%*a--!jTIrxb+xy#l6#ih+(bnWs0WRfH;%~SKtC?=*HT&lX z#V4j;r(U;a9*)r!R7|{JII1soL#3=)&EVRdv}-LW?;}jqaT#ARd$=g4@ALif{3j*O zkiwd^3=e6L8?~x?K$qbowprh~U5Xt<>FTNNRaiLz6P-1envw>Zh&?GjU!u7N&Jjf2 zB8Sn^Emp;i_%(r?^}8J{E?VnM>Y+N);Y!PZB(kk!<8ZQFpUk$(ZR~8vCu&2bFZa>R zPt?zUrue%u$jH3$=&S=C#(l}(aNk}(oZ=O^+T?X!pY-X!Hs5+Q8#X!Pc2;Qr*}x;P zRZW1qpss_|dGO@J32Gpau{(Y_#bor+%zMNVpv;F5Uu2%?tz5Xb`D*&V-MXw$qR8U- z;4sdEQrKQoxo4?kCGsac7%(UV)K!^SA-5qDjeWmm?j4!B@v{S5AMu6YlH*vVz-_=L z-gvs#V}JNDH_*rMs91h+&MPorW2c69Ki%t4RjSim@og2xIXfcnjFw#OdwJ?mN@2*LjzC&Wnx;%10Dh;S&QL z5n+?=X02rPrrbLQK;sME3^G8qD;dIU@$CarQ~Tq9`gM{U;t02Z-}rMQwgDa-)h*Jz_;no)}e-n;FuER=o>GVBjfz9Z`M z@AAZIT&Tn6k1&~WNAz)-g6JP6j?E5IwN$Obb`5t7`nn?z^sGy{Yz|+|B+s`aalkif zjAkvA)`u!}tG`4XDuZGLyhMDlmp6#BETtpUYyIQrl3HiJvA59|li6}X+&U+Q-n$Qy zLB*iuTxXID{|3Y$r0GC|kRb9Urs;*u<-s@;mDgz}e)=rbmV?CV(7phWsDQ3G#yf*w4_7n2g_L{O`F1=J?KSZMSWc{Z zM0(flV0((mCPlR^(E&t}&QzJpL49fIuZNU{ZMK8!@|QD4-!Ho7=!cm(V4j)TLmR)hSuiDoUDs3s5@pTA%=;0JRLL1;!o4ThzLZq#^XSq3X#!Ao zK`m<7ENj7Q8h76iqSc>hZk?e59X_53AtuDQsa+5bTL8MT-{Y3cRS8%g6gT7}w?Cf0 zF^|6cY{+>e^6aXlHFExvO>9!vP8FkWpabytGNidKC(LJ^ZDU>u%pXgM6|hx&c{jgQ zK7b?2JAbYIN9Gk<+kN35dD*RaKH}82YCc~!f(g{Hl+5CuEp5Sg`_V^DZ8Es#C(l>3 z53dDL5I)g%{$3+$INES1PCdeck$}Z6lP5hUU^?ry`1QLdsD+%=!;_3!NpBlQepz@d zdI*;eXqAP*J;$Jh_f14?0bIlWRDmf#*S3zE;OaD}$=rn!N4tB z4HpOx3K@4MfPQ_B-qW097U^8v7GbBg4+x!mHQt>7+QPxyonOPLCb0L#{%YE_-7_%L z+2wfLvFCdi!mfUY(BKQ|v&|7S%5dYy>8RpfBxlWNrB?>-y8$0vu4X$@{Tp~!PD0q9 z4$gjjwE>DuX^xxRYgT%y{L}lT1(g7&)qm)CW}SWC`|)ZGD`z7!TnF6Otyus7e>ml~ z`q6lJ3oxuWXrC327%+wM5nUkCgxm^hx<8d>BHm4g4TuonboUDezF^AU_8Irsv0u=T z>rnBTw!13nvh$8}QLD7xgvr7wyf;hd6UprIoY+ZlC;^OnM zIGqnRj{b{}_AP4`{sd)K@S;h(u(iQVY`$qWEMfcZQfsSQJ@G+GesjlTx7es|m zB7N+5$+-h9L-zNlO%Z%|3y6xTtLAJvEhaac#mB{YzAjK8mnovt^zFuE+SZn*lnwHD02QI zkZOMq0|vE~L8o@jC~^PwYI zwk}5#wEQo4=JRP%Sr8(MYnnohi%5ib?^{c0=BIWt%5hzM0qV@yR z^TW!U@`qk456UkRbqQsJh?mD{*S|(}L2mu1rXOs^Xoh5~xgKBaU>a|Ux=!Ks3oS39 zXrg`}Mr-4r@)*@uI`p}l4|Q8nbGtvBv|&?WG+%Nx^F-^_XH1rmm%%E~`0o}z)0Vl> zGIi&*5~rzlHDYPpp3wQPiHH0o>0aF|poZG0xJv2eG2D!1wlL8iu=i%rVqazbEdJVT z56Qaw5k00*+QLLYM<0W;qdTa1L_c^3KdJQLI;=z2 zuA0J?E%;@coboGQ2aYXxJ$q|;N~d;N&c2~gPHj&jSAWvDwwOxo;oiw0+Ww7I2cDwW z*ggmOU@@9jFw8y+rWc6nQtsIYH`W3Ek7W#y`3wI$wGwjDi)q8gr@rlq=#mKdfBwP?4M zU8Y-W2v&3gG%6?Sn*CF!XE#z4oEotCLv3K2fn==&Q6l&O@;G`X>CUa9Y9b{44GW?6N{4e1>Vcxi zLs)MMc=KQ2Q;$wQU$k#cca^Qun)XzZd{lqAp5LN1&Ly;2psfCms)V3lfYT*)2*xN?p6Y7-&tL6RWGS&j^ITyPTLYYF-Bh%Tq z!c;Qaw5ksb(&zYb&X;x@mcGZ5?OyeNz$0U8PG-sd0%Sm#ivkQK_q&LAIrlJ-3&AVTJPjK^?;8u`GqJAf_ zL3wTlylD%K!tK$MoqFTb^GZ#D5)9T8#A#x4<2M}A8slH72zo?MnugYGznt0qC$6Dp|2wh!az>%DT8vp2};{NMZaEU>^7GCV$$lFmzqYSmqC=Ii@l}3P+hDK z%J1-6*+U8wt25cp!b-Z;$~*gG-C{0`+wWl3YZ+P8hA0lPA050>}iT-G7pcf(rWp{{UgV0yE-g(2NX$KZAY~&(z#p- zk1S;lUxmp*I^gmP8%AxTWQo|8DwJkgdM`DmW(LKvjHdV(mC_m|bv7HsKtSU1HBtX) zA|EnZto!5=OUF|JE2_m5OQi#H*DfeF4s+kI9ZQs$-cUN%PRz@FE5pVa1jTkkhrH~FR6)kh@Z`%8GtmCy+xme|R z89$ViX1H;APdOfO^eu?;uBq3k8l?-mFlzzK(a2+0v2kX=)Zi)9fVR7t=vrJ|ro()| zE|)P+RYj9s&B`08J2<_8wEbL*;k&}ScTzTK#v{hRY8SA0B}Uq8I}U7;tCrHFd=pG> zYKv@}@!6S%clU6%JIiF=AJye7LaZj`7gG{5PLZ>U6&LrlnPcsI6~A0l3&W8iVZh*$N>iO59z(i6c62HL8=benTutJaEJKc6DTENl0V3bHyL z$~5c4PXWk#!0w0=fBjC1mVqu-}fm>$lck3~iR9Paswd9mGL{p@!^mk_}3 z;t3yg7eTnY3tORi%0-at5Wh*rk?>T^FbQKXZF@wZUyvG-<{3-lNAJNArr@$KsR@)f zs*cLLq+;>%A-l0g@5U;V3<<@tN=-(dwT(V5%W_pfRqVW9!B)-r5wT39f;V{Su~DeO zMce;GXclr#dN)ZYY}eTHa4q*8di5xWPpE+|riJ9OV3Jl(o3V^e!Tr;-h$#qS$b0V= zYrAik_L~Wd4|^=GWPUhTXt8)vu^1v5?hCsWEHK2%j}~{9T>@_Y^y>lsW(7+FRugFp zk9l?_cirS>89nTJlcASMlRj%TFARA|)XE%-8sZa|J!`MjJXfzQLk(-6^O4Av-CpGN zvKWuIqVY-lv*z$t40Hh;#5f?+j=ntTy>Wf;U~e)#Y=hy+-PL(BOzkzm*#x4p^HK9++`DhGVo11g$D9V3 zd6s$G!@||}VoePVUYQ*ZbcBz4#nC+Dqc`T!T^a1*AiF-ot01>mw;;0Mbk=tj;?S$w zw}3L@YVe_KuxzTa%>$iNVqK1Et~7<}u+F7_gLPRSCUTdI(CaeA!kqh?ZFuiopnd16 zU-`f-UArdfv0YA|5Z!_4Eo^d8dTfmW@6r0>)sl0_h*)`F;*D&dCN61OX$jXajDnvxtooH< z?&6cx2aIH+f?`)61emWjFLIR&BuLFE(m&*FzO+8tE<_MKX4AW*Lwu1^ZV3+QxQaFp?l7Do*YaXP{P{y5GC7i&rF+c#`MC;n6kA0iJn=)%i~8q%{nQ> z8BU(Wiu|-;bjO}6AwkbO+O7w4fN)V+fSaJLyVUWNXBpw6Q}CIdUJTGm253Wr{jid( zdy}6VM_HTenzJ*^&~ig|)lF}zZw?{`Fj>vE>>@6=M~e;9AihpJ{zGcT)h~E0q`$6p znlA5;TkFi&SYE6qXGdSu3r2NU;6?SXXkWtm!;V?c9TQ3}IO>N}&6+Zcn!rldYgy-3?TjBJK+@19Ny`kU-6m`Ava0|Ls{s5U`n~49MIKG+1qJCDX zrDtIAr2P?BX&i^(4s5@Yt2aSgUOSv1QDq^T-@pER3EPs`NKD15a5l!R`;Kntu4P{Pgwd4bd)({DA)a&6uq_e6^Fj^wENNaS&YL6Zt%?Wco7dOZHk%0dp)4{Z? zL@q=^RJF4=p){A<{zaYdc-T-Wy5n%_fabXR^R_hhs)@U4FGqAzv@fdT*}}U~VIx26 z{2yWM;&XHCnkt-g^%IHF0dg&zaT~?VJ9p29ZjBmPJ)Ozk&tV%eFxWJ{Sh0Q>p7^v{ zd05pT30+-J&P~?Pbk*G0Kge41G^(y|KW=ok^ML~g6G*B+HzIN{4GP-@GSxJT8xncc zI{6dKg!)1M%YUH<`7y<`#}=$DxjuZpHEQw zP1>`5VYvJj%MO%Tk}l9)V^yw^uTgLt@7YdawZD(Po0%l~d-h=rGLhNaF?YQ!m((;*@f&-!L%9iT${Yh5 zc-(FstT-w1g$rW~FTvzDmiPq-oOH9BMrW6N2sp@NLsGjYU$SLnpivU1wA^>g;QKI; z$K(~Wxr|3=OvNixcR#$#0NPy3{_t3%f83(&M40;Tt`< zA4d(YKeibx$|>FX_uu+ z(g_#G!(94C9Coj9F1JW*g~;Z1RqLUpmQl#tN=?Gm{KBog*SNPlLv3f?ZZMcHa;Y4Kgbn@z+uJ(+Oe0rmnYDiTEZ!s#(QZnT|7NZKXvn!n`#w5sp z{}Rf^a}BLUQR$4#!6Un``ir?!10&AphvKkBjH2p!*#MgQG#{0<^2TxacKoafuJ~>5 zi=Kq*<)0|sryM>CvOl%GS`|lQ6p(!KnikzocQ!8X z9KYxL082I_;T+4^r|P^EBBQ+gEb7{64Guz^a+)}|na*KZB{6@znr2Z$8S9LE3s_Ei zVb?!8?S0?Mr86OE<$MY8pN)-Yf@2pcd_Z;0;a&WNQD=Hfz<5dZg3k5ozCavGw?Vjo zrNpiSbXGsHFZ9hq=bg?HR#n5PkoK2S zmO>vhnY}0*R~QYRJmD2fbuKHd@c^?$i1r~!qEFV!;vQKrAE92VM(7|T26zhk< zrcP!kY!`t)9$WWTxOD^&1>W0qt4(-D%tM$Qk4!^%G*L@N^- zkI&}i+Qhn;n74a?a=|!Ov+~W@aH!WZ@#=YL$`Rdyb{Wj#&gwP^k)AsIk(Hv4>)Hf^ z8A;tTqxrKh2L@+U>dy^@ES?`7)}IS*#<^uNTD{2pMk&L#rl2>2jLPdoy;YX(N-JY$bNd$EbT|~*c9(s82D124&#PxiaPmLd0k#d+ z>a4A4Zz0Y%-DO!K(@g&@N4-L&{>nf`sNuqu$ZgW$f3EzB7TGqaj)8*O%VhghX>-n6 zejNuuQa$u82v}f$MiDI4@_HL)s|(M>pS^Ld!Y>$xt1M2?8Q>hKwJWl8JODkK1)= z*RY-sHpqlm5N%2W+h0PaI}HNtHUiVP;DSyKM4E4#z7F< z%V#qSt=wtuOuz~8PC95r!QGtC!*;JjbbgzgSUp+PT2(!WJ$ZiAgxg8!@_b+Kd|H<5=E9)YJr`@qx7psp z+owbi>J(k$m;bzJfG&-?){XRMcaUSM;P)LN9UPrGsDf3|NLV)p27akh`Iyc$YG@JX z!sUN@4to0IGMAX5r~~J4#!U&{fBStVkoDKOuUZ4hB>W1J{n)uKoLDXSo&E;A;Dg=_ zrKphSKIr>Qobtrv7+b1&SvfrN;uCADeu%^It{hc>Wf^h2lc@vxS-)8Q=(GFIvA^?k z-uPU2_&XN>DESsj0IIse-@dUSfA32^lv^*;3p=kyXKGhdnBd&Vw#R z_LQsZpsKjtc(xsT_O!0Fv`qI+Q|JGfVm*{Qc%>QI490L@?t#`EaG;*CIwg#BIk^GQ3skWq%!rL|HEA~kI8DJz9M6%<}0}(q8 ztadZ`ZJ@11Hll0SAaw#DMSAHb0Dv}80-8(PFOZB$fDxH#eN)YFomF_t_4n}ikNx(a zec~(g*5m2N#O00RCdx|yZVJi*MSCRt3fccl?y*^FgrtK^wJuY5Ztc@Zfo#zRI4Cb- z0sCjifFbMY*n_k>fM=n$^+2-00YW$896+R40x)WU;Jxmrfv!xW`mHKVK!@iFl4e#d z0BLp`Np|(MP`BD1uwDkyMGDYb1BJ*^vG=n^K@V<?_c3Q8|N+8~LUZ=c@8B8C8( zFdu)w3;tf;!3{Lu1|Vr2i_`#?Ob<{;YUD{%!;s)Tpx8iq)CWl1zIoUJ$dv<9FoFDu zzVmncF{7aN3+NIBXo%L3NVCXrTd3;jjtn^mjk=HGKZ8aXjc9C=%tz z*04Va_y8010WaE5>O9CW>11YPGbWDoTq_x;U9df%emO%@2DJ+^z9zo+TpbE_;^J5B z#wPG)yXxH;0JwL4nL2x(6Fm(EY)Je>7)XQGG-Q=wqSgHx4oK}w?)xcB;|O5MI*jsa zg$Vum{L4BHSEEeQjSAYIuuXAq-bv*$k_uO=1~hIr7v}nq^pP6TVBw?crVDoW?rHC{ zElVdo{39F<4w4hP84w;@k@UNdnx#&ziKX)WvXC6#G+k30L zO(|Nf|8bb2>D0NifG+1u7{NU*1?f}J6JYVPYu*mFE1M?aS7Q(Qp}cPQK?X`X4s)ye z0K*%1)zllSA`%?250fIbA*x5GG=>j7r0 zQwXnf8vsDDk;I__>v`FO+cnmCn?e{D|7+GW(O-6nv|O&%jiCSZ*#P>MKlan^bZ>Gf zv6gjf5H7Bj>9rX|ly-mjpNv;|bv;pLSa6+bh<{-FaN}7f#|0l44-;u1*Z;DE2 zfBp3I6kuU3w!J2Qjp|gt4=n7b9M*z=qse|+SPLYFaEixl)vs;SBW&PYd|JE3`s?lX z_5btGr&+%p|AQAg2Lu?`Q2tA}ervj3YiU;X##8H*b1Im9gLKj~EU@`N^cWch44*#^7&y|qPZ}a~pfv&PnLW0*H%Tntj&T)TC zR@)_f?_dA-irrOvJ8d$|4Tzshv>H!Fz#KkTL(x0KakEofNCYslzkj1r=Iu1#zVb8q z1v2O7aK0LV<(UYpSpNI>{ut`pYhZI=e|GpcEDX7NAblAIR^KD0iu@nH`1c3gLlT}} z6WIPmBmK|i_WH}`HUc6qx-273v;eo->eLbiCYu7_{xcy$eePtTMCh6FJvQu3W zIAdh)>H_|l9|@oJx_l}sa<9+HJ=<{lw9=nW#xK~pd|bNO%R5kkbgo7i3qd6b^2?8} zH6C+H;cx&O_l*63_!UeaSc8$blCPzn2tSrXb(H%p>Ko8Ke!4YLX<}aCuqdlr`62;m zakH)*J~9-v=udmZ`L3G@g_ip7pXeM^Qa{y~(S+;;c`4C9nOv2m{)_@teJUddT z8$jLd(MmNZ)ZoFAq&Q0sN+q;Rdd2fVE`U~qtmD<4=ve>ZEn z&=ztC(7fZI53>-QqLBsG5`ItfGucW6iO@WtHspXY1ls!rT;hO=qr zD0`dq*~6B5k|uL*CGZyXtVyL0GC0=dAO3qbpH%$#5;YXvkasSO~Gpye=pP> zEvi|#Wi?e(O7J;HIc32Gi5=Sn7&O;ONF#tcF?oO{;{wHmyCc^`b}Inr z%G?4j{F8Sw7?Xf0*9I^X@VV`oR@(xx?JB_NtCPf`PtLf)Z!=*E7O5OKu%8R1A0ZH> z+Wl|t_oxcY`)jAtZh(#`k9@t_vS~nvt@`KPV=Y0aAvcCk5IuYp#qwin-aruh9Sbk(j5AK9r(ZAiglg zbF72z8tc}(6wVt569-Ye{3^*&kWexfNg+Jpi$?hawq52#ipRe)l+70vG zj@syLpaUu>Np7Ua`1ig2 zpRFD(f?~-zjOTX*Sfz)647~+Fl@+H3?xs0(kW>M>gbBbVzX^C1s)2Att=Kxy6(6%N zQ(nc0YuDtQXn8jUh!)bSH3YC{xI`mmv|L?QwTfrE8*!>kW$YZNj0P^DQ&^xRvuu)>-7Ba6^Zi(wNHbD8fDu~kk3x-8L54n07H{X!mJhWlpn zTU;S2Es~G1&1CS#R>&}95R7|e5R@Q2rCu~0FJO9rGr0xmgvI~$;ZUbHvoPPpM7ov&P8%X={PD9e%WC^Q|W zYKgs#ml{42`j3Mmafwg;jwg4Zz;aO|>CVGb-=1C`f)4l#M21bua?Fn^aObqEJO%f} zBHjNQ4aAqrm%<@w{{9=He{a9v|K^J;Nq>HqOb6w;8(~h%P?|s+M(R3?e!y7Efk?zCiurH0a9c5=!eq zn~y@IOs5vTCzMJF`O6x;zvl~dK_)nAm+I}C#Jv}K~IHxKbg(2QRL%^4@d@ZG-Zf-JT=b_wm5p5lHdxEs2ueK zssc3i(EBEwz)Y_n6M@8Ml_6u`Xk4zc}7yYwBa+`gkPVNo>2Igl`NxGw|* z7-FB6Bku(O5HEc6@gd2cez|#s?m#z4Oo_BswN$<8WaPIo%2wF{f~&T7-qG@V0|QVm6zcD7W7k@k_=I~PkhUDyIb_x*b+Q_)YCSoB3hSPJ9;;5-dk^*8 zSczD$U2bEeKnH0C9k8R#GC#M>xsUIB*V>ENP+(rEe2KJ(ClOoM|V7n380FJ^EzG2jd7fhs05xuEtTq%hhj5DDk(he7%Tuao||u&F62ym*7n8? z#~5k0qis;8PJ5QSD@}CY8?uvGGA{5Y(rzf=i9QS zpX&H3J_vGJa)G0y{MaBbl%pYr6*CcLx72eIY~de@Z=hH2vh{^bCKA+F>}n9zFTUSh zjp-L$BA)Vxk3^r&l~y@#JYlM%VSA8t-S+(?0I(O@%{Io++Gmu2^jORC_a+~o#Sar8 zDMhXTz#@-40Exm>DNsnhSuIwM;C9{CTYa!<*xLYa!HnFYaGjbzOc(cQw8|a6qY+*u zt!pO6iQOFTNW|G#zKR>U79ixWT=l@?68~YT%huDQCwxp&6e2GN;*u<$xP|?G6TD}= zmSM<6>q^L>_k7m-tWbC5k}Gi+Yu+$#&+q=k(`s8APvSXFAvQuhyTi@#LjWk(1z4Kt zA}C^4suGBIyMPo#jYR^GZW{q>DeijJ*RTuHLpvFTfjAT|08T!$$=^E%@T{=orM}0_VT&&ZB{hZT6wTdJb@8pF@hu9JB5dN5M2__UqYp@m=9W&R6r*ka2#cWdLCpkALp~joeErwO54BVIYMrSuH0f8U%( z*F&79GoW%S@%sri_UgcqN{~Q@U@HU*$rn@|QFV(7Raj&MvJb%^xG!Tqp<5tn2p#I) zZGAV1^ac>! zwa0{xnH}(m@lV0uA}BpY5O8uwKw9y%)VO`B;Rg^nSjr&yv2qg#s;KLwp?`XupSboL zVJ%D2tm`VPS(B{hPY2F7o))e=#~u`Hf4Qus-Ne~g=52^maZ&G5Uh8B&iDuUjlT~n@ zhYXYgYhI!Isr#Ps%@{-TL48`F86GbE-s;=CfO(zv#scXn6Drtp84qkwJ_;T%N*T!P zFW-3zc*}(6aU~WH0z^-UZX=3dt5n zJ9R-O<}W1f$hGRHW={Dbei6vTISJAZ8$pjXeEg-L)X@zVd)plVK6aqmi^xXI)mw<0_6lR?QhH2G+sj53&Y2t=Wu*<7w zslg67yZ8*KsfZS|X53Z;wk&y^OZ#m+5;}jB9Ti(tAgQw0FT8=5)rGk@g`}0R%}C{& zxWRAsO*UgG0*#gCwgH@;Vl~jY!g-wf1a*6;&fiH$pz(x+hPX+h#oUyB)$9>Pr5k=pd5qTqC0iCvJ$I?5S*N13 zLKog#?RoHpX~vXzMjPG6znwM`P^d&XZ;pMtn4?{yrjDgrIiYT&?tg}!axQS@4xtUt z3wj$cw{~)JTAS|Y10^+vx^maumW6V@wuQV1t@+X!1gZ`iSCC}^;38e^2Cak{~xP`a+0E8`R~dje@l0Cc;`JQ1sBf=u62H>attG7Is z@EZ=Q0FFIX1an7&@KGS_Q6DSfs6ot!3U4XtBHp9nY^Q0~`FksG3;1CtL(*RUixO+} z*HKtO^d2G7_id4RWr5>Ug=Y37b}LkPJm@3_`@!_P*pq z{h`zif>LDaB!o0r*gw#nrswEjC2CQ$z%%2r270fZmnw0iXK9GWpPF)>;Q=XZ=AF+y z79wTH95b0;8qx9(f`~Flg1IQ*oZ=>l8e;|qX|Zu~N<9>{@>dyn;|1A&rkb(;E%0kx zu-i8_kzmx-u*)^b35@6&3|4kmZr^+Vx*rJqM(2CXe(L$yZsrBGOwflSWP)|pT*@7ff~KJCA*J}a}7qm((1){A%Jk?8)>jD>t@U1 z(4kL=LWTlM*L=GlyX=oXn0;A&wR))^sa|l5L$n3j+iUzTd*O}?1l#=aX5m{Q#4}1_ zoFWMj+2iJ|soL_%X^;K+c|txPa@1<*$_?(DX6R(Jp+|S=R6v%A_Tufy%f@r)A+KEjX_@&1|d*x;<1W}^l4O@k1IoR*s&IRc&Wv$u~UdpfOCf^MN;&W7CJW<#v%#{zQcH#lZD12Mj?&%de{m z?5aw%y_{;X!Ii*_j>uLk0;B1)d9b-_y95>6y{@E9OR4C+q#PN>&E{S)zw19X-;e_- zgQ&q1Ti|cA3uekW*!pEwm)rS7hPb4(F~%R1&>4oiQC)`RQq33d2e<&Iu5JtJFz*`_ z-1?b#27Z&CJ^>;Ze%S^241vK5q|^2Xk_&Bn~R8skz5fw%-qJ~#%?IL`R<#Lx5asmXmwjYSyByIK-cE)TL_ZMj6v+X!O zuCCj^AJj>owG16R`D%06IuzxF{=uAVE5NK5GuT%0>d#GE% zXM<7Y&Fym5m|lauQyXu^#(B5IavoZhn$DaZOFQ(i#!12^j&V&4=Pt%i=g7xUhoCCn z$TrP%u?1{PCl*^&S_Zaqls@kYF@<`l_O~R6x?SBf5suCkN}LVDK)bA&Rs3V$IP;_wnpyI?0+1nquIw5G`Dar1#u9w@x0D6QWRA^h<=(z{nx{Ng3i zO0azgdLC4c#{c-T_lF^8K9#Sb)A>)`0liC`bhzZ#wuAIb z_?#c}>J72OT42~Cq932eAZVGS8_#?(L6%f3>Hc-hHvDx^d!DP33p4kQAC;r>8pco^ zCiBIYe(x_iX2n_VSd)Hv*;$(tbzg>8d`uQ9Y{!cyaZ$TZ)B9esjehf93__BU__Z%} z;xy1jLuO<73q)|GJni44;+OL8aj9gHHS69;I=6QxxNroeV~IyPFwd7E8_L3S;YN zs*rCR#9Q~Rr-%ZF;B23H(K#JSpne{GFg^@tHx=y@5MsP%zt%?OpHvd0NtT^7 zv$t!hDz;(GAEtfut$wG*4Yg3IsBy%dvQ`rdv34<>L^GiqyyZo-&4x+UG#tala+rK(6C5F;YOr&LQS&rcWL}qDei*kX< zkLadH%frQlR)*8FOd>%RivlNQ!L{oCs47tSEQW7mWa9d>8$M~f>n}v*t*C9c4;K6r z2@YZ9XKZ}RSpWB@b&idmP}BwDcce4~#5PgYWyC1lepyt$iHGg42-4^{hfj6_Cu!C* zXJvIeCvWcvo48GS$na2zgAZezc}8Xxuj+3R>C)q8Udl z7hiPJV)9`5G&|TLPrhaidFcx9r5iaVyYUHc=%@)xP%mzoLv;&G+Mjmj)xn%2Dmm>$ zSu&5-F?Vq34nr#0(>P+>`l)6-=Uvv1vc0hw@h^)`ZT@0?KyyyCH8~-Md)*MPcZMBbxy6h^yem}26|HQ$Up-qq6Anwl zrB!6xy)lrhZTtl08CyzO%0+HK%Bj|tlSYg}kqHeXCb^))C7T_1y6=rHtrKyNOw`!w zC1nT)lcU%%WjlVGc2sgQS`svVOXVDxl_;&_P@G-5Z_G*b4GfbBJ0m8 zfqDfx_1BZj@1PlXHS2LjUS8E-V>#r{(fp`O8cF)P98Q~vX8h)fLOaq+{Nv+Gt0W<%A0vA3sRsF7Qa3#R4CrIsUzC`BnwUy-`8=inGhTxs?0Lgu8|2KF1Yi;oiUg=A#XbzY zou}|{JxlqoH}%hfO=CPNe0sn0akP4p$;$~1U`?knDnRaOI{)q7ABmnnCjLFK?+r}C zr5c%AUVYp`Tg<;IF8wSqb!!Uu%*`as&}WN*39yzkAE zD(i76eYMA`|J=(DL%@tb5+b`B24+qXh>NF+dQ>4RUhAX9nS*A1HuE5-JHI}Wr$HCu zTpN(``l7Qy&#bsN*(@%Rv-(!M5}<8*!hQVcu0ikJ1U5Y76i(ZOltlC#PrsA0X1OQ# z&`q_JXB!<-Y@YIU@fGTuP8Pnm!4%Ui^tYLAH1XEuYBJF;*&Nx@o}nyAx}%RWZezi^ zI#99JgjHdNFn<~{XjTY?vuLdESgtt=C%*nT`Q&bLBF4y#p#=t|JNjP&N>;{g_yZum zpXh&P4`|h?rKUmcTR%%FKG+LUZ8OQYs0m8TlZ{^g4|`|f7WKOIeFelpTBW2xK|n&3 z?luWQLb@e}jzLPgOGzmS38g!RPU)_pyN2$3@7d>h&b!aqd;bIP^6->xxb~+%m9q5` z1suyj+hYQ_bdsqhlRN_&%i^`cOa$oOtQKig!K4>6*qjukmzY3^=DpddiCxX88H=em zHQy4{^y_&tJ_c1Brx0~$szkbg$EN=pB0A*l@%qn;TYtRx^;vwccShRjEZ={w6*#>B z?}q_DC?y9KPHCW6_xD3IXCBa}VjMV)0*OjFV6ct=WZ|5O zp>v1VA?O)w!1p2Q#tD)t;H60L9NX z-6pNu#(_u>If7CsIsoY{0_c2a1^0Y$$mSbuwPAC&1OPd3stVXfG_``-+5i~sxh@31 zF%`|GY3fJmpxXS4U4!KAyJS%CLm+$0P+cWtuSn=Aa9kJz1$o_}X9;o-BaHqdM1QZx zYLCyWm-D#uudpcp7y?en?MhG;=Zgs5k+<9!%`XQHls=RurLN=cN_V`m*+`D{K8s3T z38=|;0}%baY9Mya1!?Oa@)Ka;{%rH>Fj`9fSaZO=DZBnuDd~@ms17AIoaSs4kVmy@C(1%xxGE5%I$vT zvhpJ+W(WABFA85RiRB!8U_{H7)d9`Utw+T8FrbS{2jEhE6)A=~CE~)BoFSDlraVo8)ZYUwWD< zO6s9#RS`vuX>1W);?Lmi(sp;q*#m&=l;N0sVKjzGu@z_{T+cy&`tm28fZ;4(o{D6P z!J&{W#@*2;J(gk<0B=2?By*QlqGHPGa{0^_DA6k(Gi=FS)C5etO_hxLV=1zc`7U~v zwJ*h>bO0PF9H>kW^gp*vp!z+{tjP=`kvC~gNAoDhhk$bA9Q3H^IscN2mmwi3)LPv24D%?31;iwtN3QA<`x?$50|g>7*4@zzkbBFsJ_e&w9JR?F}R9B;g->As$m zs|+uxa`FUHf@Y`M29Fz5IKF5rta*(wRR)YP z_3U>)E^^}cIM_j2{z4P&mvXKR{(Kbkdz(vDBL~;U&YQgg?vy%7W>}WR;5d-1FliJU zy*&r#bgG;4Qf&)Fy1YGa(t&)2LC|oo&btA-VNi!^9&4(T@x^Zp0wC6!_==O*XU7?E z{px6_lb$}n*H!DM6e=SL>9Jy!L*5fRtVg^3QF5OKvk*_cmQm&Cs5e<9IW zE%NkxC#X;WTvR$k2zp)M3wy4a&e&8sWIw1B0?s{G&+qSjCdq*V*;|(^|JuWi{xm;< zXzkue=QI%4`0Bre&T z=}orL7kZkv`7lSH;K)5c`VqDXgAP0jK9gDH6elC(A#H2oyMfOm$t9_U`CI?HkmPf> zK_}@H^%N_myK}?v8;d_gLC8V^9CoQHJ6;+BcP7pKYCn0a)?>jo1lPGJL$NyL0whfy z@J9s?E7&QjA76=nBzhH7#8y4rtxU`CMAN9nYhzPucz;WZwVyzDCEuKggZeIs>MD!< zf{YI}r9}^f_R;-ltA02)mGWsyOT}CRXyqC|GwQP1zgWQJXOYlZGzyHrbiY`jj)?!c z<0gpF%xN)?Wrll<-`IrRDJb|Gtil6dZ{WWdq_FV{g|y;2z-u!qoMi6LN|QI>T6>z^ zr9US+d^++iAF+s3YchgY=y6$h*ER0&qp zmz4uq$_j3)1Z@)WLAGzduxoOW;H=G?Gu|VPe?g@X4jh_jjgxCw_%u`bL!ahpVq;IP?i-mSua<@8q@zX}qyrNrv z`ao!g+zmk}Gy7%Sx-$7Q`I?}FTW4Abl!BbF9+Bj{wYJ`Z?*4>6*O=JMnK|dRa(qV) zr8naKT$9E32#&fI!7FK*xzetAB({S=9{8+qi@ zKmF0Mqz*PJR%YAXNH9@k`jt(0NMyZn{|39%<9q1cv@i5DWME~p{OyO>a+=;R);sqj zQ-45NyOv&99ed&DYJIa9n8Rj%6)VO`W3}l&ng(2Ln z+e})#f^YVme{VD67fd4tSC%qiV{_deJ6+q9Ce`*E%YxgmtaNM$T!({-+o@u4`t!|5 z4k{OuL2rH9yt$M{$DnY9qm>goj|TJ{p3vWpzWSw>Gt&Xw<_pdqD?~FwIQYWu=36&+ zhUR@}+ZF`^Abu~%wksgd17b;(2}JL44cJ&lc0>nrOI>oB-QHby?-RStm*UB$xC5E@ zVL=ko2F1`!I}`2(aX0b3k&d6QfHl#k(iF|pwmD)c&}#|IoqJVC2uPC#8A9y*>0NfT z=7ouRg)+i~&$65=J8PJcl)DVk)-JVm<4*^QwVBnGXY}0!YHri5ByHShC*#1dtZlm3 zGIVg$8%{ow1nz6pVKN=o?X-Rs7tgBkY%c3zv|+RlTg|>ge$TnFn$U0d)&R)#I^(xy!zF(B0?m{qHgN+^jyvKBwjS8_-rYMRU-2}s zd|ECLh9bE8VWn)veVj*2xBIGdZ3QhRb{(+%zV2`bQon0N=MZnKRR1*yn{u80>da>#F^6Vf#C@6v^dt=~6H1E3{6n9FHCyv>Yq^R=2~z z_4fX_&rYM-+g*a6x$>NY!nzS+Iik~z9EOgF5wOygj)Uu zvmsVY6NLEiSh-%oc^PFdX#zLj7=pSOe@?;YdJv&Gc~&=Y83Y}=rX-lJID7S5xPEHJ zhu^9xq{3G^i&!GP;+e8MPIaib=2`EO;A@4KcZJ4h$*97aJ$NaHs@#&g$-<_H^?morU4PJ2SC&d4#rCfklNGc(^xDRAL zCsWTL4RhN!pOoXhx zV<>ff|IbJ!ay1^;mRB1G1LS3^+cDx?%t|Gr&eZz3W}7glO1hI8fvcLZ&0d;Gd$XN) zKP>v*x3tz{b%-SAVCSi~VQ4uG60`=MftLCe9-K$E`*Y+GgOXm!&>VhVr_Di7~;MfR~Y3@5n&Xr*1}T5$IL4TOhi zn|!lwO%oGZG^ty=~P#-=(`LNuV8y# z3tajDuHPz+thS%#t7=<1^&OyA5naDKtDF0B_U(obf8HYv^i-eQRE-sGedQ!36)COG zq2&i!!Ps?%nXQus`}M6&T1;PddJO&e`Q?$< z4e=XEj4&G+^|4=UpVVRF&ffi)HKUMoUmtI)Pao`!p=!B@+{ z_AZVbBj>jb%IQwpY9SBq=tM(kl+ySsnN}|RU|0`1` z+P2daOFpfH9dmDvHcnqZPV`=HO8iDA@BG|3<0z{K%OEpzT~v@svV}3EZrqUMhfDJ@ zMB^b_iIh<7+dGl<%c8K2(+Nb`BZ5okt-|W4$68&OvPpVv@cv!~ZTo;I+`OlLHK$3e zkdpAwkOv>Un4^$EGnr!*nRth0Q$lYSlE; z_t42nr!t#`3{i^7xys{>O};Xj+0F1R;LXMozPY!rzciD@_>IS6{Ypk)L|Bl*c=@mm z{bk7u5*BLIz|adC|K^f$I~NAzJ_5tbESjmv3!LLqoz*m>B#Xzf`>)PZ6P@JB za`LC&b6Dv7i7IV05LURKG^q1u^3#4zDyFqnm|SNMYEG+ckEYBrC#KVr_{(U1>Buwxqpz_9>9c-D z8FStzY_W$G6~K-0NxFaWW^nm3X{xYp_M4|7vpBk}Fr*fk>Sm*ehQj9OB7*wa-_rT= zw&C))dg?+LYTffBk5s-LFo=?;y3$6^6}}bN7|aYaQxEtwBzD6Zzu|N3R=bx630y_N z$oqv?7ReT-r|<#+vCHxO5}6r70jK_JQm?m!RMHQ`3s?6e#8hDw=})}<+n!Oq!P+*u z!GvMayrz07)rv?yvVF@@{*yXi`5n`fIlT?+O5+&aj9nH+V1zrk9(LDR@F?Wke7t0yzo zo%8lgut_lilc2Rd$o6+B_MGsf3dIb$;QCta?IwX<$F?TUr5`vN=N|?7316l+q#|&s zKEZlV6~34tT>J_-Bk-&N7CgPJ^^?tlg*XLW<&=*mZ znt2D%YPs|TT(20)>G;s7nIxycLu~kt?D@&F_*#QXRvd33OFvB4g(%zvYRro(zo{~J zW9P&2UFDw!OafJE_mUq%Gg~~V_bHz~!cy`eN53X!^jLgFhiVZxiGPllq*Aug*XXUd z*%P`uyV)dMG!bUyz?L5XYv#CdD@oiN|ICjC?z2kb+vg_!ro!YHaZ%{x6?z(PTqpdC zi3fSGuu$`j^R-<2`_xM-!|1TGN3!2fS7sh2@iH%!q0n_LPmchBK(Ev*p^T}A z4?0wL;(z~n>`UqRJ1ZnY)KjvJh-`gj=%WOxd@~Gkcx8J`ge0NIDn8dl7K!dO)?5<*KS6moqiI#%iu6<}y>wrup`9tV`|a$fPFM?DCUCOZ_(TE7n)@ zMj{e*gt2x}UiY_&jW(*e;y{5VslshNI*U{d3)KQ0vCw2SqO)(WPbM@`tuQ^p*;a1C zh)~y;Z3r9pXVi(>f?_`Ld#XIk{pT|5`?KE?Z?~*omL^R&)q z_}2Erk4Rsqr#+#de=<aOuC0pW zM#a#3+aDTApA{dq@6MN!PnedxhzUh9Fuo}Tl0i`$$aDO&@C8HAK~PYaAS{8d7}%y_jk5lLK6Ft;^5P`%mxxSV|qq&`VUWdIAGQR84<+*JMMY zaX?mx@y1}pNN~SCpQ(mCE$omV8wC|peW@g`iMP6zOFxq#_i;SjDGHKZpSz_dUe6gH ztt$Ab|JLCMFhdi=JvT1MHQ|6s`qX=TzpmIFDKRzNs8FXoZ*%m*v79Yng;bfumY7$D z;58av^Vn4&o}28xTTxKS7kA=$_e9I#z2`?lk#FX(YrBLP8BP8qE->RG`CSyUBPttf z>PAZIbAYWFF0FZwi1toV0>6VPLH&MemcJcAThOEG8GJ$Yy8yv$`edP0$9hc6cLrUs zw&?DfV4LIs?U0o7>(fhH;i)yD=zYOG_ufU@_G|u!3;wr8ExssxTA~HJ_*WS4XHV%S zBs@fANH+|{sBKAH4@@{xH;AiOb|eyC$i&UyiyL&_R(ODq`#>-AaKq9TO)Sr@ua}}V ztKgi=#C%^Rr$j5i*09{|Fc&#ff)&3hB678uaUozfGh%U7QFG*<^ZJ;~Y3Ro}nbIlP zs_li`aBc5S5<*b2_ZN(~uxNb2_kID!7Upr%;EzrTI@s_$E=@;E2!o=V$A1pf6?_#< z)%#SqhiiUbRVm;&lmIdC5=}+s$Oeso{@jWAVothG9QZ*7$20jU$?uQv#@b#+k^OZ2 z^lK`lcaqCYv)yc=gN%~!2rDU{LE9~b6>@f0tH%0kDNdtd(~;P=KJ;au%m#eeEZ08w zfij)^O_F?d%XqKw50>tE8b~9{O}PGj)jHwC%)9FYr<>WEAjqG-x*M^C!G?|MFO@HKg0N3-`jO)&|vT;RjZb^2H3 zK0(MO>wBAn0dyRB;=caG`Q?g8QNbzzTbe{Z`Zl2?n&#kW?%<~_HW4>QoaK>9}Pq) zOTK}Wsnp;%TIJ?_$te3bfAcKu#2zm0deZ4&aySV!y#DRE$(P(l=0Xsn&hDyK*=3)j zxV74PnrBJUQ5t`F0W|nni`DWV?$K$6JmA_Z_|WkIw2y`%C)8;(|5k)z@GyMa zb%=0loqFsUvD9mDD18!d%((i%Nsfwh&i?uEpRWD|0z=BIQ*`ds5f`E!FwYFUB8Q zT^@Tu8ylsL&M$6ZAp>5F*6N~f48u(xUW(yvNG->W6Tn&$kLNPUMhwe#Haw+d)3G!8 zOu~qj3zf2Wn4RqpNLO}8tCZ)c_JL;1cQEhP-<)rhrs4qxH*{R@eP?tj=J2oaNyARZ z?1Ln^Is>AP$g&8M1pS4WCxu9{kDG^@{NvMHKh;BQ3>{zg27Wzr*CXnPE@VY;`W8|h zZuxOL&FPUlS!@5IGH>IyL>L(#Uyn`PnxC<>U9PgfFw@Q~J3k@H#Auvp?T&|zNx9}~ z`Ruvb8=P(H){Xs2YgIj$J~VIc8kg<+^)4@=#;&n{q|$=&T=z(@TBqLF!Q$K%nLE=u z?%N%oBi#~s)Uhk0o~(1Zrz7ZdwPK>?0Y!pqwC&XK39BIGU!Es0EvnT z35GcNJfdK&I7fZo$e}sOdF&@H`DUcsC3LCvZ5cPgDeuwiy5JJFw-409qFK#NW+`El z>f8LgyXmg#>T&g6+sJw|{IGh@=T1XJ4_zt$L0R`MvOdR*JuK3^d9rTO8)v5|L%IUat2c4l3?vK2t(=6^9=u z+j9kUlWULxO`j@Gg_1rsj95+>=(F+lMrFT@Vm{iLP2qOieYc@hUiMm%;QHYZ5r#db z;$Py%A93tmg6MAeX9r`NNY<^so=?wzZohJs$UGWZUn4=bnLL}^3lRHgmisDdvj@Gp zIp;kuyR>)BLi{$eqW)`GpOUmoh~YEkyb_;=+xWcfJ1wtPMyE=&WkfbGe^jtRj47!P z8diL&($t>^nX_varN6(^=;m5m+OZAEp4wV$eo^F-93dZbYY)sOs_o7;N8`$BDVNb& z{nDs)skBApXw_6jv1#)E(k!ZR1#*cpKCAH@(&l$EQDrlBt zR@KWjxTVij;c5#MtKW9B6zPsL3!@n5W)*qvk{+)$o}CzPbeOO7eMS=D`<+_YQY&)5 zv&E73__QT5_ElDp?E``@K$XM8Xc~phPa}9T>$Q+RS@>zWEA9yR4ja4}taWu}j5Sn^ z3-ST7o{59CK}|fAA_r3p`{p)ygk9nA6#>wSm2;Vo^|4QQ-oge5^rsPq^YvgR*VJGC z6dFX#+96Nueqj|im@8Y0_a9>4|G8U5b?FO6pRubQ>d^Snt^jSp1e|6vs$d8+ibZWO zt6!Duy9ac*V|)FiMB8g>Gwe|i{i*o`up!FTHa2`6Q)KEfwgP=Yvlzv!*5NdDY9IIZ zTrSaqvDAF)%j^$7(y@y5Jl%@8C51l3!=V;lbciHyB)3j7d&<3CbcdZwvg(`1m&rU$ zf%2IG-6nHjZa-3N+^acY?08Gd5R7vd1LXqqRvx{~mV8{b-P%0-S~`ph`jz3Wjks>y z_XtJl4#gDlTN`7AX)FssArx{+ut9*_8{83IjO|BzY!fd-P1>ttA%B-LuP>jC&ea2=yP4OvpVC=&kP~RQvFYr z!!=(0I*hk;vzojJ4cKwc0v8r=6>`rzEypycs;k1^*SXn$ryR=G7-u))t6^I0wb&Se zT1ZZ8)Siv}sB^jwJzDADQrn7W#u^aMlE`X|#|h&QoC35LeZVC2!+sfZ%Vw_8huduA zi8@*H(|evDfY3D_%sf+C)!(!}##$+6AU#b};+VL-Mp&)d(*>D(c;6l%(rmOWye&q4 zsq{wO^awT-|Hvqt@DboGIGVFCaUZA_8wu#AJ?l*7SHu)NARzqBXzs5C)cR$h#s6Wr zE^59EikJZUHp*fkcp#@TUj#i&@+OIJIUt?TxO^;vMm0}2S75cjxnm{a{ZJ#?#x@uw zDWVkSu}|&tzSoA$BrBbmMUQ3-kR9|IkDt*Q0WyJxtBs=H4qqSqFR2$8lMwK*60sRF zRQpbngDd^EWmHGU=Jp}EsC7xg>7HxTk0T(%8h$&;X^{tjn6h$-*ET}j*5HIauhJx~n&3QC zhKJIhfYmks0R7Q!HW&y#r-9);c-{^*8_J64#+~m$HCx~Zk6&A?dlSfLe@bBKAzYd# zP0;T;){cqir+q?aMQ8CT&0S=K_WSY?{6vro^g#ZVV*TIG9(D{?nr#lPj1xxMj#38i zTk2ERR%(sMJ47qui(Gt4@ul5Ew)R=S@W#eDbsNq}k-PR+l0`RRcmGl@*cDGz$w(MD0951i=LS1-IR5-;U?FMhZ& zS`Mb7D)99v4_^#rDGKhVD)X90mcSyNEJZVRAfveXV!=>_SrFI8SUrSv#^($>?i>i}0UM5+YiZVw&62;7l~6{iWJT5W)K zdAY+9yYDnw?BeXB^T|tlv#x)R`2cthnyY3d1<`}^u!fMnkpd`|G`Cnz(=1`l6#Fx@ z93J+u!Z*B6JmZYlZYPRkW2u$u*ZDk=q;yAmzqOv6 zG?jMwmVn?DoR(D2&Am=I!o*_Z0FcXo)H{unB5>dLHVxW0c14TzMJbsx)&t_CUMQtY z(%&s|D9tS=WHZ?5jkJYR`0cp>|2GHczJ8==c=Nc8q@EuBA~XqB98y~i6vIn;41xyBkIsuYa`&&Fh{KF&S;)ii$^ z9nWvAvEBtKJ9yN_Cjq<%qJ#NQT?iPlemrXCp+HM~PpKhxAon-x7wVb`5beOWw-WtK z{>&)&Ub3pRKUhS*ZXDw_VBPc$e~07Y$D!E#{H#ENSASi`?GbJ&Zt4d*Un^qPBx}Ku z)7mM5`Ny}3k&paDef#`BzaWEuej#EGa4S~leJfO{3J2Dcty%8EZ+UT|9s+%7=Dk@` zqUb8?E(hd1pV0N7uP1c6=ev&vF680gzEv>77;hV4kBvhCyKUB`}DUvu5>mJamFE!2l%=C z_Uq|vhgn~^07S<0?HN09EB}vcH3i(i4MFeXM0b_g5<31Cz4piJlJWtylvJCH_i}$( zl2DT!;xBbx_8pFnKD&NmXP>48>H&}K4m)zh@2+#ErTtx;27ffX5#tQxi^wFW-xd@n zu6JTMjit_ed+R=I9}9Pk_n1_vfWiYxpA4$28BAhZ1qbon z=NoiWAnncpz&R%Q2Sj53eWSihu5YRfEo<|`D~GyczsW3v>f=)nu)f>*g?XhTBAd7z zjS#;6>FV5L;;@LI9`lT1$yF`Xb6DMC-JFxCR<8zaf|W3liBDWmb4@L`!7_~0;dbnv z!hUR$@c^(Fsnd2UjAE};q~pKx3WFYO^0Ccu{&=N+J@^SxTWU7JMD1qUWQ>FqLgj0| zU0U_5DObU)1+Ff`PVV?UDJOvt&Rfjgg;R<(pX z(c-oQu}|$zzBB}^h`F`|5^bdjCFA`<)fDb?+!S2*kL%yyDk& zS3SaU&-uLMk7p#R#~Ve5zLmOE;tFmk2_Tz#6Gq2?f8Jext03g&u}IOj`t#xr57^O& z_YAUtA!IXOv{{0psd_WY`d;oU8ebo&svjFXyb)V-X`jY-S>x5pMK3;?FMdQ+8{wXF z5p36P+Gf1R-`m(-S9jIsX8-6&FT?6eEg>M|KBOHE{pd-UY?@OjT?=}O8 zO4HfM!lBy;imfenT8QEO3YcwwS0RwpmitBgV}U3Q)Fgpughd%2%S*F)mX8@2ay-D#+}b2Y~C zJ}q^(3zN8C_;BSZbk_=AK0Jr5<5bTD` zyxI^#R>>lfpnFz2-|~8FSle}DfTUQD+one_o|0D&sg+q~ZzkWHdwrN{3ss~kOC<33 zt{%-^fS-)*%xL+I#cjKhV!f{UE}{O5G;-;uPM|!Gd-sRaI+zUOwZ7NYmIdDl4U5XpbnF@=A*>9FT@}ni0x=WbZt~hYKo;afu`mh; zJo=WPMze*-8yB}4<{e06*GK7nb<^8^VtCRicU{ix;>*>2@gQBzwfiWn9OuHHQGUVO z%yzwKi=goLHbxegN3p4OKr<#0ULuy{PqynPc=Ae;tn@)p}NGc9g+)}Qh0 ztO^LuDuyf5q~zaH)BVS~VWQ|cf2rryc*i)cSh6V&jzZms_u%l$U6Vc^+7dabk8N>Z zi>2Qj)3Ne53KK#enW$BlX_CTXbZ_5sZFQxDd^EmAhQI01Ft&9jnYstzjjC(({o-yjM|BG2~pwXr!plWb5KHFchUMl=qz%hJYTa3)8Q>a zpnACS6DyX55L@Ri(0voB+ii4NC6~6g$s0%Fp3HCa_Vd z1)PC{YxOm>JdjAk-2&!~R8E0MLANy?W~I&y%y92C z4+k@}{$3cNF_x|-DTSlmEbYl)LZyRcIl9J-3nS*`WfY6%z_id6X^Q zXHZU8OBcujY%aQ(!>TkskLLYDS{sA$0aHA#9MeN5#($VqTR6fXE<^0`!aXR?jRwXE z(k{AaT4E!abowyZVXz8=`y{i6BQ-V7(_$?e(;hbMk!h?(liQfOB{->tPY9^BMNVOL zLGgDVBrr3iu)Xi`?f{+GKhm`S{v57^rs?p@ERBtCW*X;g!|X1^hOx{%dg$V7Vw`uC z!M*ox|NR^P`)8OWK66ZM=mlHEbKb%sGB6Ie{`kY_9~)s{M-l@P#EYfew7=$N|C6bT z0t?@DJ-z-{f4|y*$kMJ29b=#|4!>*zqj8DmseSg|9rz=wEtlr2oR}i*2AE;`Cmtx#t`fA z0hgg%$en+>UgRSI1cBw1vAX@=l+ylKz+R|b)Q5&iMyDGju$<$=>p@~~}qb zf&u8?f^U4`I|MGE3TeJMRv2*zh{07XG6p{XIpF-Krwe@IfkwCvkC_B8tzzsGAPaYl zvG;cboShW=t;umvMdCOIz;b?rwq_*8y9bo{KXu zVOLos-*Zn+upf{)g<{-5Z3=V(*m>M%T#v`W@cr5{wd;X`^LlpXq~P`AbJp_7`DTfA zE7Uaja(DccgL@YMD)HLj#1@3T`O6*lueVBbi5jWD&F%dQ)rzXHUZA^A*eZOnBO!3H z(?q|qBiV#*0Z0xG2x$2@YB<)LOK`qmzek`Kwc?}Z%hcV#c$sFMCFEnkhd55d1YT}1 zA6<^UBzj|C4`jCaT2N3$vqkWjkIj~e0D}QpyEGj0>h+($a&((~9l((M1Q?OGKq3Br zX@e%;rZ2gL)j1VtnK%FPs2 z2QY6ggXt;yLQ>EiQI>n}4k4X8fVz?keJc4yJ-+}TxaMG9EEG2CgMR=n(lOBSOXR&x zo&zAI(lt9p`>28T2?ZI-C1MhGt^zNTS^%(h3}W8p{% zZA=1?d|7zaZYy~r~}2yH>LyoO?bx{U}jH?Dw(J(YMhVD0G7BlKpQk0 z95*^+*pq2BK^i$_1JJshIdXP4Q*iRDzC6-5i-8?UsqfAU?DpqV&izbw*$XJF1&rqY z-_JCcA4*drf*^DED30z+Hvhe5233f_Lo0lr?eddce2^(KK@W%KsbR-`l;^|#V~K-3 zZkH1)k}qe#=t3<`I%LvRT9y^)6y)XwHwoHTtC8U6_O6pYLW6Wz3ta>budaeG0zoM3 zdAmEiuUiR-@Q43Smj8E8_E-?Zp~{;`K5^%}J`JWfr?_rfEr)k5n=jo6L|X% zV~)X0Ut4ESE~rymmdIbPABGu-zkd{qT1gYE74rwW+xy;b@! z{dh|)r-U#7allV1w@zXzSs zTRV9^eGi7Mm1zC_p_lx=L-2T~Z?w_t9TyPH{YMh~?{7U4Kspv<>oD;TN)m8Vzeoeo z(||lP{XhH(klORz#Iolz&J_CR#N7mAz=$IteOQ$YwS^G%#323QG+tyF9nw&!*%N%X zTlBdaF2z@!r;&eMr@s3WfQ(U6w&W)YC*z9dZwHzg1wfW-Y_-87 zF$NIQ1|Z^>0sjCZKP&yv{p-!d+p+gsMtt%4j0qwW6g)qF4h-}seL@%F8Q$Z-$41ScA7kFf5W}K->1h!DgzVwkjHOseO>uEG_!qIg`D`$|s%jni4Y`%y zo85?#6=s8im`B+<)7VCn9uWO;?rrcrKuTG4b#|c+>=z`XBFjIb#>USd zGWX_m+!hPj`G}D%If0^>7Xg=^;wUCX23@sGpPo&#XjYZ5yg#sEV>V4Q1RW7Vo&W^TQq z)`sXr`7Xl8^QzXFkBPsO$E!g>R+zRiQwU|1thbj6i@4X$9eixiMxwYDJuwWB-ei`x_`zc3mPyJ&1hi~%r-uZqc^0|$*4 z25@*J5dd#6BxXnzWMbwQC%dx28{kI!qT!S+cLp-^F{#snLhU*?Zih|P1>rrA!*Xpw z^MOh7FR)%9V$Q2T8rSPT3Cv1Lg}@3Udmn{aN>2-F?~tgYYfX=l8RU&aUolj+kaL!}pM z6|*(KBtf=am5d@2KrTkI6&W`GYUv^FT-ZUpH0&Ws?+&MB10>OWs;bmlVV~P(@dYZ0 zqs=&x?*XawSZ#F}iFrj9vu^CwiKR|vzd|qZCZ#jv` z)&?apdSKHqhx_0VWhgPZ`vO=+>NxJM=(!ENWUQP5o+5K>dyo%T88_sfv2_jAfW!qw z3frfXJyA_32ew~xrPA#dAU&nuItCgXTgzK7;R3f@slbeIuj(LJ zf63-56V!t*<`e)o?4heLT|z%Gvr-m;?&7|e$O;PugIEpWW3{#yT_r-8&buqIRl0Mo z7kpR1Oibf!2hszRf0ec0{3i*FM;GDj(sL@SX&AQ}fTl@4-rtC`*$z5=OubAvJLYFh zyM>?ZdZeZ-pc``DhuWX=J8Z6Qp*wC*BloB{bUtI}KBA1E`N}Bgz#c#d2KJnGTS$<= zTF&u!X7U*9ng)f`t!F?kd^||RqHJ*dq>zGe{j=8tvP(>X*QQx-z`9{`>n6tMy`@g| zxkkP{OGXur_K&p7z42z{8oTU{H<=YPa*!V?8;yFunJlygm&s_se*aX?UX^5SwY}ldwHaO+#qmA?2fJ%_FX!x)?0qq1k`M*sH981SDm#P7nJ9t zJK1Ac)kgy8QK~l*L3UHC{wCH$;obriyE%ZpOOd!)NEpHic>xp*^wTJh2o;CuN>Sne z!`oYiMcHoe!wM*aAPgWS(jX#8N_Qh5SabsIxwA2}++&SC9%Xa6ll!Ty9gH4ZAx_g97ki5t%F z*#HcLY~+EqdBfOer!V_DFD2}xFA%%+?koh?OrEuV_)-x%& z(k^R(G~1C=2aj%%}Z!^W6gs0*5%K8>)h zWx!L1X?27a0dZ@o5)%PPhBYOd;FReszuywE z4=EbuzTDTd8Hme;ez3K?1_x``!n?+wf(e=RE>0llW?n3oEy*At3G61Hg@Ka}zFn^o zf%~j(?+iA)FWn{tP#XkOLwW6j(YhXEM1Oknn12M%7u}CsbYJ$K6oxO=qEy$M6_td} z$TMbHzQknNqB)_b%J8{44jAWp6DE~IQcOTrjJACsp~rT{eA^1>#z6#QkD$^kn1-f| zRyxH?h_`;a&NDU~8r&pZ9NcWl@cHXEn?m9r*qjkp74M|hqPlP^{Hy&9?DV2z5}++jEI&t_9($A~VMlh+Lc#W2tyZ0cbztbvBKHzQ*$d{r$=YP$% zmd@$UWDNpz87u7YJb(rAD2O>);U$~Qb1@XX-nq;6rh2-~B~C$(mCeeg7RkfdkAGL; z){R~@4YN^^Sd1_9jodf1Rg+Xf97J{4l?GSO(=)vAR^V!RBDy{t_am|6`_F)b3O;C@ zr(VrKC=$-=u%GLJ2< zMOko>%4PJ8UgoYK%K#S$J;aeTwb=8a+LR1UkG^NER=^3u@FoqI|5k5>@6Zwvnp;H}fZM-1oMO+0c=mle`Bb3GM;h2ksH5u-QmfBVbOH}Lr{Zz-zfUK$ z$dl+U3HL%_+s3eNK;uHL%8qgwz>ZHmrJ&)*wv^CCQ%TY#NMC=Y_m9w$4Ds)<{*XF^L9z)q|NzSdrHy+JS1OsW{^2?9<&-rr$KS3IV(@+Q8=05p zm!M%{_Qg6fbg>bk@_Tf|kZdZsu$_m`BW%%6v)q&*v`rgw7!ps?jqsJTtzS;Yjp%i| zDihPnmaT%D+@riQj=sqYsheE-%L{;If+}@7sedn8%i8W76Y=Q+T1S(@aiS_C)bq0C z^4eHD3D>qka}J3kBg>~_^-IxZIw%KjQ}1w~$M#%1g4ghZ_w6CwZUP%jUcwK59qO=+ z(^89@3S|=*yJnOgGD{|p+4jp2^w0j#yNeLa6E8|!XYce1GvN~pp&xx$+30i~n$e9s zwMlax*{J&oMY4-NRt^lTYNUC4QG0Bw{H>1NAjMfkPT6xitJ^7+b;^e+@sEa9W7OWQ zZelrpqX&~x-Y-L}3GM4prpdKA3|)D51RA81bbOuzaToYR`OTJtAZdTXpTZ|ww%GBa zxFkO!yRZ#l%KkS~Tiv1}{CIU>`hMLpRD~=sffMC)OW4w!nLqyZU^UX8Y)2QddtpB@ ziEXhCJn-dLq{XEMOm`O%Dk7BW*0z#c^LHD`69;#GhStwiF>R$s&GD02nMKiQE;lO# zJ0_%;U0;Au1#LN6XF+N7F`vVvPKG5X(t5+B$Z4}k#v#YjujpTp_7M#YBsM)CxvnsF zeHRtyD2;VUhv+8uOCj~(8Uc}^OA(J;9#Y247U>9GKws7^uXFar{G+KC%YuBrcH=Mx z7G;n3GbH9SylZjs0X~D&PwM(ve%VS9MOQ!S5_DjS?sNCHk891#RC4N#mC;a|Jp9a$ zl=Jl;E<&oa+s&?EUhNV!%wR0s%K%b1O3gotEVLZ}B-4runL?~}o#$rPM^=8^a5p;%maD={7qd?D~zH;i+WmordnP3$}{{0PFQ9sA1;+=10K3Db+At}I-YYXz& zSX&k(P1mB*E%{N%!DeB{lcFrRk$P;qiAruGp;UNN@k5Uy6di7=6o#)NeoRW=L*7Tl znBrNr=RNc;lAu?UvV2sk<16ZQoDwoP};L%i@U>4m+PT`(mdhkQ~V=n^eH^c8Gg}5?oAZuJ?1WqO-l6 zcmfk9nfx{r^!+i5=0nNlbkUpFO=kRH_1DfjR0AT}A#TV_Rb1z{9(oBD*N4Rv_tJO# zDzhJkQMbuy6{S4av3>?EhKM)9V`y#oI96M`iBi*;93krjS=&UE$59zLB8ZR?{v~=m zOvXK;rtg(ZFzs(|m)maMUW(`3m5F}Mhw}D)I2W!sND% z5cU?1#Ea|b%CK7awi$u&gV<%9s9)sJ1rju&96ET$@Cf6B*?YpSNuE8`P8XS%_9SWg zoAp+7{$6uV4eOuQ@?OVywG=H2d62<*pSaXcx4jFvdKC&=Mh^}mFt|M%o`>h={O&M} zJM8VeB-dBA2^(~h7c$DyEQaCNLVZnTYCzUv%JT2uRaDDn9WgGjGSc3=C!X=d4!4W9D$QTlmb z5;SA`(=JU<{e{EJ;3NM-I$DY}3Vk?x=5vDz5C!O5(47dPvS!!0+5Q0>g`;CswTBX~ zAX;aPoQ~c(xoEvvs*YKBXX6y$5ScFqr7Wp5spFHE2iXpljG+r0AHRz`=Rvb$1Ixi6 zo_ZR;(e0i8OcyEM50NvD^y96|V6UprWO#cna~bo~8J)QJ-k#V7ft<7RPs0*358hC| z8_s^%z<96sOJlmfEdm`FyiA*U4W_+&HpZZ{#)P-e5XpW*3zPGE>!0&e@KjmtXKIU! z&um;vYmfgYKb~5R7NveWyPK~Uy2;Xr9c3Z%VJ`_if?Z-<$=j*#Me>$k+_TMWM-QqX z>t-uAWs&?nRatn9wil7mXQKM99?aMZK(YYj75Y_-G?42sYP%fkfA3c0Qi_=S z*ZY!tfu3Z(F5(T=0TQuPncQ4PVr5Mq*|;U4fei1dPg)2{pLH^qj?a0J`!jpU;CP2B z%Y#SQJSHpV-(U!}}RV8Ft54UrDfqN9J`w~jccJwC%Cr+e|)_Pe;SzV;|S z&(AQ5Bm#LU$g{FOe#5E>*Uw6Qj(sJN1xz%Uaz7*4Y(X&sZC8?F_YDQ9t*Gtr&mA(8i))Y}*| z4dF8v&$%cM=xZ%;{gubc@RJsYCGkHBCczc8uO=y+F1E4=oHjLx*`^(9<2doM{X^Y@v=AhK8pgmAr>ee5Sonq&>r>%(_) zp>MR!1k)xXpg`o5$uN8N*R7c4N1Y#9vOp_`#$CBVhz?ZpMQu5t(?Cf@d~B=We=ghqE0 z_%g%iqy_>7Xl+qaJH$IqIs+hr8yaNfa)czKcmH$w{Jo9>#Eh{P0-NX|;yM6An$fbJZepUwy)f|!;{LXD5*;m@8^RoabNBVwEE6##~nqw1MQ5GDk% z1T8H^JIb${&fs=x7Har6r*FQvHQs^V3y(yYdg$5ABJZGwabxgWg25VS+Ut(@)|JWd zPoX3$4Wanxz?a-2T{g_=bO>CK6H-= zB@+25T>@ao%oQS%9=cNf6o7dq|Ng{mG7S#siE9US(4j%D1u#QD=hM?b&KiYRqo|MbZ>ow^7h9wnqr@5U1uHwyIfi;)=;y zXIVJfEK1llFTT``?ZiTe8}#z0#)&v1NP5xA2Dl&jlm`skFmkc>B|FabPO%(?SBVo> z4cv_?a5+i_?*IM}JJ`LosZLf~>7{64bRrNN#T63PF=z{jwAI?PchRC<8qU{3x%?K{ zFM^G>#Z{68Fi+A6Gw)I9!}m~9u0SB=f}OsRR7{_mvcP*9?3l#3vURT+ap(E&1h(6} zQH9bT$Fj7*w?@0|pOV3u34wXft9llY4@w=kj!pk%U>Qgq4m<{@vu}H3a2#Ewl8^@m z6qMV<*g>o38#oR-POlNcZek>7_$iNK>t z1i9UT>ppz48ly^NKq9vZlOk}z57`TFg1GByzkda7$H9See)WH9j`f+Li`WS^3i4Q+ za6<yJ0_UHZ$P{I=@%NBPP`DRK4SZel<$HAR0ZsiZbh&JG z=0+OZzdRCm(W-TGe9_S+z}O}6sD)GF#dw7kiXNi`VTVN;K!jj%v{`-r6bQ2CGM@W> zroK7EVKfQSK_+*?9P4d(VSL}brQN>Lgws5vrG9pujk+IC3#5Tei0oDSo8I!cQ^~Q~ znT_S2`e6YzP)C~p(;1yfK4b96(@M~<=(lax#oRvcD>v;!P&6$q?V2#K9J^p=f3-{m z!#Cr-R9V;KaA#m;k`G2h7q)Q)gk&iCR^XQ@H)xoGL?pkirenY@DX#z66#pWP(uUu} zxPjrL;tu3nq`%}_!GFlNKS< zwz%Q?eYOjpVk}<-SKEV0SsfZIqDs4ZD>ry{KBHVXL3KBd?kx#Jnx%0t)L2wqL1uUM zQY!7b!&g(Xoc5k)MqD*+uNuBcU*ZqYF?0WOJo(4rhSOmLyy{x!vPjy>!G8W&L7O(i zeq*8(GNZO&(YsDpV1La#X7nw!u7$Vo^bW;TYptBLgGTu z$sT+L5%8gRc$x7&QLRNr!6PgGuMGUZeGG6}ZlV4D$wc8h-U*C=&A8O-E&umT{htqa zQ-5IcAljCtFOWnZC+#KG*UTXC;6;laFe&S?Vu$ zCQA2LrZZG1C;b=d_1|w0J+Qv!tDH)EnkB8Uu7mPgig>BX0=$;6iCIg$ zu1qSM$4xnvCck{j{U=?5S`8nZXs(j~4X}>FnWFA)qi)Ml(zy5< zR7FBRWE5?Da*%v0z`-Q+oWny9sc^0}+(R~|EVw9)wsIU|t$q<7;;}!K^1&;+Hf?g_ zPQr#qndAmTc#_jcH;dE{e?ISG7k5+CHjhuwzBqv^heZ$WDyC{D2?n+Fq!yM?_q4(Z9lUWKmX3sG^k**QKl6j{TCH7|Q@fR|)^uJbtSTyP+j7+0Y z21}lFVpVGw)cwc1GCI3%0fmJY)}Jn_H0MmM1*od4S+*}^)XsV6c-170I*rk`E8;C# zqjACD=a02e6!sP-!2J)4pN?USg~u_4%7yp;{x{);pi$^l%YGgOCF8Kl6zp|17JOcDC?rgW@Jce;WkH_8gevGEkUPsxep;@ zj|uK*{)GSwp_1{EgdOjLWIQoz`YkZE6|kEF9Fj^9uH7jg&0VFX{XqpLGutx*r)QAwk(7L!dwQ&P%L91_(OmX))ju(w>o=e35 zqmv0$Ko5m%c4gDI%<==nlS9oWpUa6iH1$GYGU)_30=4JD0O2#PzQpo$^-4P7xrYAp zm@1yEbA^Z7eBd5Azx}HTl~^v5P*g@apki`V;vv^i92`{icn|;59k-Rtn03H7u^%6> zo@@I8`|}ou=VIOJ8O(e>i+W>GhvAz}!K*1e_WDrVPPLtr{WV6{D|l)q;ECM0Iw|^g zyJ!kN7ioEzxJV|e6tWXYsC4o@d__k(iJ*yRx*bGjmWS8J) zA|Ajr!xyy~pBx}9z!BS`&7_F?u7l}HIj!`2^%z#2JTN?(r3Fk3PU)Fn%vX|oPa2_V z&1o-WI6Zf}fhTyH#Jd}0qr#nsfS(%*Cc17BZ~T_h@jwbx@;Iu!l6h`S?$ep*JY@!6 zmO)D9jLGgLIu3o(PJk6$Gi_gjaoTqS1itKm(5sl0PfG_pL^@5Vtmtxo@Pn%#pA{T6 zD4mMkktq{g%}JlwltSM9l=PP=8nq3Pc;DEY@;S3ndr#ETt zbG2QTf)XT~8Cyafun8hpMF6G1PS>H~;v^Tmp*) zodDGE<$fA#7WJY=D?wn+p)JRf#A^fJ_S>zI9Ql=i0}{uI#!-Gbq_kHM@zaHXdms%g#LQXWDYdtUajzA3g5Z{ zvsmptEEAcINf6It1sJd;-N0k;Hn;hLC#FmOcBAsqU8^;e!d&Vnpc+jjx&9=h+baO4 z+>`6SWj!>{Asc^RyUJF|QsPA{aC5VWcM0or+Tx+RbJjwr{18J3je?SB9EF)7WRst0K-XI@*hn)2<7mmPrOX~mf6@PV0bcYyG2pI?j> zAU5IH;mvDroyy2v0>VQ+pslKADUwx&Tw18x^Bez}#;2Sv4z9YFkXiC)p-mid75vA~(stToPby5ToF9Rupr(Ft1DpH2MY3q7s zGRKe?pr)`!;?tnbUYp%KKb&@6v98-!<;_f-XOhy5yta*399Q8682o~L%?!cY?;2(J z_~*#xsN1t94M8WzvkGHmZYWKa^cSEx4Hew5O*=#>CaN-=v^`(j`X-wMK*_8u=SR+T z>$XobbOSyV2bU#jsD+CTlARt27SIC%FMsW8-ASQdt=DF*o<_lD24m>I(ptRB!zaoCqhE8baJ@JE8i7SRg!B6f=p-I(& z*IPf9J%q6y-4h-HH^If*1&iiAtZz=d{mLys7|)sn`17L@JU3Dr^O+DB%`y${g!^u{ zUksIxT%Lb3eViH1G*s-4m?&hZ9eWbh}7e^O98=j1v->~Z=+-> z3BqywpIEe99lPbh{HBSXm_*cI3glnhC`QnWO) zW28Pfb6itt0T!sdZbJSXS+I{J$`bhC8w6fbzt_KmUC1m&4im<(Y!S18;n=T(NhhdF_&ssiz;@|*ZBU%FQUZYT|>0S(>0S@YaSawEGh43I|Zb zz8JXByt^534L|e=?+H`Q!I(ui_C0_Yc<`BZxe9SDZ(^nTVm@kV0Z@}*1no~;&A37c z^dPYBs>g_WSPb-M^X76hw2;9D(gUf7VZ9U)-YuIfyB@;#GuF^@Yo^Hw6c&O{uZu$^ zmz$V-$&vVl^~=-P<4la>9(p=wN$zjps@ueSZ6^RX9l_$iFMKoi>$ZLh$fW-J1yEDUT9C9on&5MoRe<87~+w4reDHk$xueG9%nOCnGL! zUly4%f#*Q9%$ImFd8AE|0R3BqiH5df6Y7>xi4U;h!;(H z&koW;rZM$P%hcfc&C#gq{VOyDyvD%w{)TzTW0lK*oXgfOo{MnY<+UuUK%XueY{KTs zd-l1Xr^?ycLe*@uv-4&X*VEoZztK66gP{!de)3>>%Cx;eCt@kfO1zR~61@;Uty*Yz z=>P5paoN;^Posp10_wXlx~1kuog-={$&}tMZT`t)dBAk>=OT&B&|)hY2sq!)``iUK z_3G#=NyI`AX%n`Kl=bvnTw&4zH+q{%&Rc2PXf$W|Wg#r8AlS9J*2n+h$u~r;zq?CL z3v-9)9$obJWF2@q^#@##V1G|2A&u(BWYd0>4HmV!ZO`^ha7B@t&R)e<$st6NMJBjy zgm=A_Olfmz#Thp>?xH#t#KZPm(cB;?_J8p=HQv_kH-?! zbZ%nd3#CVo+0A$VIP{hnF@_sZnEexOfu z7}x>Sn$fleaSk)idQ4;dBg+quYU4U)D)PAg*7-|Ov+~-l&5#(LGvz~{H0Jesw$ zv7Sd95nfu5lFP2J78%^Z;(2b?;61e=nKOZ5r;RBiqJx`V!-wg;mQ!B_hXh8ZIH4HR z$s(Oo$pYOQ{Hu^$l~nj+t%?brjS;iO_ehUoZo99~Ebd4#EIK}4w$K&zz25*1p@3G5 zZ>nJC0ra`V3A7Dj^_~Y75N}=cb>9r;Pe_yZE8$Y1l@6_W%>Wg|MFo#o&PlRW#}E+O zULFoLY_Sj;*s*OFfsxWu6C5y(i$b9N@<&uj2_lM{AiTw4ZI0n>2aJS_;&L7-z07j# z>P?&JzU9-L8!Ap6`=*fZKr&dSin=RIoCvxP$KMff-q1e0PGkq0CPw4+)uq<`kwk{% zW1z!{=nGpJkMNv>s<}6~Ga(7dYauB{jOy!KkVzwU?}6|)dCA_Um=$wqvh?E z+87Su-My8tv#lj@ zHt*$DW_Ph&wo92}nQgt79U#lyw&~{%U;NK|w)GtrsFZQ)+-|sDZp}ExtfN%qro6m> zih5Yb_!aeV;J7wY^uuk8i}8-hv`*~99Yclhht40-b4S~o4leI_WatbSZ+FSIE--I31fb;0(OQ^fAhv@}O~iG``)z~>>N znaTnf5cmf~k`%-#_+EfN2946J)n2U><0&cL=P5%7J}iv)L~JKXMhHSs^6v2Zl&3Ds zwi$Q#GzJuXIT>0U96@iUhho4JVj(C+%$|x(q}#BxnC`qRo3)KsF!SoCUhQ+L>r*B{ zpv{huB8qK>Sq=f=l{7!9NV=b$y5;Rv^!4&#-Ph+sPove*Fi#BvJonIDfq<~uDa`qf zuWCm7Omx59N;50vd}UCT=N?dI{<&F-LV&_q&a*7WNpxy)e=Psb}a z^JiPpcF-!$Z?`qxo8lbL>cG^Gz^|*kORxxFYQQIS2kvCM1N5l*uqjcfHmoYml5 z^nk9q|Kc-d8#cvykKm@m^ZMnm-b?EpiQ2$h+JEAW$DbM_Up`b{|1#vJ_lje>VYJEV zP%YhZ?3)Tt#l%$K#%ZNx&s`I4->2PmycEp!8*YAegf6p*$J@5?4Ni6WC}V*3;R3T( z-+P&1o{5H)RHHrD&xIxd{lZ{!b#VL9&U%^H%tf-hOUbP-z9ta7)L*=(jz?%hcl=L} zzRGDFdHKaizX`^qh83=}!|wuewtn!9*pECmQ$kDPQ6G&)rbBfuOA9%*7pH5SLM`+V zE6|AMIU8+3KLQ#VLIg#R@4+`43_BKKznpHQoC7J9Yf%!O{?ydg&)xH{$Bv&Lk5V;_ z`=?|@^ORflwHu{iNeRKz46q)6%WV(*FOf2NHw(kKdoLMV7*5g@nP2cEO)qbqp0o-m zYOmEy^79oq1e!iC9ut=tzqORWvnm|f93>|O@)lzH-8GT8#%AST!Nh7zCl|`~qeQAQ zzAQ8w`DeomeVp=>uvfD)<#JB>G{Jn*r+z7m?Q$|&JNaQvPS3|)t@9aam9Vy(>)Raj zmfy{UZ}xR-t;JxDZ!{c?ly$Ne&HKY`Ui%jKKsRr{D0n69bJ|1&z@*Bab*uIlq8$Zi z_K_Z(hSA+sJI^eR=fniFbalul=3gbNynn8H%fGf&jzj-0&kRv=pUIHd#v87uSCD_q z1H#qO93nSPwdE~)zCFh13PjiUen6)P4M(_A-=o&%@G*aLGlDr3X$}T9s9cqP`^60S@`VWfX)IWG5QP4&_lk z>g=MBrI?Loqu9>GF0IS-sHGp@UGM=HuH0)rzs?Nq5d?r&Uq-$KFjksoPeb)T43!VqgS zM7Hd)du^Z!Eh=H?S3`9KnHamUCFk+T(m9&7J=Gf~%(rEaZ7KIo@tefA%+)H$i@H(s zluW>?2KZDAjoncnv_3a3TT|n6hee625tm-5+dTKN9nEfgY#VQ!udyVwihEzBKjcBd3AgE%f^)?fL|s!C>sw z${@jT*2o`8L-}^)++!vp=0l8H)$Q$);6q-`a`95z16N}aU0l~J2{M*@9#`Au%gNXZ zUB(|@56YeV15G}7jpi*`%_UVPi|!rDKGf+e@{^V902M-DUAx&b4?+mi4t=4cAH*Zu z($m|=;x=*0Grg(R9xj{U8on55UK^+&0#;0qeEmkO^xUmvhw_{6y3N#XPDU2K#+`Ia ze*KMx36GulQG%@T!qXU8rO5Xvk=ZT=>AL>c4-5s=)gBMqy87qDt%0;p6*QP##+m0o z9?kg4>?6AdEq+wTeAu+X=-(x`8cD6pKe3W|dvDWq5NWf-ox2tfFwa4wrx$-L!Q-&T ze)0nOXP-+yJ>(SWtgv*XDJ<{Ypb$eano|ntb=S`sXp!wPz+KywEJ$IUen{UbVN0v; zyxTk7TKO7L@~ZcqTphLqnbtlaejtd~+NqSc++tpB@fal_+|7PM1ob`-6H~f*_o|tU zq7FF@CZ)2Mxa)D(3=@oAsUYwTJj;xB*19JKGeQ_V58V^%PV7cEZ2d>FV8Q8bpoTCnES2ZFm&$Qt@yS8vG)yN-5#G2~y)I)Q2?> z;g+JgeCa?~elNEhLM=U#2#-DF5g$@wDtLT|7>T_BjCDbhS>LH#I&CS>Rx04ln*;p3m zG(9{$cBH^obURZa6Oy^uSvXFmRY5=M>69ypoDG#_)ZleGz9D!znL70Osia%o>7z## zt(sM*r`rc(Eng2D!U~3R^@VEbLm`5-ueP>ongWVJ=k1x+v z9jwh9X~LleydM{OK$x@&!yE|WIHc$=R#J=@-?|nVN8}%{04{%!@Z zy=kkK0DPyWYb2yot^iU~v}=&E38;hzf_U;jck=&wH+h?)1r^lNmaMiLHPjy8RmmN( z6Q{DH>iL9(&lHgIf79LQA0@V)c!lSFSf?|w!ET|R>i$YplxtGS%;I8+g6j`HJ?fD)m>!4%6;xq21(Xos&CPWEZjbf?+XN;#4f z5-nq7IiE(rxCPlKOT`WQ0>HO1KoYb7?50W`@9{YxxiyTsuTp{vAicoRzRe*8FBhM9 zxCX{5GL;2D*yl9qI9z?~QV*1)vmXY(l&jfEFQZ0xA>lewEhu-24fw87j4^Pj-#9{v zvkY_r^=ti0Zb1pkmZn;nmd|>;;(@*TDp5i5boet@pn&y^7jXQN%e+s;Z=WH2x?bwZ zi;CR+&CW>OiS-csBvY_JwST$YFN(P~{0AE`t5a%5Ji1j@t3qLQ??&T_S=ZS$r@3(| zdggKArknydpL-pfzUOjY-^L|%K8@GkF~YH(MfPERoLE<}(mGc8tQ3TS&@MYC+iM1- zu6Lf*GrCJ64YABw)vSBm#8LGgr(+B;+H*YJaa`^7XFCdRK&U>Ef)`+hN{^_a-4>TvEbtWT@zc%hK^M82`{E47nXww~(FDy2o7QghEl11Kv+oz#oM(Hs0x9 zPWcE@c89&=Tl76+!;?g-oA=f1K{CS`^3cgMDC?jj(T zI$pZO#!HLb*K4MRJhDXyOefpJACy(dkvTSiromI)-Xd^*n_c0buY^C#bPM0 zn6}B3Dt0p{^eQ82HYoxza;YlT&Xfn;gJtaQks0XT*qxMVn`_9JHuB8-{C}~H#!nb zn2S)p{W@6b$nUAX@v@e?=QA`5v%<2btjT(w$E{%WZ304Bf^c4ns~7N!%K7Pqa^H-J z*&3q@6Y38YIWZk(n+8OHP53#fw&Xv>7yqb&;uvf_;#EP2LA17)(JPge##A%+%h#4* zYvpl1zivShd~thnNsHc&y>x4=vpI-o@k69z@X2E5D5^jDQ11>!Bd=q9$XcPYf!RvOB~;n#m(jxY7jV8-h#WZEcL%588!Rp?Pg#RLKj32NDVxqzJ=pSh{j; z9G6L36vN6XFc|~fIeT9bsHQ@LZSdavBa}aVwKx4%&NykXkPoj8aI2W?D8!+jJebyyM{+o9kYO}zG zL^7)mjHwDzt3~b7T;663A-S|sBs;(EW=)uQOiS_BqU&x zqEZO`hPA-nHd!C675X~d3Sb)b`MpuS*PI06d*@Sv)6cg!}!*4Q~rgw zI1+|6z^XR%ErunI4RQ-|qO8Cmz-LAQ7z*aVrCY9s6ORS|%X{Zfo6fB1(s$_{EuhId zB5eUQ3t|2gb2=;_Oa)MBr~6CP7boGarOcxG6`c4Z(^%A=T+0f^!Ivf|Z%{?zF}2@p z4Il7- zrJ(I{>kX0rmnHm}fKh40YQj`9%#=&53;_kL_r&;4bry`CgIZ)_MKOK*VjBvG-E17ilWGQHNDZU ztsem&;_Z1s&0G@9vA0Q+>lroW$N;tJvPo}K?v*r89-~3?wfzIkgEf^H&98_{IVoY$ zqme8Yjn$n8su?*qg-a_b-iR3q&NnMtA=2t-D!A{f7TKI88cAalmnCg_Sw4?>@Onjo zh|M~AU$}WShRvkT-_wAQge@?SYNFO3)s@{AJuFdqpw&j4uVdncX=DZ_M>hrQvL8%T zeN}Qb$*~%#8ALwMlEPxXwGfv1;%+6!kwk*v!G5LHK2Q*-d^KpbT)(!YnF)lS?Wa_u zWk#KoC-;rMUH6%!WVG}wb@_b0_M;csnCb(!$aQs`_$EMl@q-`8pq zQ-mBZUlLIB7NFkGGUYYExH{ix0 z!{n|{iBdUk>qod1_rI$W=j++%CH-jcIkT`6{`!U|&x8VPd+qC^=Xqwpt)2tA zDI(fXsDiU2X#E{p`>I84DC3#*snM}Ld4F~##hn0WitBYoF(F6&0@u>0X(yTM-i&Z? z=Z@R?P8aX`?wr4Am9F6W{*LFey4m;|+AMQJS5bR=@arVUB`;2d)8=ufXZ;ziR<%{_ zzRRu-GsPX|OwPKY{gw___g4sdtxBUH5RHPSmOSLm$4@^~4nVs2?b93Nw*&kgQSuKx zH?ET2OscS=v8ekaOD2iNRJ~d+c|%Ff(9!$0(ti3&^}jk)tiW~*aOm_UR0p|FxzDqe zoQBofL8a6|gN8D8X*dV-Z-uk10Bh60b>afws&J_2UdjDTX#<%wy_ ziL}h2&*GEx$8+9(Y7-Ci+>O{C7Z{j46dWnA86OL!+9@DnQST@?p0kLle@j&KNFiqY zLnD6f(?Rq+$q?U(lfak+6G8N15IVkH!A&aY9Ih zmh(nQAu&tQU2*=cg=QtIH$@%~ch%wvah?^wK4f*vmnHEvOul;)Sxj|zq`h?MXU>xt zq{qPQBY!!y&(AVF?xAeXMyMbta&hnFmAL;w&cs$RmN5$^JAKzt&h5m&xxM=7`GE6C zWx07A=g|7w`x~$2spa?iGXiyn3(Bp=>bqSBxo=c(V*%&(;pz&fPUG6F$GNYLF9`OW z4>t|NDhQ-+)P5hIN9(O<@L`>o$3T4QJ#9%5I>!?naKiLa?-N_zsbJq4iLWv+Dmtpf zX53%HZ)Wc|TtpMcXP&7)^qgH$~%r5 zr{J77`Fbznzzlj)Z3aLh5*!}ymb~lP6}E|x-J-e0(O!^~ zV*YJZXDpcIDXdj)R_d6e(^-L>&>zO6w7FcH=)22$DSVVy)QrYfq2bLgdufmJ#?JV= z-lSkdPqCr-a7A^l>L^?8a1C&DKQ#^}V$&S>%hBBz9Z%wVv3jjXtp`Q0X;9`1;OK7X z%RVju9NpI@l}jZ5a&*5BF-j!dYvuJoYHAU?AUySc-Ih$)l!6uj`_EtdkMe^!^B3pC7hVFyZIOVeJq%!kj_gYAyXkoRH-xdgvrvk!Tl$inx@L_!&w zx7Muag_l|6D-c7ankw<`;j_$o*X_C1p|X`JnGbK|tpIq}5rzQ>$!6ugyv%XM`{J^n z0fg11NZfYGC1Gdu-~A8ZlXqdCJQFN(U>Z&)r_{%czHjypZI+cAylmqMzaf03GNMI> zDnxynC_VAgXvs0r^drPZcH5S}jH9RK%6}#BjEbLoT*(-~l_^?XG)qx=my|TkiT#@e zTt=9gm@WEMIQGHg&x#_`Ax(|=E^{1nEHrt!KJ!XgLKqEtHC-E<->3Gwhnbf*3#IxH z2iCnCp1fL6*qSPv&e*;RiAG#t93br(AH}IqI>uco)cJi?2q2(`I518dZnP#=%3Rfw zS3+N(J@$P9dK}U#KFVbrvC=G(EQ(=rvXo4NT$!B5^U>Jw)1#LGahTWAet!7SibPT; z9CT6#M~gqafV8wXWgqUaeSjD)6a>UPmI!?_4AfyYmaX}|fnrlMMRd!s-Q8Z<(dZPy-jB)~uK=;xnmP{t{B_jt z!o=+T#FBP$#wmj*IKbc>mCpA(qulJrU9Ea|*Z1S)AWMhZ3Qad-9PSzvbwgnKY%b_& zg%k3m%=yKQ-yM-R4q*o&rK8vReoP&300x$99dgp3Z?o_?*$ZT$n?f}~D3jXC0$>8^ zv_Gh(1yBfDvxg`x1CMu++;C>+Hekduk#o$EGY)+%Wwr8@|DB^g8ACXu&?-QEtN}M7 zaT2i64?wp#o*AQSjw04PP88sNwuy421=#k_ej(uH<@e+eh_J?hoh{v8Ul+%18lWsTOClAF73({TPX z3s62QfH+g*^5R_Q6Q~fzxren4!Mvgp*gYCUf}IGw&!fcFhPw0h8h(7-d*rV^oU2A+ z82`U6nyB8?0MV&e{dM!>tY$J}Qp^4!XeutqO;Dz`vi(0{G(%#+yPu_v1;nKUjYE`JX-b zuQApFCz`8#&UmRw7&*HED1e;iLwIGL5a0$$hh48VY{z8=K5+Dj|7y-HMO{hI@myjO zpc*Ju0m^_`Ys75>7)si^0}*XJj4R1$PmK}OR{_b5kxW03-Ms!|W94gff*b_vz@Hoc z>>^8c$V}#Utps&3#!m2)LtyMX8h}riAU6z5>gjKNQO#eCW>k!YYKQ^}25+nsaMPn* z`|~jashYL;x(!DLk%Vi|6_HE#NOG(S)d%NE{daS2{r4*ov`gU}Xs!nAfsa1k9R=h~ z%kFsIN+8bw4t_thtvbQ-!l8azX8IK6(F~wSeboj}55bwY=$4IduL8w{um!mGZ5^g; z_`t)G9RX1F|Hs{1M^)9WVc&`%APrK|ARsLvUD8O00@5I%bT>$Mh=d4;q;z*TNH?Htj?a6}`My8C|K2eegFP6q_hPNN=A7%kuj_YpA-0}#1*ogl+SAdFIBeLu zM}N{gQ{m68{4b~f9U;us9Zt+Ma{mi}`yCuifHc~=)i}+WrT0IQje&)-1lFctq8iZ# zwDvckEtaAMV^MP>`*qazCsutCtL1K?`_Ii4Ko9r`f5Y4az_JLAJoOAIELsRFJ)^Ij zYK}5>zefyg02;vsIW)LBNb`7C{yC=pdi^v8_6{Q|h7vC0QbijSS>^xb-2Hyqtnn89 zMkq_k)vQeTUmpfxKP1mXTH%YV&4kfbvKvQ?kMI{F; z0NBEMz~X`2Ew1s`f&Kf1umKDafGW8P=&%43HwKI$k+JF>|Jl>(-h&^L)b3kVawsHyh zL-zZgNB{4Ca+S@XRbBkLNM{xxY!^r&pYf&5zzI5}g5_`R90>{k*D^p(O@| zP@OrG)_Gd+UzVhQEE+K7L1kd$u2;}&!~Zsg|NbqhM9}jtC;W#G?%(J0U-JR@$vYTE zSR+Cm@qd*}Fult`{)bHBC*}Y8_rK3+9L%)08su>A|BeIkZq@LFC;46Ru%++@VR>t< z$~jX1c~@L`3j>7;yDA#817T|xOqy``z}uiBWYzS=M3Jr)pG<7ODq$`jQ%ufHMcIGM z3c?1+z?n|fMo54BqHVqWFH_wg7v~>m{AmQZi0vh+^8a}R|NKdmKDd+E!sPk>kB8WQ zUoqh&*d0VHv-_psu(lGJ+ug9}H_fAz(7K6tcRP+X$wN9(c@+Cmg1FAQnN6M=6Yn&uO=O-t(%T zUagSWFz?NO&TK)#=5V%WLH*)pu&r&g%SfhL#si|Oj7b!QYH@Pe1+e;8`J>=NB1rgJ z^UBO&{A)ZGog||!#m>K7<0vJ#nIf3!jBr*!VTU%dmfxXPRULMdbrZr(>bMp3C-Y5` zf;0-yOGyxCq0LqGBeEmT2P<4~4<{&ggW@&JnE_m+3~nHU1KTkS7`ilybQ-igb-ivX z0G5@J!UbTQVf1WVHLb-jz(Tf#%tM+$er++|IQwC;(1Q9^jFfs~kJKM)HgE(BmyZCU zoRwi`n2iX`L%IWy!VM@e{(GOb!D(g>zr0GT7K6IohS@*>)WeAM(&usdKy5DqMz z4mT&j58sQ+?8>7=y~Z>J{=>b}E0A=76KfH-;`_a`zZo<|aK7Hbh|@6a%0GzHutWWe zI4$?2u1y{1MFcJY zRK9t7?^Qgr1prUmL_5HU5y&_+>h_SQ!M0OAezjVTBC5o{PjxsvEZ=0=0uNt^(UpfQ zj;APY15hq)#D!L4RIuOr!&=&~PA7wMhE%kBmHE`tMA;!QsmYcyaj`78Nb5$8{Q$l; z*pr=UU?ZVcG=^Mj-AeFSoP2$7KO|he&Mwkp%c*K9%=b zr%QQ)rP0pHwvE3At34Exr5o6oYdNGHC;r^&3D+W7?~PZOshI(c@^q0z_!HpKNSOlc z&gft(`7(Ti#5a73=Vez9YCGHotFrCeB9`{yz?^@d=8EIeUHOju<&$Fky`UZu*x)Gr+MFv);A}Ev#%Z#K z%77Jw(XUxi$v%L>KNzxmQtb+|29lldEfVqjZ~$NoWMaW#u=fo297T#;St8I`L&Hr&!dGDa zFb7Qf?_mfRAAgM1YXAwK7P)` zWjO<*dK>>nui)KMg3@jqYS9Z3NARe$)g$>8gwrJ8&v(ZkeTt?yBtIp`q&U_iz6$4> zvxZ_EWP`HrF0pMG%n|CUNX9<_+{DXbRRE+;!+_X|w*jn@?_j<Y0>4Dc=+xtbBNQ(+S zv7U!)rdZo~(Z5i=+)cy<3ksf>RtCmhpvlmP2V9#So=841IY8$C6KXo=W^nvDfw6)i zNl2Oz2}KIKS{)0!ssVODo|gXkNSnyYcR#U-07Uv^cXoOwqH7KqtCO22i*$v~@(;mN zS#5j;zmQGjWSNP=nK`VF4(;!{vF`}MRpE2bs+7*|eJr^18zKN2AGh^2j=i{dwjOLC zSAN2=Kuf>Oq`&;YP-6PKnvP@IBT9VA`yO8xH+&bG4}lML>GC0!*yqqGV6@y4>g7-0!5IX)-h%qul@Q$ z+#Zl^9O);=AlO7=Y+*)WW`I#f8y{Ch=6OyrQbdT~4Q`xvi*!#gHQTtr{D<;>Vq!8s z38Lm7lVp((IDJ;7oHUTmGStnlNQc>ePl>ozpUwFHw=NJ0_f zHl|JWIn^!9pgpi0a@5>G3b^>K5g+R8?xE~pF9?cPn0{z}On!KN6cHO}_u(-ZnWKQdhh3$ZL*+@$@`d3NmZ(mpkx0N=QN20+AI zO}x8Qgp85hC}B|Cuq*L);mfc_KwbcVL^8)gaKy7 zoSS6-E~SYLD&aD7&Gam7NV)$DhC2map^aYg-%pIve^H_p|3!%|Hsnju1B~!xzhtw* z8XDVfL66JoP&^7R@UZVBg5eX;B)q5;U@Cz`-HCu9x^VDKRx5iy$rad0lhjn-dORmr z#FP*1Zb$g!NrCzPIXr7ibq86YU$ZMk2&SrTB{*o>UbYI`r!vI(`*Ze4 zzPD@esaW@MQqiph+xdSjzV5DBJwHgoU~%-14E>H^M=-jF=wcXDh!k0#YVC%;w*|%O zsaNmhC9u2YA*n|5tI<i#*qZ_qT~;IXK==q!ATeTJ#y_rrLm4*TX~ zHeT11Wh}`l23iO9 znq%ridt>IJCZAbEM4x+5=<33ZRDLh9!VVK$FnO{2hH^X_sl#uOG-HFwmw8OQNX#eC zMc^C6n_OB$kws-6C1Ox(*Y2G!T9m9IpNYPEIYYtmm;wdlEL|)+V=#dJ?O|634n6e| zscNIFAPMP*Aju%gjFv4lmYiZG<}c)56glhj&-IRjB{Y7>CqF^H5dd4H8BXSH0#col z`g&{sv)?f3)0f|Uc#J5uqK9*qSXsXMBYs+Nr+7kfES|Ep&Ob^oY40kr-{FgWr1P<_ zZ9(YnA`)an-1*5E&a7Lj;Ot!lIUFrb-xndH{7|0xx@-M7D9bP2)=pegbm-|*?_$mN z7c9=DWKg(0DgHgoD8tOvhp5bBpA$v0kkXLC7CogF0=m0vPW5pb&4U)|y;pso5!~Kf zaQuzd-Y)s^s_M>akAI>3*?`ckwd5Ysqmh;XpAdwOppXy)t~VS{I>f?hI=`&VtADi5|S(mfqn;mxc zAba4j)|et5N>C0^5=;o_GVTeCpRBJoy0sKMeqFMLqEh(oRf?5!1&V|E2*n86UY%K^ z!<$-q%8#Z`3Q;CEI&Uy?)1qSvz;s;+|F()QxhS+|!_#AYT=S{fJa@y-GdyGi(jbf= zO!u_U<+fp=Avh%&tLTKBgomwcsCh5^$~{h}y1G#CJo+N>98!tlt5lhh3>bSb9gyf+ za>KY8UtuvWi_|N6`4Rfn4yQ|A)#?)lWRjql(5gEk3{%Jay!McOqol5cpoEF_VppW$ zdF)`P4UAWvj)O@oGk7!+LD6deNF5bEaP{4cQLdyGyx|=Bb+yDW0#EjXG-A9E^+9oe z-X2tQHtk5~o3!`uiBQRc>dvS8ot?QQWDVtCLU3I4cjDf);4hWwJ)8)t_gIxP|Ki5t z7s!;%Dkj8;9Ng3f!74P43cu&M1_2d!{(ToS`~X8X zKb-rhEhuL6?HSKgh?B#z$)6k|*&XTQ;_(vr`PaY`z9EFKCr|P(*H6qLZNX-4$3Ri@ zTWoJhVLDlGEg?sO`cS|7(n~eHh1DNv7A(5pC$oT)zl(_mwqC9*V#cH2G_t+@6{`#N zy`xNBhHvz4ByN2DO*r^#Bkv*JS)*mMya^wRKm1}6sb9wURYcvooB=qNm&gZflhc!b zVybEWQTp=UM%s^#i61_m6ipGxSm~fwxgP3D=6A8(Kh@N!q+wc*-H}<0BBYXAH)KDv zw^rX^wUBvT`vHHGv$ky5dNQ{@19vcStIZ)A)FZQ9;KGxhJ>Sk>bUZ7#0~)r=MiQ56 z?juZ&z^(2=Sx90H~D4)oXZ&Xb6X z6SkZ6L(cG;IT08A7I?<{gqI<0o6Ov6t^f}x+C1Ze^i^Gxl>?hO$aZ)D?kJb_U95iW z%N4P{m#AXR7o#b+D`mz?{!ddQT>7nThEY=^x%@yzL~_-op*l4jHToy)hc5|QS+oU^ zFe1$Qm!1R}>njCdcH%Mc!4Fw8rNiM<(%3;$?WbQzEb+2q&00I`5g`2rS^jwP)X zCVtEVfw3CwJo#f%Z7&urj0v((&E9+n=YA=ZYJ>ahwTDQLF6=RwKJ*^O5fV#FEzPvM^k-@A z9!{2}WcSVlL0*GdLkz)%GpzDPrvqx8@7WXTCb#1l+m!&llY)`1w|CAtyuKUH*u*}SLD

8c+t(Q*C#-6zklV6h;gcUOR+r*azz`p;CThP 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 c&hr}4H!$YJKigk_T>t<8 literal 120264 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 z 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≶MDzs7B*CL)0lAUF!A0|lc&zW3bMM<8#zlTj74 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 diff --git a/docs/getting-started/leaderboard_trace.png b/docs/getting-started/leaderboard_trace.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7d68f342972ff74d6daa2f9c9a56f3c4e2e5ca GIT binary patch literal 165672 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%0DFSBG%lDg4)v#TL8Myrz0O!^2lw_ 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 AU;qFB literal 0 HcmV?d00001 diff --git a/docs/getting-started/vote_trace.png b/docs/getting-started/vote_trace.png new file mode 100644 index 0000000000000000000000000000000000000000..d71fe5cd21620dd901814ec299e97b846537c2e7 GIT binary patch literal 65384 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%0AGB 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°uXWMEZhPBCp6(

TdWY;LCA{st)0em8|^;fBErrG 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 literal 0 HcmV?d00001 diff --git a/docs/getting-started/voting-patch.yaml b/docs/getting-started/voting-patch.yaml deleted file mode 100644 index 227d01a..0000000 --- a/docs/getting-started/voting-patch.yaml +++ /dev/null @@ -1,27 +0,0 @@ -spec: - template: - spec: - shareProcessNamespace: true - containers: - - name: emojivoto-voting-instrumentation - image: keyval/otel-go-agent:v0.5.3 - env: - - name: OTEL_TARGET_EXE - value: /usr/local/bin/emojivoto-voting-svc - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: "jaeger:4317" - - name: OTEL_SERVICE_NAME - value: "emojivoto-voting" - securityContext: - runAsUser: 0 - capabilities: - add: - - SYS_PTRACE - privileged: true - volumeMounts: - - mountPath: /sys/kernel/debug - name: kernel-debug - volumes: - - name: kernel-debug - hostPath: - path: /sys/kernel/debug \ No newline at end of file diff --git a/docs/how-it-works.md b/docs/how-it-works.md index d793b96..da07e9b 100644 --- a/docs/how-it-works.md +++ b/docs/how-it-works.md @@ -37,17 +37,6 @@ One of the basic requirments of OpenTelemetry spans is to contain start timestam We overcome this issue by analyzing the target binary and detecting all the return statements in the instrumented functions. We then place a uprobe at the end of each return statement. This uprobe invokes the eBPF code that collects the end timestamp. -### Goroutine tracking - -In order to combine spans of different instrumented libraries into a single trace, we need to track the goroutine ID every time our eBPF code is invoked. - -Goroutine tracking is also needed in order to correlate the end timestamp (collected via eBPF code at the end of function) with the data collected at the start of the function. - -In order to track goroutine IDs, there is a special eBPF instrumentation for the Go scheduler. This instrumentation is called goroutine-tracker. The goroutine-tracker maintains an eBPF map from thread ID to goroutine ID. - -Other instrumentations can get the current goroutine ID by reading an item from this map with key of the current thread ID. -The current thread ID can be obtained by calling `bpf_get_current_pid_tgid()` in the eBPF program. - ### Timestamp tracking eBPF programs can access the current timestamp by calling `bpf_ktime_get_ns()`. The value returned by this function is fetched from the `CLOCK_MONOTONIC` clock and represents the number of nanoseconds since the system boot time. diff --git a/go.mod b/go.mod index a3aa28a..90e21ba 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( go.opentelemetry.io/otel/trace v1.8.0 go.uber.org/zap v1.20.0 golang.org/x/arch v0.0.0-20210923205945-b76863e36670 - golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34 + golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a google.golang.org/grpc v1.46.2 ) @@ -22,6 +22,7 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.8.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.8.0 // indirect go.opentelemetry.io/proto/otlp v0.18.0 // indirect diff --git a/go.sum b/go.sum index 41e87d0..b22ec54 100644 --- a/go.sum +++ b/go.sum @@ -160,6 +160,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= @@ -319,6 +321,8 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34 h1:GkvMjFtXUmahfDtashnc1mnrCtuBVcwse5QV2lUk/tI= golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/include/alloc.h b/include/alloc.h new file mode 100644 index 0000000..0c8a69d --- /dev/null +++ b/include/alloc.h @@ -0,0 +1,70 @@ +#include "bpf_helpers.h" + +#define MAX_ENTRIES 50 + +// Injected in init +volatile const u32 total_cpus; +volatile const u64 start_addr; +volatile const u64 end_addr; + +struct { + __uint(type, BPF_MAP_TYPE_PERCPU_HASH); + __type(key, s32); + __type(value, u64); + __uint(max_entries, MAX_ENTRIES); + __uint(pinning, LIBBPF_PIN_BY_NAME); +} alloc_map SEC(".maps"); + +static __always_inline u64 get_area_start() { + s64 partition_size = (end_addr - start_addr) / total_cpus; + u32 current_cpu = bpf_get_smp_processor_id(); + s32 start_index = 0; + u64* start = (u64*) bpf_map_lookup_elem(&alloc_map, &start_index); + if (start == NULL || *start == 0) { + u64 current_start_addr = start_addr + (partition_size * current_cpu); + bpf_map_update_elem(&alloc_map, &start_index, ¤t_start_addr, BPF_ANY); + return current_start_addr; + } else { + return *start; + } +} + +static __always_inline u64 get_area_end(u64 start) { + s64 partition_size = (end_addr - start_addr) / total_cpus; + s32 end_index = 1; + u64* end = (u64*)bpf_map_lookup_elem(&alloc_map, &end_index); + if (end == NULL || *end == 0) { + u64 current_end_addr = start + partition_size; + bpf_map_update_elem(&alloc_map, &end_index, ¤t_end_addr, BPF_ANY); + return current_end_addr; + } else { + return *end; + } +} + +static __always_inline void* write_target_data(void* data, s32 size) { + if (!data || data == NULL) { + return NULL; + } + + u64 start = get_area_start(); + u64 end = get_area_end(start); + if (end - start < size) { + bpf_printk("reached end of CPU memory block, going to the start again"); + s32 start_index = 0; + bpf_map_delete_elem(&alloc_map, &start_index); + start = get_area_start(); + } + + void* target = (void*)start; + long success = bpf_probe_write_user(target, data, size); + if (success == 0) { + s32 start_index = 0; + u64 updated_start = start + size; + bpf_map_update_elem(&alloc_map, &start_index, &updated_start, BPF_ANY); + return target; + } else { + bpf_printk("failed to write to userspace, error code: %d, addr: %lx, size: %d", success, target, size); + return NULL; + } +} \ No newline at end of file diff --git a/include/go_context.h b/include/go_context.h new file mode 100644 index 0000000..9f1c18c --- /dev/null +++ b/include/go_context.h @@ -0,0 +1,20 @@ +#include "bpf_helpers.h" + +#define MAX_DISTANCE 10 + +static __always_inline void* find_context_in_map(void *ctx, void *context_map) { + void *data = ctx; + for (int i = 0; i < MAX_DISTANCE; i++) { + void* found_in_map = bpf_map_lookup_elem(context_map, &data); + if (found_in_map != NULL) { + return data; + } + + // We assume context.Context implementation containens Parent context.Context member + // Since the parent is also an interface, we need to read the data part of it + bpf_probe_read(&data, sizeof(data), data+8); + } + + bpf_printk("context %lx not found in context map", ctx); + return NULL; +} \ No newline at end of file diff --git a/include/go_types.h b/include/go_types.h new file mode 100644 index 0000000..c8f3e4f --- /dev/null +++ b/include/go_types.h @@ -0,0 +1,75 @@ +#include "alloc.h" +#include "bpf_helpers.h" + +#define MAX_REALLOCATION 400 + +struct go_string { + char* str; + s32 len; +}; + +struct go_slice { + void* array; + s32 len; + s32 cap; +}; + +struct go_slice_user_ptr { + void* array; + void* len; + void* cap; +}; + +struct go_iface { + void* tab; + void* data; +}; + +static __always_inline struct go_string write_user_go_string(char* str, u32 len) { + // Copy chars to userspace + char *addr = write_target_data((void*)str, len); + + // Build string struct in kernel space + struct go_string new_string = {}; + new_string.str = addr; + new_string.len = len; + + // Copy new string struct to userspace + write_target_data((void*)&new_string, sizeof(new_string)); + return new_string; +} + +static __always_inline void append_item_to_slice(struct go_slice *slice, void* new_item, s32 item_size, struct go_slice_user_ptr *slice_user_ptr, void* buff) { + if (slice->len < slice->cap) { + // Room available on current array + bpf_probe_write_user(slice->array+(item_size*slice->len), new_item, item_size); + } else { + // No room on current array - copy to new one of size item_size * (len + 1) + s32 alloc_size = item_size * slice->len; + s32 bounded_alloc_size = alloc_size > MAX_REALLOCATION ? MAX_REALLOCATION : (alloc_size < 1 ? 1 : alloc_size); + + // Get buffer + s32 index = 0; + void* map_buff = bpf_map_lookup_elem(buff, &index); + if (!map_buff) { + return; + } + + // Append to buffer + bpf_probe_read_user(map_buff, bounded_alloc_size, slice->array); + bpf_probe_read(map_buff+bounded_alloc_size, item_size, new_item); + void* new_array = write_target_data(map_buff, bounded_alloc_size+item_size); + + // Update array + slice->array = new_array; + long success = bpf_probe_write_user(slice_user_ptr->array, &slice->array, sizeof(slice->array)); + + // Update cap + slice->cap++; + success = bpf_probe_write_user(slice_user_ptr->cap, &slice->cap, sizeof(slice->cap)); + } + + // Update len + slice->len++; + long success = bpf_probe_write_user(slice_user_ptr->len, &slice->len, sizeof(slice->len)); +} \ No newline at end of file diff --git a/include/goroutines.h b/include/goroutines.h deleted file mode 100644 index e79a9fc..0000000 --- a/include/goroutines.h +++ /dev/null @@ -1,19 +0,0 @@ -#include "bpf_helpers.h" - -#define MAX_SYSTEM_THREADS 20 - -struct { - __uint(type, BPF_MAP_TYPE_HASH); - __type(key, u64); - __type(value, s64); - __uint(max_entries, MAX_SYSTEM_THREADS); - __uint(pinning, LIBBPF_PIN_BY_NAME); -} goroutines_map SEC(".maps"); - -s64 get_current_goroutine() { - u64 current_thread = bpf_get_current_pid_tgid(); - void* goid_ptr = bpf_map_lookup_elem(&goroutines_map, ¤t_thread); - s64 goid; - bpf_probe_read(&goid, sizeof(goid), goid_ptr); - return goid; -} \ No newline at end of file diff --git a/include/span_context.h b/include/span_context.h new file mode 100644 index 0000000..7d2c330 --- /dev/null +++ b/include/span_context.h @@ -0,0 +1,55 @@ +#include "utils.h" + +#define SPAN_CONTEXT_STRING_SIZE 55 +#define MAX_CONCURRENT_SPANS 100 + +struct span_context { + unsigned char TraceID[TRACE_ID_SIZE]; + unsigned char SpanID[SPAN_ID_SIZE]; +}; + +struct { + __uint(type, BPF_MAP_TYPE_HASH); + __type(key, void*); + __type(value, struct span_context); + __uint(max_entries, MAX_CONCURRENT_SPANS); + __uint(pinning, LIBBPF_PIN_BY_NAME); +} spans_in_progress SEC(".maps"); + +static __always_inline struct span_context generate_span_context() { + struct span_context context = {}; + generate_random_bytes(context.TraceID, TRACE_ID_SIZE); + generate_random_bytes(context.SpanID, SPAN_ID_SIZE); + return context; +} + +static __always_inline void span_context_to_w3c_string(struct span_context *ctx, char* buff) { + // W3C format: version (2 chars) - trace id (32 chars) - span id (16 chars) - sampled (2 chars) + char *out = buff; + + // Write version + *out++ = '0'; + *out++ = '0'; + *out++ = '-'; + + // Write trace id + bytes_to_hex_string(ctx->TraceID, TRACE_ID_SIZE, out); + out += TRACE_ID_STRING_SIZE; + *out++ = '-'; + + // Write span id + bytes_to_hex_string(ctx->SpanID, SPAN_ID_SIZE, out); + out += SPAN_ID_STRING_SIZE; + *out++ = '-'; + + // Write sampled + *out++ = '0'; + *out = '1'; +} + +static __always_inline void w3c_string_to_span_context(char *str, struct span_context *ctx) { + u32 trace_id_start_pos = 3; + u32 span_id_start_pod = 36; + hex_string_to_bytes(str+trace_id_start_pos, TRACE_ID_STRING_SIZE, ctx->TraceID); + hex_string_to_bytes(str+span_id_start_pod, SPAN_ID_STRING_SIZE, ctx->SpanID); +} \ No newline at end of file diff --git a/include/utils.h b/include/utils.h new file mode 100644 index 0000000..6566c5e --- /dev/null +++ b/include/utils.h @@ -0,0 +1,52 @@ +#include "bpf_helpers.h" + +#define TRACE_ID_SIZE 16 +#define TRACE_ID_STRING_SIZE 32 +#define SPAN_ID_SIZE 8 +#define SPAN_ID_STRING_SIZE 16 + +static __always_inline bool bpf_memcmp(char* s1, char* s2, s32 size) { + for (int i = 0; i < size; i++) { + if (s1[i] != s2[i]) { + return false; + } + } + + return true; +} + +static __always_inline void generate_random_bytes(unsigned char* buff, u32 size) { + for (int i = 0; i < (size / 4); i++) { + u32 random = bpf_get_prandom_u32(); + buff[(4 * i)] = (random >> 24) & 0xFF; + buff[(4 * i) + 1] = (random >> 16) & 0xFF; + buff[(4 * i) + 2] = (random >> 8) & 0xFF; + buff[(4 * i) + 3] = random & 0xFF; + } +} + +char hex[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; +static __always_inline void bytes_to_hex_string(unsigned char* pin, u32 size, char* out) { + char *pout = out; + int out_index = 0; + for(u32 i = 0; i < size; i++){ + *pout++ = hex[(*pin>>4)&0xF]; + *pout++ = hex[(*pin++)&0xF]; + } +} + +static __always_inline void hex_string_to_bytes(char* str, u32 size, unsigned char* out) { + for (int i = 0; i < (size / 2); i++) { + char ch0 = str[2 * i]; + char ch1 = str[2 * i + 1]; + u8 nib0 = (ch0 & 0xF) + (ch0 >> 6) | ((ch0 >> 3) & 0x8); + u8 nib1 = (ch1 & 0xF) + (ch1 >> 6) | ((ch1 >> 3) & 0x8); + out[i] = (nib0 << 4) | nib1; + } +} + +static __always_inline void copy_byte_arrays(unsigned char *src, unsigned char *dst, u32 size) { + for (int i = 0; i < size; i++) { + dst[i] = src[i]; + } +} \ No newline at end of file diff --git a/pkg/inject/injector.go b/pkg/inject/injector.go index 243d940..40eb7a6 100644 --- a/pkg/inject/injector.go +++ b/pkg/inject/injector.go @@ -6,6 +6,7 @@ import ( "github.com/cilium/ebpf" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/process" + "runtime" ) var ( @@ -14,8 +15,11 @@ var ( ) type Injector struct { - data *TrackedOffsets - isRegAbi bool + data *TrackedOffsets + isRegAbi bool + TotalCPUs uint32 + StartAddr uint64 + EndAddr uint64 } func New(target *process.TargetDetails) (*Injector, error) { @@ -26,8 +30,11 @@ func New(target *process.TargetDetails) (*Injector, error) { } return &Injector{ - data: &offsets, - isRegAbi: target.IsRegistersABI(), + data: &offsets, + isRegAbi: target.IsRegistersABI(), + TotalCPUs: uint32(runtime.NumCPU()), + StartAddr: target.AllocationDetails.Addr, + EndAddr: target.AllocationDetails.EndAddr, }, nil } @@ -39,7 +46,7 @@ type InjectStructField struct { Field string } -func (i *Injector) Inject(loadBpf loadBpfFunc, library string, libVersion string, fields []*InjectStructField) (*ebpf.CollectionSpec, error) { +func (i *Injector) Inject(loadBpf loadBpfFunc, library string, libVersion string, fields []*InjectStructField, initAlloc bool) (*ebpf.CollectionSpec, error) { spec, err := loadBpf() if err != nil { return nil, err @@ -56,7 +63,7 @@ func (i *Injector) Inject(loadBpf loadBpfFunc, library string, libVersion string } } - i.addCommonInjections(injectedVars) + i.addCommonInjections(injectedVars, initAlloc) log.Logger.V(0).Info("Injecting variables", "vars", injectedVars) if len(injectedVars) > 0 { err = spec.RewriteConstants(injectedVars) @@ -68,8 +75,13 @@ func (i *Injector) Inject(loadBpf loadBpfFunc, library string, libVersion string return spec, nil } -func (i *Injector) addCommonInjections(varsMap map[string]interface{}) { +func (i *Injector) addCommonInjections(varsMap map[string]interface{}, initAlloc bool) { varsMap["is_registers_abi"] = i.isRegAbi + if initAlloc { + varsMap["total_cpus"] = i.TotalCPUs + varsMap["start_addr"] = i.StartAddr + varsMap["end_addr"] = i.EndAddr + } } func (i *Injector) getFieldOffset(libName string, libVersion string, structName string, fieldName string) (uint64, bool) { diff --git a/pkg/inject/offset_results.json b/pkg/inject/offset_results.json index 6ccdff6..ec25867 100755 --- a/pkg/inject/offset_results.json +++ b/pkg/inject/offset_results.json @@ -4,1594 +4,4530 @@ "name": "go", "data_members": [ { - "struct": "runtime.g", - "field_name": "goid", + "struct": "net/http.Request", + "field_name": "RemoteAddr", "offsets": [ { - "offset": 152, + "offset": 176, + "version": "1.19.1" + }, + { + "offset": 176, + "version": "1.19" + }, + { + "offset": 176, + "version": "1.18.6" + }, + { + "offset": 176, + "version": "1.18.5" + }, + { + "offset": 176, + "version": "1.18.4" + }, + { + "offset": 176, + "version": "1.18.3" + }, + { + "offset": 176, "version": "1.18.2" }, { - "offset": 152, + "offset": 176, "version": "1.18.1" }, { - "offset": 152, + "offset": 176, "version": "1.18" }, { - "offset": 152, + "offset": 176, + "version": "1.17.13" + }, + { + "offset": 176, + "version": "1.17.12" + }, + { + "offset": 176, + "version": "1.17.11" + }, + { + "offset": 176, "version": "1.17.10" }, { - "offset": 152, + "offset": 176, "version": "1.17.9" }, { - "offset": 152, + "offset": 176, "version": "1.17.8" }, { - "offset": 152, + "offset": 176, "version": "1.17.7" }, { - "offset": 152, + "offset": 176, "version": "1.17.6" }, { - "offset": 152, + "offset": 176, "version": "1.17.5" }, { - "offset": 152, + "offset": 176, "version": "1.17.4" }, { - "offset": 152, + "offset": 176, "version": "1.17.3" }, { - "offset": 152, + "offset": 176, "version": "1.17.2" }, { - "offset": 152, + "offset": 176, "version": "1.17.1" }, { - "offset": 152, + "offset": 176, "version": "1.17" }, { - "offset": 152, + "offset": 176, "version": "1.16.15" }, { - "offset": 152, + "offset": 176, "version": "1.16.14" }, { - "offset": 152, + "offset": 176, "version": "1.16.13" }, { - "offset": 152, + "offset": 176, "version": "1.16.12" }, { - "offset": 152, + "offset": 176, "version": "1.16.11" }, { - "offset": 152, + "offset": 176, "version": "1.16.10" }, { - "offset": 152, + "offset": 176, "version": "1.16.9" }, { - "offset": 152, + "offset": 176, "version": "1.16.8" }, { - "offset": 152, + "offset": 176, "version": "1.16.7" }, { - "offset": 152, + "offset": 176, "version": "1.16.6" }, { - "offset": 152, + "offset": 176, "version": "1.16.5" }, { - "offset": 152, + "offset": 176, "version": "1.16.4" }, { - "offset": 152, + "offset": 176, "version": "1.16.3" }, { - "offset": 152, + "offset": 176, "version": "1.16.2" }, { - "offset": 152, + "offset": 176, "version": "1.16.1" }, { - "offset": 152, + "offset": 176, "version": "1.16" }, { - "offset": 152, + "offset": 176, "version": "1.15.15" }, { - "offset": 152, + "offset": 176, "version": "1.15.14" }, { - "offset": 152, + "offset": 176, "version": "1.15.13" }, { - "offset": 152, + "offset": 176, "version": "1.15.12" }, { - "offset": 152, + "offset": 176, "version": "1.15.11" }, { - "offset": 152, + "offset": 176, "version": "1.15.10" }, { - "offset": 152, + "offset": 176, "version": "1.15.9" }, { - "offset": 152, + "offset": 176, "version": "1.15.8" }, { - "offset": 152, + "offset": 176, "version": "1.15.7" }, { - "offset": 152, + "offset": 176, "version": "1.15.6" }, { - "offset": 152, + "offset": 176, "version": "1.15.5" }, { - "offset": 152, + "offset": 176, "version": "1.15.4" }, { - "offset": 152, + "offset": 176, "version": "1.15.3" }, { - "offset": 152, + "offset": 176, "version": "1.15.2" }, { - "offset": 152, + "offset": 176, "version": "1.15.1" }, { - "offset": 152, + "offset": 176, "version": "1.15" }, { - "offset": 152, + "offset": 176, "version": "1.14.15" }, { - "offset": 152, + "offset": 176, "version": "1.14.14" }, { - "offset": 152, + "offset": 176, "version": "1.14.13" }, { - "offset": 152, + "offset": 176, "version": "1.14.12" }, { - "offset": 152, + "offset": 176, "version": "1.14.11" }, { - "offset": 152, + "offset": 176, "version": "1.14.10" }, { - "offset": 152, + "offset": 176, "version": "1.14.9" }, { - "offset": 152, + "offset": 176, "version": "1.14.8" }, { - "offset": 152, + "offset": 176, "version": "1.14.7" }, { - "offset": 152, + "offset": 176, "version": "1.14.6" }, { - "offset": 152, + "offset": 176, "version": "1.14.5" }, { - "offset": 152, + "offset": 176, "version": "1.14.4" }, { - "offset": 152, + "offset": 176, "version": "1.14.3" }, { - "offset": 152, + "offset": 176, "version": "1.14.2" }, { - "offset": 152, + "offset": 176, "version": "1.14.1" }, { - "offset": 152, + "offset": 176, "version": "1.14" }, { - "offset": 152, + "offset": 176, "version": "1.13.15" }, { - "offset": 152, + "offset": 176, "version": "1.13.14" }, { - "offset": 152, + "offset": 176, "version": "1.13.13" }, { - "offset": 152, + "offset": 176, "version": "1.13.12" }, { - "offset": 152, + "offset": 176, "version": "1.13.11" }, { - "offset": 152, + "offset": 176, "version": "1.13.10" }, { - "offset": 152, + "offset": 176, "version": "1.13.9" }, { - "offset": 152, + "offset": 176, "version": "1.13.8" }, { - "offset": 152, + "offset": 176, "version": "1.13.7" }, { - "offset": 152, + "offset": 176, "version": "1.13.6" }, { - "offset": 152, + "offset": 176, "version": "1.13.5" }, { - "offset": 152, + "offset": 176, "version": "1.13.4" }, { - "offset": 152, + "offset": 176, "version": "1.13.3" }, { - "offset": 152, + "offset": 176, "version": "1.13.2" }, { - "offset": 152, + "offset": 176, "version": "1.13.1" }, { - "offset": 152, + "offset": 176, "version": "1.13" }, { - "offset": 152, + "offset": 176, "version": "1.12.17" }, { - "offset": 152, + "offset": 176, "version": "1.12.16" }, { - "offset": 152, + "offset": 176, "version": "1.12.15" }, { - "offset": 152, + "offset": 176, "version": "1.12.14" }, { - "offset": 152, + "offset": 176, "version": "1.12.13" }, { - "offset": 152, + "offset": 176, "version": "1.12.12" }, { - "offset": 152, + "offset": 176, "version": "1.12.11" }, { - "offset": 152, + "offset": 176, "version": "1.12.10" }, { - "offset": 152, + "offset": 176, "version": "1.12.9" }, { - "offset": 152, + "offset": 176, "version": "1.12.8" }, { - "offset": 152, + "offset": 176, "version": "1.12.7" }, { - "offset": 152, + "offset": 176, "version": "1.12.6" }, { - "offset": 152, + "offset": 176, "version": "1.12.5" }, { - "offset": 152, + "offset": 176, "version": "1.12.4" }, { - "offset": 152, + "offset": 176, "version": "1.12.3" }, { - "offset": 152, + "offset": 176, "version": "1.12.2" }, { - "offset": 152, + "offset": 176, "version": "1.12.1" }, { - "offset": 152, + "offset": 176, "version": "1.12" } ] }, { "struct": "net/http.Request", - "field_name": "Method", + "field_name": "ctx", "offsets": [ { - "offset": 0, + "offset": 232, + "version": "1.19.1" + }, + { + "offset": 232, + "version": "1.19" + }, + { + "offset": 232, + "version": "1.18.6" + }, + { + "offset": 232, + "version": "1.18.5" + }, + { + "offset": 232, + "version": "1.18.4" + }, + { + "offset": 232, + "version": "1.18.3" + }, + { + "offset": 232, "version": "1.18.2" }, { - "offset": 0, + "offset": 232, "version": "1.18.1" }, { - "offset": 0, + "offset": 232, "version": "1.18" }, { - "offset": 0, + "offset": 232, + "version": "1.17.13" + }, + { + "offset": 232, + "version": "1.17.12" + }, + { + "offset": 232, + "version": "1.17.11" + }, + { + "offset": 232, "version": "1.17.10" }, { - "offset": 0, + "offset": 232, "version": "1.17.9" }, { - "offset": 0, + "offset": 232, "version": "1.17.8" }, { - "offset": 0, + "offset": 232, "version": "1.17.7" }, { - "offset": 0, + "offset": 232, "version": "1.17.6" }, { - "offset": 0, + "offset": 232, "version": "1.17.5" }, { - "offset": 0, + "offset": 232, "version": "1.17.4" }, { - "offset": 0, + "offset": 232, "version": "1.17.3" }, { - "offset": 0, + "offset": 232, "version": "1.17.2" }, { - "offset": 0, + "offset": 232, "version": "1.17.1" }, { - "offset": 0, + "offset": 232, "version": "1.17" }, { - "offset": 0, + "offset": 232, "version": "1.16.15" }, { - "offset": 0, + "offset": 232, "version": "1.16.14" }, { - "offset": 0, + "offset": 232, "version": "1.16.13" }, { - "offset": 0, + "offset": 232, "version": "1.16.12" }, { - "offset": 0, + "offset": 232, "version": "1.16.11" }, { - "offset": 0, + "offset": 232, "version": "1.16.10" }, { - "offset": 0, + "offset": 232, "version": "1.16.9" }, { - "offset": 0, + "offset": 232, "version": "1.16.8" }, { - "offset": 0, + "offset": 232, "version": "1.16.7" }, { - "offset": 0, + "offset": 232, "version": "1.16.6" }, { - "offset": 0, + "offset": 232, "version": "1.16.5" }, { - "offset": 0, + "offset": 232, "version": "1.16.4" }, { - "offset": 0, + "offset": 232, "version": "1.16.3" }, { - "offset": 0, + "offset": 232, "version": "1.16.2" }, { - "offset": 0, + "offset": 232, "version": "1.16.1" }, { - "offset": 0, + "offset": 232, "version": "1.16" }, { - "offset": 0, + "offset": 232, "version": "1.15.15" }, { - "offset": 0, + "offset": 232, "version": "1.15.14" }, { - "offset": 0, + "offset": 232, "version": "1.15.13" }, { - "offset": 0, + "offset": 232, "version": "1.15.12" }, { - "offset": 0, + "offset": 232, "version": "1.15.11" }, { - "offset": 0, + "offset": 232, "version": "1.15.10" }, { - "offset": 0, + "offset": 232, "version": "1.15.9" }, { - "offset": 0, + "offset": 232, "version": "1.15.8" }, { - "offset": 0, + "offset": 232, "version": "1.15.7" }, { - "offset": 0, + "offset": 232, "version": "1.15.6" }, { - "offset": 0, + "offset": 232, "version": "1.15.5" }, { - "offset": 0, + "offset": 232, "version": "1.15.4" }, { - "offset": 0, + "offset": 232, "version": "1.15.3" }, { - "offset": 0, + "offset": 232, "version": "1.15.2" }, { - "offset": 0, + "offset": 232, "version": "1.15.1" }, { - "offset": 0, + "offset": 232, "version": "1.15" }, { - "offset": 0, + "offset": 232, "version": "1.14.15" }, { - "offset": 0, + "offset": 232, "version": "1.14.14" }, { - "offset": 0, + "offset": 232, "version": "1.14.13" }, { - "offset": 0, + "offset": 232, "version": "1.14.12" }, { - "offset": 0, + "offset": 232, "version": "1.14.11" }, { - "offset": 0, + "offset": 232, "version": "1.14.10" }, { - "offset": 0, + "offset": 232, "version": "1.14.9" }, { - "offset": 0, + "offset": 232, "version": "1.14.8" }, { - "offset": 0, + "offset": 232, "version": "1.14.7" }, { - "offset": 0, + "offset": 232, "version": "1.14.6" }, { - "offset": 0, + "offset": 232, "version": "1.14.5" }, { - "offset": 0, + "offset": 232, "version": "1.14.4" }, { - "offset": 0, + "offset": 232, "version": "1.14.3" }, { - "offset": 0, + "offset": 232, "version": "1.14.2" }, { - "offset": 0, + "offset": 232, "version": "1.14.1" }, { - "offset": 0, + "offset": 232, "version": "1.14" }, { - "offset": 0, + "offset": 232, "version": "1.13.15" }, { - "offset": 0, + "offset": 232, "version": "1.13.14" }, { - "offset": 0, + "offset": 232, "version": "1.13.13" }, { - "offset": 0, + "offset": 232, "version": "1.13.12" }, { - "offset": 0, + "offset": 232, "version": "1.13.11" }, { - "offset": 0, + "offset": 232, "version": "1.13.10" }, { - "offset": 0, + "offset": 232, "version": "1.13.9" }, { - "offset": 0, + "offset": 232, "version": "1.13.8" }, { - "offset": 0, + "offset": 232, "version": "1.13.7" }, { - "offset": 0, + "offset": 232, "version": "1.13.6" }, { - "offset": 0, + "offset": 232, "version": "1.13.5" }, { - "offset": 0, + "offset": 232, "version": "1.13.4" }, { - "offset": 0, + "offset": 232, "version": "1.13.3" }, { - "offset": 0, + "offset": 232, "version": "1.13.2" }, { - "offset": 0, + "offset": 232, "version": "1.13.1" }, { - "offset": 0, + "offset": 232, "version": "1.13" }, { - "offset": 0, + "offset": 232, "version": "1.12.17" }, { - "offset": 0, + "offset": 232, "version": "1.12.16" }, { - "offset": 0, + "offset": 232, "version": "1.12.15" }, { - "offset": 0, + "offset": 232, "version": "1.12.14" }, { - "offset": 0, + "offset": 232, "version": "1.12.13" }, { - "offset": 0, + "offset": 232, "version": "1.12.12" }, { - "offset": 0, + "offset": 232, "version": "1.12.11" }, { - "offset": 0, + "offset": 232, "version": "1.12.10" }, { - "offset": 0, + "offset": 232, "version": "1.12.9" }, { - "offset": 0, + "offset": 232, "version": "1.12.8" }, { - "offset": 0, + "offset": 232, "version": "1.12.7" }, { - "offset": 0, + "offset": 232, "version": "1.12.6" }, { - "offset": 0, + "offset": 232, "version": "1.12.5" }, { - "offset": 0, + "offset": 232, "version": "1.12.4" }, { - "offset": 0, + "offset": 232, "version": "1.12.3" }, { - "offset": 0, + "offset": 232, "version": "1.12.2" }, { - "offset": 0, + "offset": 232, "version": "1.12.1" }, { - "offset": 0, + "offset": 232, "version": "1.12" } ] }, { - "struct": "net/http.Request", - "field_name": "URL", + "struct": "net/url.URL", + "field_name": "Path", "offsets": [ { - "offset": 16, - "version": "1.18.2" + "offset": 56, + "version": "1.19.1" }, { - "offset": 16, - "version": "1.18.1" + "offset": 56, + "version": "1.19" }, { - "offset": 16, - "version": "1.18" + "offset": 56, + "version": "1.18.6" }, { - "offset": 16, - "version": "1.17.10" + "offset": 56, + "version": "1.18.5" }, { - "offset": 16, - "version": "1.17.9" + "offset": 56, + "version": "1.18.4" }, { - "offset": 16, - "version": "1.17.8" + "offset": 56, + "version": "1.18.3" }, { - "offset": 16, - "version": "1.17.7" + "offset": 56, + "version": "1.18.2" }, { - "offset": 16, + "offset": 56, + "version": "1.18.1" + }, + { + "offset": 56, + "version": "1.18" + }, + { + "offset": 56, + "version": "1.17.13" + }, + { + "offset": 56, + "version": "1.17.12" + }, + { + "offset": 56, + "version": "1.17.11" + }, + { + "offset": 56, + "version": "1.17.10" + }, + { + "offset": 56, + "version": "1.17.9" + }, + { + "offset": 56, + "version": "1.17.8" + }, + { + "offset": 56, + "version": "1.17.7" + }, + { + "offset": 56, "version": "1.17.6" }, { - "offset": 16, + "offset": 56, "version": "1.17.5" }, { - "offset": 16, + "offset": 56, "version": "1.17.4" }, { - "offset": 16, + "offset": 56, "version": "1.17.3" }, { - "offset": 16, + "offset": 56, "version": "1.17.2" }, { - "offset": 16, + "offset": 56, "version": "1.17.1" }, { - "offset": 16, + "offset": 56, "version": "1.17" }, { - "offset": 16, + "offset": 56, "version": "1.16.15" }, { - "offset": 16, + "offset": 56, "version": "1.16.14" }, { - "offset": 16, + "offset": 56, "version": "1.16.13" }, { - "offset": 16, + "offset": 56, "version": "1.16.12" }, { - "offset": 16, + "offset": 56, "version": "1.16.11" }, { - "offset": 16, + "offset": 56, "version": "1.16.10" }, { - "offset": 16, + "offset": 56, "version": "1.16.9" }, { - "offset": 16, + "offset": 56, "version": "1.16.8" }, { - "offset": 16, + "offset": 56, "version": "1.16.7" }, { - "offset": 16, + "offset": 56, "version": "1.16.6" }, { - "offset": 16, + "offset": 56, "version": "1.16.5" }, { - "offset": 16, + "offset": 56, "version": "1.16.4" }, { - "offset": 16, + "offset": 56, "version": "1.16.3" }, { - "offset": 16, + "offset": 56, "version": "1.16.2" }, { - "offset": 16, + "offset": 56, "version": "1.16.1" }, { - "offset": 16, + "offset": 56, "version": "1.16" }, { - "offset": 16, + "offset": 56, "version": "1.15.15" }, { - "offset": 16, + "offset": 56, "version": "1.15.14" }, { - "offset": 16, + "offset": 56, "version": "1.15.13" }, { - "offset": 16, + "offset": 56, "version": "1.15.12" }, { - "offset": 16, + "offset": 56, "version": "1.15.11" }, { - "offset": 16, + "offset": 56, "version": "1.15.10" }, { - "offset": 16, + "offset": 56, "version": "1.15.9" }, { - "offset": 16, + "offset": 56, "version": "1.15.8" }, { - "offset": 16, + "offset": 56, "version": "1.15.7" }, { - "offset": 16, + "offset": 56, "version": "1.15.6" }, { - "offset": 16, + "offset": 56, "version": "1.15.5" }, { - "offset": 16, + "offset": 56, "version": "1.15.4" }, { - "offset": 16, + "offset": 56, "version": "1.15.3" }, { - "offset": 16, + "offset": 56, "version": "1.15.2" }, { - "offset": 16, + "offset": 56, "version": "1.15.1" }, { - "offset": 16, + "offset": 56, "version": "1.15" }, { - "offset": 16, + "offset": 56, "version": "1.14.15" }, { - "offset": 16, + "offset": 56, "version": "1.14.14" }, { - "offset": 16, + "offset": 56, "version": "1.14.13" }, { - "offset": 16, + "offset": 56, "version": "1.14.12" }, { - "offset": 16, + "offset": 56, "version": "1.14.11" }, { - "offset": 16, + "offset": 56, "version": "1.14.10" }, { - "offset": 16, + "offset": 56, "version": "1.14.9" }, { - "offset": 16, + "offset": 56, "version": "1.14.8" }, { - "offset": 16, + "offset": 56, "version": "1.14.7" }, { - "offset": 16, + "offset": 56, "version": "1.14.6" }, { - "offset": 16, + "offset": 56, "version": "1.14.5" }, { - "offset": 16, + "offset": 56, "version": "1.14.4" }, { - "offset": 16, + "offset": 56, "version": "1.14.3" }, { - "offset": 16, + "offset": 56, "version": "1.14.2" }, { - "offset": 16, + "offset": 56, "version": "1.14.1" }, { - "offset": 16, + "offset": 56, "version": "1.14" }, { - "offset": 16, + "offset": 56, "version": "1.13.15" }, { - "offset": 16, + "offset": 56, "version": "1.13.14" }, { - "offset": 16, + "offset": 56, "version": "1.13.13" }, { - "offset": 16, + "offset": 56, "version": "1.13.12" }, { - "offset": 16, + "offset": 56, "version": "1.13.11" }, { - "offset": 16, + "offset": 56, "version": "1.13.10" }, { - "offset": 16, + "offset": 56, "version": "1.13.9" }, { - "offset": 16, + "offset": 56, "version": "1.13.8" }, { - "offset": 16, + "offset": 56, "version": "1.13.7" }, { - "offset": 16, + "offset": 56, "version": "1.13.6" }, { - "offset": 16, + "offset": 56, "version": "1.13.5" }, { - "offset": 16, + "offset": 56, "version": "1.13.4" }, { - "offset": 16, + "offset": 56, "version": "1.13.3" }, { - "offset": 16, + "offset": 56, "version": "1.13.2" }, { - "offset": 16, + "offset": 56, "version": "1.13.1" }, { - "offset": 16, + "offset": 56, "version": "1.13" }, { - "offset": 16, + "offset": 56, "version": "1.12.17" }, { - "offset": 16, + "offset": 56, "version": "1.12.16" }, { - "offset": 16, + "offset": 56, "version": "1.12.15" }, { - "offset": 16, + "offset": 56, "version": "1.12.14" }, { - "offset": 16, + "offset": 56, "version": "1.12.13" }, { - "offset": 16, + "offset": 56, "version": "1.12.12" }, { - "offset": 16, + "offset": 56, "version": "1.12.11" }, { - "offset": 16, + "offset": 56, "version": "1.12.10" }, { - "offset": 16, + "offset": 56, "version": "1.12.9" }, { - "offset": 16, + "offset": 56, "version": "1.12.8" }, { - "offset": 16, + "offset": 56, "version": "1.12.7" }, { - "offset": 16, + "offset": 56, "version": "1.12.6" }, { - "offset": 16, + "offset": 56, "version": "1.12.5" }, { - "offset": 16, + "offset": 56, "version": "1.12.4" }, { - "offset": 16, + "offset": 56, "version": "1.12.3" }, { - "offset": 16, + "offset": 56, "version": "1.12.2" }, { - "offset": 16, + "offset": 56, "version": "1.12.1" }, { - "offset": 16, + "offset": 56, "version": "1.12" } ] }, { - "struct": "net/url.URL", - "field_name": "Path", + "struct": "runtime.g", + "field_name": "goid", "offsets": [ { - "offset": 56, - "version": "1.18.2" + "offset": 152, + "version": "1.19.1" }, { - "offset": 56, - "version": "1.18.1" + "offset": 152, + "version": "1.19" }, { - "offset": 56, - "version": "1.18" + "offset": 152, + "version": "1.18.6" }, { - "offset": 56, - "version": "1.17.10" + "offset": 152, + "version": "1.18.5" }, { - "offset": 56, - "version": "1.17.9" + "offset": 152, + "version": "1.18.4" }, { - "offset": 56, - "version": "1.17.8" + "offset": 152, + "version": "1.18.3" }, { - "offset": 56, - "version": "1.17.7" + "offset": 152, + "version": "1.18.2" }, { - "offset": 56, - "version": "1.17.6" + "offset": 152, + "version": "1.18.1" }, { - "offset": 56, - "version": "1.17.5" + "offset": 152, + "version": "1.18" }, { - "offset": 56, - "version": "1.17.4" + "offset": 152, + "version": "1.17.13" }, { - "offset": 56, - "version": "1.17.3" + "offset": 152, + "version": "1.17.12" }, { - "offset": 56, - "version": "1.17.2" + "offset": 152, + "version": "1.17.11" }, { - "offset": 56, + "offset": 152, + "version": "1.17.10" + }, + { + "offset": 152, + "version": "1.17.9" + }, + { + "offset": 152, + "version": "1.17.8" + }, + { + "offset": 152, + "version": "1.17.7" + }, + { + "offset": 152, + "version": "1.17.6" + }, + { + "offset": 152, + "version": "1.17.5" + }, + { + "offset": 152, + "version": "1.17.4" + }, + { + "offset": 152, + "version": "1.17.3" + }, + { + "offset": 152, + "version": "1.17.2" + }, + { + "offset": 152, "version": "1.17.1" }, { - "offset": 56, + "offset": 152, "version": "1.17" }, { - "offset": 56, + "offset": 152, "version": "1.16.15" }, { - "offset": 56, + "offset": 152, "version": "1.16.14" }, { - "offset": 56, + "offset": 152, "version": "1.16.13" }, { - "offset": 56, + "offset": 152, "version": "1.16.12" }, { - "offset": 56, + "offset": 152, "version": "1.16.11" }, { - "offset": 56, + "offset": 152, "version": "1.16.10" }, { - "offset": 56, + "offset": 152, "version": "1.16.9" }, { - "offset": 56, + "offset": 152, "version": "1.16.8" }, { - "offset": 56, - "version": "1.16.7" + "offset": 152, + "version": "1.16.7" + }, + { + "offset": 152, + "version": "1.16.6" + }, + { + "offset": 152, + "version": "1.16.5" + }, + { + "offset": 152, + "version": "1.16.4" + }, + { + "offset": 152, + "version": "1.16.3" + }, + { + "offset": 152, + "version": "1.16.2" + }, + { + "offset": 152, + "version": "1.16.1" + }, + { + "offset": 152, + "version": "1.16" + }, + { + "offset": 152, + "version": "1.15.15" + }, + { + "offset": 152, + "version": "1.15.14" + }, + { + "offset": 152, + "version": "1.15.13" + }, + { + "offset": 152, + "version": "1.15.12" + }, + { + "offset": 152, + "version": "1.15.11" + }, + { + "offset": 152, + "version": "1.15.10" + }, + { + "offset": 152, + "version": "1.15.9" + }, + { + "offset": 152, + "version": "1.15.8" + }, + { + "offset": 152, + "version": "1.15.7" + }, + { + "offset": 152, + "version": "1.15.6" + }, + { + "offset": 152, + "version": "1.15.5" + }, + { + "offset": 152, + "version": "1.15.4" + }, + { + "offset": 152, + "version": "1.15.3" + }, + { + "offset": 152, + "version": "1.15.2" + }, + { + "offset": 152, + "version": "1.15.1" + }, + { + "offset": 152, + "version": "1.15" + }, + { + "offset": 152, + "version": "1.14.15" + }, + { + "offset": 152, + "version": "1.14.14" + }, + { + "offset": 152, + "version": "1.14.13" + }, + { + "offset": 152, + "version": "1.14.12" + }, + { + "offset": 152, + "version": "1.14.11" + }, + { + "offset": 152, + "version": "1.14.10" + }, + { + "offset": 152, + "version": "1.14.9" + }, + { + "offset": 152, + "version": "1.14.8" + }, + { + "offset": 152, + "version": "1.14.7" + }, + { + "offset": 152, + "version": "1.14.6" + }, + { + "offset": 152, + "version": "1.14.5" + }, + { + "offset": 152, + "version": "1.14.4" + }, + { + "offset": 152, + "version": "1.14.3" + }, + { + "offset": 152, + "version": "1.14.2" + }, + { + "offset": 152, + "version": "1.14.1" + }, + { + "offset": 152, + "version": "1.14" + }, + { + "offset": 152, + "version": "1.13.15" + }, + { + "offset": 152, + "version": "1.13.14" + }, + { + "offset": 152, + "version": "1.13.13" + }, + { + "offset": 152, + "version": "1.13.12" + }, + { + "offset": 152, + "version": "1.13.11" + }, + { + "offset": 152, + "version": "1.13.10" + }, + { + "offset": 152, + "version": "1.13.9" + }, + { + "offset": 152, + "version": "1.13.8" + }, + { + "offset": 152, + "version": "1.13.7" + }, + { + "offset": 152, + "version": "1.13.6" + }, + { + "offset": 152, + "version": "1.13.5" + }, + { + "offset": 152, + "version": "1.13.4" + }, + { + "offset": 152, + "version": "1.13.3" + }, + { + "offset": 152, + "version": "1.13.2" + }, + { + "offset": 152, + "version": "1.13.1" + }, + { + "offset": 152, + "version": "1.13" + }, + { + "offset": 152, + "version": "1.12.17" + }, + { + "offset": 152, + "version": "1.12.16" + }, + { + "offset": 152, + "version": "1.12.15" + }, + { + "offset": 152, + "version": "1.12.14" + }, + { + "offset": 152, + "version": "1.12.13" + }, + { + "offset": 152, + "version": "1.12.12" + }, + { + "offset": 152, + "version": "1.12.11" + }, + { + "offset": 152, + "version": "1.12.10" + }, + { + "offset": 152, + "version": "1.12.9" + }, + { + "offset": 152, + "version": "1.12.8" + }, + { + "offset": 152, + "version": "1.12.7" + }, + { + "offset": 152, + "version": "1.12.6" + }, + { + "offset": 152, + "version": "1.12.5" + }, + { + "offset": 152, + "version": "1.12.4" + }, + { + "offset": 152, + "version": "1.12.3" + }, + { + "offset": 152, + "version": "1.12.2" + }, + { + "offset": 152, + "version": "1.12.1" + }, + { + "offset": 152, + "version": "1.12" + } + ] + }, + { + "struct": "net/http.Request", + "field_name": "Method", + "offsets": [ + { + "offset": 0, + "version": "1.19.1" + }, + { + "offset": 0, + "version": "1.19" + }, + { + "offset": 0, + "version": "1.18.6" + }, + { + "offset": 0, + "version": "1.18.5" + }, + { + "offset": 0, + "version": "1.18.4" + }, + { + "offset": 0, + "version": "1.18.3" + }, + { + "offset": 0, + "version": "1.18.2" + }, + { + "offset": 0, + "version": "1.18.1" + }, + { + "offset": 0, + "version": "1.18" + }, + { + "offset": 0, + "version": "1.17.13" + }, + { + "offset": 0, + "version": "1.17.12" + }, + { + "offset": 0, + "version": "1.17.11" + }, + { + "offset": 0, + "version": "1.17.10" + }, + { + "offset": 0, + "version": "1.17.9" + }, + { + "offset": 0, + "version": "1.17.8" + }, + { + "offset": 0, + "version": "1.17.7" + }, + { + "offset": 0, + "version": "1.17.6" + }, + { + "offset": 0, + "version": "1.17.5" + }, + { + "offset": 0, + "version": "1.17.4" + }, + { + "offset": 0, + "version": "1.17.3" + }, + { + "offset": 0, + "version": "1.17.2" + }, + { + "offset": 0, + "version": "1.17.1" + }, + { + "offset": 0, + "version": "1.17" + }, + { + "offset": 0, + "version": "1.16.15" + }, + { + "offset": 0, + "version": "1.16.14" + }, + { + "offset": 0, + "version": "1.16.13" + }, + { + "offset": 0, + "version": "1.16.12" + }, + { + "offset": 0, + "version": "1.16.11" + }, + { + "offset": 0, + "version": "1.16.10" + }, + { + "offset": 0, + "version": "1.16.9" + }, + { + "offset": 0, + "version": "1.16.8" + }, + { + "offset": 0, + "version": "1.16.7" + }, + { + "offset": 0, + "version": "1.16.6" + }, + { + "offset": 0, + "version": "1.16.5" + }, + { + "offset": 0, + "version": "1.16.4" + }, + { + "offset": 0, + "version": "1.16.3" + }, + { + "offset": 0, + "version": "1.16.2" + }, + { + "offset": 0, + "version": "1.16.1" + }, + { + "offset": 0, + "version": "1.16" + }, + { + "offset": 0, + "version": "1.15.15" + }, + { + "offset": 0, + "version": "1.15.14" + }, + { + "offset": 0, + "version": "1.15.13" + }, + { + "offset": 0, + "version": "1.15.12" + }, + { + "offset": 0, + "version": "1.15.11" + }, + { + "offset": 0, + "version": "1.15.10" + }, + { + "offset": 0, + "version": "1.15.9" + }, + { + "offset": 0, + "version": "1.15.8" + }, + { + "offset": 0, + "version": "1.15.7" + }, + { + "offset": 0, + "version": "1.15.6" + }, + { + "offset": 0, + "version": "1.15.5" + }, + { + "offset": 0, + "version": "1.15.4" + }, + { + "offset": 0, + "version": "1.15.3" + }, + { + "offset": 0, + "version": "1.15.2" + }, + { + "offset": 0, + "version": "1.15.1" + }, + { + "offset": 0, + "version": "1.15" + }, + { + "offset": 0, + "version": "1.14.15" + }, + { + "offset": 0, + "version": "1.14.14" + }, + { + "offset": 0, + "version": "1.14.13" + }, + { + "offset": 0, + "version": "1.14.12" + }, + { + "offset": 0, + "version": "1.14.11" + }, + { + "offset": 0, + "version": "1.14.10" + }, + { + "offset": 0, + "version": "1.14.9" + }, + { + "offset": 0, + "version": "1.14.8" + }, + { + "offset": 0, + "version": "1.14.7" + }, + { + "offset": 0, + "version": "1.14.6" + }, + { + "offset": 0, + "version": "1.14.5" + }, + { + "offset": 0, + "version": "1.14.4" + }, + { + "offset": 0, + "version": "1.14.3" + }, + { + "offset": 0, + "version": "1.14.2" + }, + { + "offset": 0, + "version": "1.14.1" + }, + { + "offset": 0, + "version": "1.14" + }, + { + "offset": 0, + "version": "1.13.15" + }, + { + "offset": 0, + "version": "1.13.14" + }, + { + "offset": 0, + "version": "1.13.13" + }, + { + "offset": 0, + "version": "1.13.12" + }, + { + "offset": 0, + "version": "1.13.11" + }, + { + "offset": 0, + "version": "1.13.10" + }, + { + "offset": 0, + "version": "1.13.9" + }, + { + "offset": 0, + "version": "1.13.8" + }, + { + "offset": 0, + "version": "1.13.7" + }, + { + "offset": 0, + "version": "1.13.6" + }, + { + "offset": 0, + "version": "1.13.5" + }, + { + "offset": 0, + "version": "1.13.4" + }, + { + "offset": 0, + "version": "1.13.3" + }, + { + "offset": 0, + "version": "1.13.2" + }, + { + "offset": 0, + "version": "1.13.1" + }, + { + "offset": 0, + "version": "1.13" + }, + { + "offset": 0, + "version": "1.12.17" + }, + { + "offset": 0, + "version": "1.12.16" + }, + { + "offset": 0, + "version": "1.12.15" + }, + { + "offset": 0, + "version": "1.12.14" + }, + { + "offset": 0, + "version": "1.12.13" + }, + { + "offset": 0, + "version": "1.12.12" + }, + { + "offset": 0, + "version": "1.12.11" + }, + { + "offset": 0, + "version": "1.12.10" + }, + { + "offset": 0, + "version": "1.12.9" + }, + { + "offset": 0, + "version": "1.12.8" + }, + { + "offset": 0, + "version": "1.12.7" + }, + { + "offset": 0, + "version": "1.12.6" + }, + { + "offset": 0, + "version": "1.12.5" + }, + { + "offset": 0, + "version": "1.12.4" + }, + { + "offset": 0, + "version": "1.12.3" + }, + { + "offset": 0, + "version": "1.12.2" + }, + { + "offset": 0, + "version": "1.12.1" + }, + { + "offset": 0, + "version": "1.12" + } + ] + }, + { + "struct": "net/http.Request", + "field_name": "URL", + "offsets": [ + { + "offset": 16, + "version": "1.19.1" + }, + { + "offset": 16, + "version": "1.19" + }, + { + "offset": 16, + "version": "1.18.6" + }, + { + "offset": 16, + "version": "1.18.5" + }, + { + "offset": 16, + "version": "1.18.4" + }, + { + "offset": 16, + "version": "1.18.3" + }, + { + "offset": 16, + "version": "1.18.2" + }, + { + "offset": 16, + "version": "1.18.1" + }, + { + "offset": 16, + "version": "1.18" + }, + { + "offset": 16, + "version": "1.17.13" + }, + { + "offset": 16, + "version": "1.17.12" + }, + { + "offset": 16, + "version": "1.17.11" + }, + { + "offset": 16, + "version": "1.17.10" + }, + { + "offset": 16, + "version": "1.17.9" + }, + { + "offset": 16, + "version": "1.17.8" + }, + { + "offset": 16, + "version": "1.17.7" + }, + { + "offset": 16, + "version": "1.17.6" + }, + { + "offset": 16, + "version": "1.17.5" + }, + { + "offset": 16, + "version": "1.17.4" + }, + { + "offset": 16, + "version": "1.17.3" + }, + { + "offset": 16, + "version": "1.17.2" + }, + { + "offset": 16, + "version": "1.17.1" + }, + { + "offset": 16, + "version": "1.17" + }, + { + "offset": 16, + "version": "1.16.15" + }, + { + "offset": 16, + "version": "1.16.14" + }, + { + "offset": 16, + "version": "1.16.13" + }, + { + "offset": 16, + "version": "1.16.12" + }, + { + "offset": 16, + "version": "1.16.11" + }, + { + "offset": 16, + "version": "1.16.10" + }, + { + "offset": 16, + "version": "1.16.9" + }, + { + "offset": 16, + "version": "1.16.8" + }, + { + "offset": 16, + "version": "1.16.7" + }, + { + "offset": 16, + "version": "1.16.6" + }, + { + "offset": 16, + "version": "1.16.5" + }, + { + "offset": 16, + "version": "1.16.4" + }, + { + "offset": 16, + "version": "1.16.3" + }, + { + "offset": 16, + "version": "1.16.2" + }, + { + "offset": 16, + "version": "1.16.1" + }, + { + "offset": 16, + "version": "1.16" + }, + { + "offset": 16, + "version": "1.15.15" + }, + { + "offset": 16, + "version": "1.15.14" + }, + { + "offset": 16, + "version": "1.15.13" + }, + { + "offset": 16, + "version": "1.15.12" + }, + { + "offset": 16, + "version": "1.15.11" + }, + { + "offset": 16, + "version": "1.15.10" + }, + { + "offset": 16, + "version": "1.15.9" + }, + { + "offset": 16, + "version": "1.15.8" + }, + { + "offset": 16, + "version": "1.15.7" + }, + { + "offset": 16, + "version": "1.15.6" + }, + { + "offset": 16, + "version": "1.15.5" + }, + { + "offset": 16, + "version": "1.15.4" + }, + { + "offset": 16, + "version": "1.15.3" + }, + { + "offset": 16, + "version": "1.15.2" + }, + { + "offset": 16, + "version": "1.15.1" + }, + { + "offset": 16, + "version": "1.15" + }, + { + "offset": 16, + "version": "1.14.15" + }, + { + "offset": 16, + "version": "1.14.14" + }, + { + "offset": 16, + "version": "1.14.13" + }, + { + "offset": 16, + "version": "1.14.12" + }, + { + "offset": 16, + "version": "1.14.11" + }, + { + "offset": 16, + "version": "1.14.10" + }, + { + "offset": 16, + "version": "1.14.9" + }, + { + "offset": 16, + "version": "1.14.8" + }, + { + "offset": 16, + "version": "1.14.7" + }, + { + "offset": 16, + "version": "1.14.6" + }, + { + "offset": 16, + "version": "1.14.5" + }, + { + "offset": 16, + "version": "1.14.4" + }, + { + "offset": 16, + "version": "1.14.3" + }, + { + "offset": 16, + "version": "1.14.2" + }, + { + "offset": 16, + "version": "1.14.1" + }, + { + "offset": 16, + "version": "1.14" + }, + { + "offset": 16, + "version": "1.13.15" + }, + { + "offset": 16, + "version": "1.13.14" + }, + { + "offset": 16, + "version": "1.13.13" + }, + { + "offset": 16, + "version": "1.13.12" + }, + { + "offset": 16, + "version": "1.13.11" + }, + { + "offset": 16, + "version": "1.13.10" + }, + { + "offset": 16, + "version": "1.13.9" + }, + { + "offset": 16, + "version": "1.13.8" + }, + { + "offset": 16, + "version": "1.13.7" + }, + { + "offset": 16, + "version": "1.13.6" + }, + { + "offset": 16, + "version": "1.13.5" + }, + { + "offset": 16, + "version": "1.13.4" + }, + { + "offset": 16, + "version": "1.13.3" + }, + { + "offset": 16, + "version": "1.13.2" + }, + { + "offset": 16, + "version": "1.13.1" + }, + { + "offset": 16, + "version": "1.13" + }, + { + "offset": 16, + "version": "1.12.17" + }, + { + "offset": 16, + "version": "1.12.16" + }, + { + "offset": 16, + "version": "1.12.15" + }, + { + "offset": 16, + "version": "1.12.14" + }, + { + "offset": 16, + "version": "1.12.13" + }, + { + "offset": 16, + "version": "1.12.12" + }, + { + "offset": 16, + "version": "1.12.11" + }, + { + "offset": 16, + "version": "1.12.10" + }, + { + "offset": 16, + "version": "1.12.9" + }, + { + "offset": 16, + "version": "1.12.8" + }, + { + "offset": 16, + "version": "1.12.7" + }, + { + "offset": 16, + "version": "1.12.6" + }, + { + "offset": 16, + "version": "1.12.5" + }, + { + "offset": 16, + "version": "1.12.4" + }, + { + "offset": 16, + "version": "1.12.3" + }, + { + "offset": 16, + "version": "1.12.2" + }, + { + "offset": 16, + "version": "1.12.1" + }, + { + "offset": 16, + "version": "1.12" + } + ] + } + ] + }, + { + "name": "google.golang.org/grpc", + "data_members": [ + { + "struct": "google.golang.org/grpc/internal/transport.Stream", + "field_name": "ctx", + "offsets": [ + { + "offset": 32, + "version": "v1.3.0" + }, + { + "offset": 32, + "version": "v1.4.0" + }, + { + "offset": 32, + "version": "v1.4.1" + }, + { + "offset": 32, + "version": "v1.4.2" + }, + { + "offset": 32, + "version": "v1.5.0" + }, + { + "offset": 32, + "version": "v1.5.1" + }, + { + "offset": 32, + "version": "v1.5.2" + }, + { + "offset": 32, + "version": "v1.6.0" + }, + { + "offset": 32, + "version": "v1.7.0" + }, + { + "offset": 32, + "version": "v1.7.1" + }, + { + "offset": 32, + "version": "v1.7.2" + }, + { + "offset": 32, + "version": "v1.7.3" + }, + { + "offset": 32, + "version": "v1.7.4" + }, + { + "offset": 32, + "version": "v1.7.5" + }, + { + "offset": 32, + "version": "v1.8.0" + }, + { + "offset": 32, + "version": "v1.8.2" + }, + { + "offset": 32, + "version": "v1.9.0" + }, + { + "offset": 32, + "version": "v1.9.1" + }, + { + "offset": 32, + "version": "v1.9.2" + }, + { + "offset": 32, + "version": "v1.10.0" + }, + { + "offset": 32, + "version": "v1.10.1" + }, + { + "offset": 32, + "version": "v1.11.0" + }, + { + "offset": 32, + "version": "v1.11.1" + }, + { + "offset": 32, + "version": "v1.11.2" + }, + { + "offset": 32, + "version": "v1.11.3" + }, + { + "offset": 32, + "version": "v1.12.0" + }, + { + "offset": 32, + "version": "v1.12.1" + }, + { + "offset": 32, + "version": "v1.12.2" + }, + { + "offset": 32, + "version": "v1.13.0" + }, + { + "offset": 32, + "version": "v1.14.0" + }, + { + "offset": 24, + "version": "v1.15.0" + }, + { + "offset": 24, + "version": "v1.16.0" + }, + { + "offset": 24, + "version": "v1.17.0" + }, + { + "offset": 24, + "version": "v1.18.0" + }, + { + "offset": 24, + "version": "v1.18.1" + }, + { + "offset": 24, + "version": "v1.19.0" + }, + { + "offset": 24, + "version": "v1.19.1" + }, + { + "offset": 24, + "version": "v1.20.0" + }, + { + "offset": 24, + "version": "v1.20.1" + }, + { + "offset": 24, + "version": "v1.21.0" + }, + { + "offset": 24, + "version": "v1.21.1" + }, + { + "offset": 24, + "version": "v1.21.2" + }, + { + "offset": 24, + "version": "v1.21.3" + }, + { + "offset": 24, + "version": "v1.21.4" + }, + { + "offset": 24, + "version": "v1.22.0" + }, + { + "offset": 24, + "version": "v1.22.1" + }, + { + "offset": 24, + "version": "v1.22.2" + }, + { + "offset": 24, + "version": "v1.22.3" + }, + { + "offset": 24, + "version": "v1.23.0" + }, + { + "offset": 24, + "version": "v1.23.1" + }, + { + "offset": 24, + "version": "v1.24.0" + }, + { + "offset": 32, + "version": "v1.25.0" + }, + { + "offset": 32, + "version": "v1.25.1" + }, + { + "offset": 32, + "version": "v1.26.0" + }, + { + "offset": 32, + "version": "v1.27.0-pre" + }, + { + "offset": 32, + "version": "v1.27.0" + }, + { + "offset": 32, + "version": "v1.27.1" + }, + { + "offset": 32, + "version": "v1.28.0-pre" + }, + { + "offset": 32, + "version": "v1.28.0" + }, + { + "offset": 32, + "version": "v1.28.1" + }, + { + "offset": 32, + "version": "v1.29.0-dev" + }, + { + "offset": 32, + "version": "v1.29.0" + }, + { + "offset": 32, + "version": "v1.29.1" + }, + { + "offset": 32, + "version": "v1.30.0-dev" + }, + { + "offset": 32, + "version": "v1.30.0-dev.1" + }, + { + "offset": 32, + "version": "v1.30.0" + }, + { + "offset": 32, + "version": "v1.30.1" + }, + { + "offset": 32, + "version": "v1.31.0-dev" + }, + { + "offset": 32, + "version": "v1.31.0" + }, + { + "offset": 32, + "version": "v1.31.1" + }, + { + "offset": 32, + "version": "v1.32.0-dev" + }, + { + "offset": 32, + "version": "v1.32.0" + }, + { + "offset": 32, + "version": "v1.33.0-dev" + }, + { + "offset": 32, + "version": "v1.33.0" + }, + { + "offset": 32, + "version": "v1.33.1" + }, + { + "offset": 32, + "version": "v1.33.2" + }, + { + "offset": 32, + "version": "v1.33.3" + }, + { + "offset": 32, + "version": "v1.34.0-dev" + }, + { + "offset": 32, + "version": "v1.34.0" + }, + { + "offset": 32, + "version": "v1.34.1" + }, + { + "offset": 32, + "version": "v1.34.2" + }, + { + "offset": 32, + "version": "v1.35.0-dev" + }, + { + "offset": 32, + "version": "v1.35.0" + }, + { + "offset": 32, + "version": "v1.35.1" + }, + { + "offset": 32, + "version": "v1.36.0-dev" + }, + { + "offset": 32, + "version": "v1.36.0" + }, + { + "offset": 32, + "version": "v1.36.1" + }, + { + "offset": 32, + "version": "v1.37.0-dev" + }, + { + "offset": 32, + "version": "v1.37.0" + }, + { + "offset": 32, + "version": "v1.37.1" + }, + { + "offset": 32, + "version": "v1.38.0-dev" + }, + { + "offset": 32, + "version": "v1.38.0" + }, + { + "offset": 32, + "version": "v1.38.1" + }, + { + "offset": 32, + "version": "v1.39.0-dev" + }, + { + "offset": 32, + "version": "v1.39.0" + }, + { + "offset": 32, + "version": "v1.39.1" + }, + { + "offset": 32, + "version": "v1.40.0-dev" + }, + { + "offset": 32, + "version": "v1.40.0" + }, + { + "offset": 32, + "version": "v1.40.1" + }, + { + "offset": 32, + "version": "v1.41.0-dev" + }, + { + "offset": 32, + "version": "v1.41.0" + }, + { + "offset": 32, + "version": "v1.41.1" + }, + { + "offset": 32, + "version": "v1.42.0-dev" + }, + { + "offset": 32, + "version": "v1.42.0" + }, + { + "offset": 32, + "version": "v1.43.0-dev" + }, + { + "offset": 32, + "version": "v1.43.0" + }, + { + "offset": 32, + "version": "v1.44.0-dev" + }, + { + "offset": 32, + "version": "v1.44.0" + }, + { + "offset": 32, + "version": "v1.45.0-dev" + }, + { + "offset": 32, + "version": "v1.45.0" + }, + { + "offset": 32, + "version": "v1.46.0-dev" + }, + { + "offset": 32, + "version": "v1.46.0" + }, + { + "offset": 32, + "version": "v1.46.1" + }, + { + "offset": 32, + "version": "v1.46.2" + }, + { + "offset": 32, + "version": "v1.47.0-dev" + }, + { + "offset": 32, + "version": "v1.47.0" + }, + { + "offset": 32, + "version": "v1.48.0-dev" + }, + { + "offset": 32, + "version": "v1.48.0" + }, + { + "offset": 32, + "version": "v1.49.0-dev" + }, + { + "offset": 32, + "version": "v1.49.0" + }, + { + "offset": 32, + "version": "v1.50.0-dev" + } + ] + }, + { + "struct": "google.golang.org/grpc.ClientConn", + "field_name": "target", + "offsets": [ + { + "offset": 24, + "version": "v1.3.0" + }, + { + "offset": 24, + "version": "v1.4.0" + }, + { + "offset": 24, + "version": "v1.4.1" + }, + { + "offset": 24, + "version": "v1.4.2" + }, + { + "offset": 24, + "version": "v1.5.0" + }, + { + "offset": 24, + "version": "v1.5.1" + }, + { + "offset": 24, + "version": "v1.5.2" + }, + { + "offset": 24, + "version": "v1.6.0" + }, + { + "offset": 24, + "version": "v1.7.0" + }, + { + "offset": 24, + "version": "v1.7.1" + }, + { + "offset": 24, + "version": "v1.7.2" + }, + { + "offset": 24, + "version": "v1.7.3" + }, + { + "offset": 24, + "version": "v1.7.4" + }, + { + "offset": 24, + "version": "v1.7.5" + }, + { + "offset": 24, + "version": "v1.8.0" + }, + { + "offset": 24, + "version": "v1.8.2" + }, + { + "offset": 24, + "version": "v1.9.0" + }, + { + "offset": 24, + "version": "v1.9.1" + }, + { + "offset": 24, + "version": "v1.9.2" + }, + { + "offset": 24, + "version": "v1.10.0" + }, + { + "offset": 24, + "version": "v1.10.1" + }, + { + "offset": 24, + "version": "v1.11.0" + }, + { + "offset": 24, + "version": "v1.11.1" + }, + { + "offset": 24, + "version": "v1.11.2" + }, + { + "offset": 24, + "version": "v1.11.3" + }, + { + "offset": 24, + "version": "v1.12.0" + }, + { + "offset": 24, + "version": "v1.12.1" + }, + { + "offset": 24, + "version": "v1.12.2" + }, + { + "offset": 24, + "version": "v1.13.0" + }, + { + "offset": 24, + "version": "v1.14.0" + }, + { + "offset": 24, + "version": "v1.15.0" + }, + { + "offset": 24, + "version": "v1.16.0" + }, + { + "offset": 24, + "version": "v1.17.0" + }, + { + "offset": 24, + "version": "v1.18.0" + }, + { + "offset": 24, + "version": "v1.18.1" + }, + { + "offset": 24, + "version": "v1.19.0" + }, + { + "offset": 24, + "version": "v1.19.1" + }, + { + "offset": 24, + "version": "v1.20.0" + }, + { + "offset": 24, + "version": "v1.20.1" + }, + { + "offset": 24, + "version": "v1.21.0" + }, + { + "offset": 24, + "version": "v1.21.1" + }, + { + "offset": 24, + "version": "v1.21.2" + }, + { + "offset": 24, + "version": "v1.21.3" + }, + { + "offset": 24, + "version": "v1.21.4" + }, + { + "offset": 24, + "version": "v1.22.0" + }, + { + "offset": 24, + "version": "v1.22.1" + }, + { + "offset": 24, + "version": "v1.22.2" + }, + { + "offset": 24, + "version": "v1.22.3" + }, + { + "offset": 24, + "version": "v1.23.0" + }, + { + "offset": 24, + "version": "v1.23.1" + }, + { + "offset": 24, + "version": "v1.24.0" + }, + { + "offset": 24, + "version": "v1.25.0" + }, + { + "offset": 24, + "version": "v1.25.1" + }, + { + "offset": 24, + "version": "v1.26.0" + }, + { + "offset": 24, + "version": "v1.27.0-pre" + }, + { + "offset": 24, + "version": "v1.27.0" + }, + { + "offset": 24, + "version": "v1.27.1" + }, + { + "offset": 24, + "version": "v1.28.0-pre" + }, + { + "offset": 24, + "version": "v1.28.0" + }, + { + "offset": 24, + "version": "v1.28.1" + }, + { + "offset": 24, + "version": "v1.29.0-dev" + }, + { + "offset": 24, + "version": "v1.29.0" + }, + { + "offset": 24, + "version": "v1.29.1" + }, + { + "offset": 24, + "version": "v1.30.0-dev" + }, + { + "offset": 24, + "version": "v1.30.0-dev.1" + }, + { + "offset": 24, + "version": "v1.30.0" + }, + { + "offset": 24, + "version": "v1.30.1" + }, + { + "offset": 24, + "version": "v1.31.0-dev" + }, + { + "offset": 24, + "version": "v1.31.0" + }, + { + "offset": 24, + "version": "v1.31.1" + }, + { + "offset": 24, + "version": "v1.32.0-dev" + }, + { + "offset": 24, + "version": "v1.32.0" + }, + { + "offset": 24, + "version": "v1.33.0-dev" + }, + { + "offset": 24, + "version": "v1.33.0" + }, + { + "offset": 24, + "version": "v1.33.1" + }, + { + "offset": 24, + "version": "v1.33.2" + }, + { + "offset": 24, + "version": "v1.33.3" + }, + { + "offset": 24, + "version": "v1.34.0-dev" + }, + { + "offset": 24, + "version": "v1.34.0" + }, + { + "offset": 24, + "version": "v1.34.1" + }, + { + "offset": 24, + "version": "v1.34.2" + }, + { + "offset": 24, + "version": "v1.35.0-dev" + }, + { + "offset": 24, + "version": "v1.35.0" + }, + { + "offset": 24, + "version": "v1.35.1" + }, + { + "offset": 24, + "version": "v1.36.0-dev" + }, + { + "offset": 24, + "version": "v1.36.0" + }, + { + "offset": 24, + "version": "v1.36.1" + }, + { + "offset": 24, + "version": "v1.37.0-dev" + }, + { + "offset": 24, + "version": "v1.37.0" + }, + { + "offset": 24, + "version": "v1.37.1" + }, + { + "offset": 24, + "version": "v1.38.0-dev" + }, + { + "offset": 24, + "version": "v1.38.0" + }, + { + "offset": 24, + "version": "v1.38.1" + }, + { + "offset": 24, + "version": "v1.39.0-dev" + }, + { + "offset": 24, + "version": "v1.39.0" + }, + { + "offset": 24, + "version": "v1.39.1" + }, + { + "offset": 24, + "version": "v1.40.0-dev" + }, + { + "offset": 24, + "version": "v1.40.0" + }, + { + "offset": 24, + "version": "v1.40.1" + }, + { + "offset": 24, + "version": "v1.41.0-dev" + }, + { + "offset": 24, + "version": "v1.41.0" + }, + { + "offset": 24, + "version": "v1.41.1" + }, + { + "offset": 24, + "version": "v1.42.0-dev" + }, + { + "offset": 24, + "version": "v1.42.0" + }, + { + "offset": 24, + "version": "v1.43.0-dev" + }, + { + "offset": 24, + "version": "v1.43.0" + }, + { + "offset": 24, + "version": "v1.44.0-dev" + }, + { + "offset": 24, + "version": "v1.44.0" + }, + { + "offset": 24, + "version": "v1.45.0-dev" + }, + { + "offset": 24, + "version": "v1.45.0" + }, + { + "offset": 24, + "version": "v1.46.0-dev" + }, + { + "offset": 24, + "version": "v1.46.0" + }, + { + "offset": 24, + "version": "v1.46.1" + }, + { + "offset": 24, + "version": "v1.46.2" + }, + { + "offset": 24, + "version": "v1.47.0-dev" + }, + { + "offset": 24, + "version": "v1.47.0" + }, + { + "offset": 24, + "version": "v1.48.0-dev" + }, + { + "offset": 24, + "version": "v1.48.0" + }, + { + "offset": 24, + "version": "v1.49.0-dev" + }, + { + "offset": 24, + "version": "v1.49.0" + }, + { + "offset": 24, + "version": "v1.50.0-dev" + } + ] + }, + { + "struct": "golang.org/x/net/http2.MetaHeadersFrame", + "field_name": "Fields", + "offsets": [ + { + "offset": 8, + "version": "v1.3.0" + }, + { + "offset": 8, + "version": "v1.4.0" + }, + { + "offset": 8, + "version": "v1.4.1" + }, + { + "offset": 8, + "version": "v1.4.2" + }, + { + "offset": 8, + "version": "v1.5.0" + }, + { + "offset": 8, + "version": "v1.5.1" + }, + { + "offset": 8, + "version": "v1.5.2" + }, + { + "offset": 8, + "version": "v1.6.0" + }, + { + "offset": 8, + "version": "v1.7.0" + }, + { + "offset": 8, + "version": "v1.7.1" + }, + { + "offset": 8, + "version": "v1.7.2" + }, + { + "offset": 8, + "version": "v1.7.3" + }, + { + "offset": 8, + "version": "v1.7.4" + }, + { + "offset": 8, + "version": "v1.7.5" + }, + { + "offset": 8, + "version": "v1.8.0" + }, + { + "offset": 8, + "version": "v1.8.2" + }, + { + "offset": 8, + "version": "v1.9.0" + }, + { + "offset": 8, + "version": "v1.9.1" + }, + { + "offset": 8, + "version": "v1.9.2" + }, + { + "offset": 8, + "version": "v1.10.0" + }, + { + "offset": 8, + "version": "v1.10.1" + }, + { + "offset": 8, + "version": "v1.11.0" + }, + { + "offset": 8, + "version": "v1.11.1" + }, + { + "offset": 8, + "version": "v1.11.2" + }, + { + "offset": 8, + "version": "v1.11.3" + }, + { + "offset": 8, + "version": "v1.12.0" + }, + { + "offset": 8, + "version": "v1.12.1" + }, + { + "offset": 8, + "version": "v1.12.2" + }, + { + "offset": 8, + "version": "v1.13.0" + }, + { + "offset": 8, + "version": "v1.14.0" + }, + { + "offset": 8, + "version": "v1.15.0" + }, + { + "offset": 8, + "version": "v1.16.0" + }, + { + "offset": 8, + "version": "v1.17.0" + }, + { + "offset": 8, + "version": "v1.18.0" + }, + { + "offset": 8, + "version": "v1.18.1" + }, + { + "offset": 8, + "version": "v1.19.0" + }, + { + "offset": 8, + "version": "v1.19.1" + }, + { + "offset": 8, + "version": "v1.20.0" + }, + { + "offset": 8, + "version": "v1.20.1" + }, + { + "offset": 8, + "version": "v1.21.0" + }, + { + "offset": 8, + "version": "v1.21.1" + }, + { + "offset": 8, + "version": "v1.21.2" + }, + { + "offset": 8, + "version": "v1.21.3" + }, + { + "offset": 8, + "version": "v1.21.4" + }, + { + "offset": 8, + "version": "v1.22.0" + }, + { + "offset": 8, + "version": "v1.22.1" + }, + { + "offset": 8, + "version": "v1.22.2" + }, + { + "offset": 8, + "version": "v1.22.3" + }, + { + "offset": 8, + "version": "v1.23.0" + }, + { + "offset": 8, + "version": "v1.23.1" + }, + { + "offset": 8, + "version": "v1.24.0" + }, + { + "offset": 8, + "version": "v1.25.0" + }, + { + "offset": 8, + "version": "v1.25.1" + }, + { + "offset": 8, + "version": "v1.26.0" + }, + { + "offset": 8, + "version": "v1.27.0-pre" + }, + { + "offset": 8, + "version": "v1.27.0" + }, + { + "offset": 8, + "version": "v1.27.1" + }, + { + "offset": 8, + "version": "v1.28.0-pre" + }, + { + "offset": 8, + "version": "v1.28.0" + }, + { + "offset": 8, + "version": "v1.28.1" + }, + { + "offset": 8, + "version": "v1.29.0-dev" + }, + { + "offset": 8, + "version": "v1.29.0" + }, + { + "offset": 8, + "version": "v1.29.1" + }, + { + "offset": 8, + "version": "v1.30.0-dev" + }, + { + "offset": 8, + "version": "v1.30.0-dev.1" + }, + { + "offset": 8, + "version": "v1.30.0" + }, + { + "offset": 8, + "version": "v1.30.1" + }, + { + "offset": 8, + "version": "v1.31.0-dev" + }, + { + "offset": 8, + "version": "v1.31.0" + }, + { + "offset": 8, + "version": "v1.31.1" + }, + { + "offset": 8, + "version": "v1.32.0-dev" + }, + { + "offset": 8, + "version": "v1.32.0" + }, + { + "offset": 8, + "version": "v1.33.0-dev" + }, + { + "offset": 8, + "version": "v1.33.0" + }, + { + "offset": 8, + "version": "v1.33.1" + }, + { + "offset": 8, + "version": "v1.33.2" + }, + { + "offset": 8, + "version": "v1.33.3" + }, + { + "offset": 8, + "version": "v1.34.0-dev" + }, + { + "offset": 8, + "version": "v1.34.0" + }, + { + "offset": 8, + "version": "v1.34.1" + }, + { + "offset": 8, + "version": "v1.34.2" + }, + { + "offset": 8, + "version": "v1.35.0-dev" + }, + { + "offset": 8, + "version": "v1.35.0" + }, + { + "offset": 8, + "version": "v1.35.1" + }, + { + "offset": 8, + "version": "v1.36.0-dev" + }, + { + "offset": 8, + "version": "v1.36.0" + }, + { + "offset": 8, + "version": "v1.36.1" + }, + { + "offset": 8, + "version": "v1.37.0-dev" + }, + { + "offset": 8, + "version": "v1.37.0" + }, + { + "offset": 8, + "version": "v1.37.1" + }, + { + "offset": 8, + "version": "v1.38.0-dev" + }, + { + "offset": 8, + "version": "v1.38.0" + }, + { + "offset": 8, + "version": "v1.38.1" + }, + { + "offset": 8, + "version": "v1.39.0-dev" + }, + { + "offset": 8, + "version": "v1.39.0" + }, + { + "offset": 8, + "version": "v1.39.1" + }, + { + "offset": 8, + "version": "v1.40.0-dev" + }, + { + "offset": 8, + "version": "v1.40.0" + }, + { + "offset": 8, + "version": "v1.40.1" + }, + { + "offset": 8, + "version": "v1.41.0-dev" + }, + { + "offset": 8, + "version": "v1.41.0" + }, + { + "offset": 8, + "version": "v1.41.1" + }, + { + "offset": 8, + "version": "v1.42.0-dev" + }, + { + "offset": 8, + "version": "v1.42.0" + }, + { + "offset": 8, + "version": "v1.43.0-dev" + }, + { + "offset": 8, + "version": "v1.43.0" + }, + { + "offset": 8, + "version": "v1.44.0-dev" + }, + { + "offset": 8, + "version": "v1.44.0" + }, + { + "offset": 8, + "version": "v1.45.0-dev" + }, + { + "offset": 8, + "version": "v1.45.0" + }, + { + "offset": 8, + "version": "v1.46.0-dev" + }, + { + "offset": 8, + "version": "v1.46.0" + }, + { + "offset": 8, + "version": "v1.46.1" + }, + { + "offset": 8, + "version": "v1.46.2" + }, + { + "offset": 8, + "version": "v1.47.0-dev" + }, + { + "offset": 8, + "version": "v1.47.0" + }, + { + "offset": 8, + "version": "v1.48.0-dev" + }, + { + "offset": 8, + "version": "v1.48.0" + }, + { + "offset": 8, + "version": "v1.49.0-dev" + }, + { + "offset": 8, + "version": "v1.49.0" + }, + { + "offset": 8, + "version": "v1.50.0-dev" + } + ] + }, + { + "struct": "golang.org/x/net/http2.FrameHeader", + "field_name": "StreamID", + "offsets": [ + { + "offset": 8, + "version": "v1.3.0" + }, + { + "offset": 8, + "version": "v1.4.0" + }, + { + "offset": 8, + "version": "v1.4.1" + }, + { + "offset": 8, + "version": "v1.4.2" + }, + { + "offset": 8, + "version": "v1.5.0" + }, + { + "offset": 8, + "version": "v1.5.1" + }, + { + "offset": 8, + "version": "v1.5.2" + }, + { + "offset": 8, + "version": "v1.6.0" + }, + { + "offset": 8, + "version": "v1.7.0" + }, + { + "offset": 8, + "version": "v1.7.1" + }, + { + "offset": 8, + "version": "v1.7.2" + }, + { + "offset": 8, + "version": "v1.7.3" + }, + { + "offset": 8, + "version": "v1.7.4" + }, + { + "offset": 8, + "version": "v1.7.5" + }, + { + "offset": 8, + "version": "v1.8.0" + }, + { + "offset": 8, + "version": "v1.8.2" + }, + { + "offset": 8, + "version": "v1.9.0" + }, + { + "offset": 8, + "version": "v1.9.1" + }, + { + "offset": 8, + "version": "v1.9.2" + }, + { + "offset": 8, + "version": "v1.10.0" + }, + { + "offset": 8, + "version": "v1.10.1" + }, + { + "offset": 8, + "version": "v1.11.0" + }, + { + "offset": 8, + "version": "v1.11.1" + }, + { + "offset": 8, + "version": "v1.11.2" + }, + { + "offset": 8, + "version": "v1.11.3" + }, + { + "offset": 8, + "version": "v1.12.0" + }, + { + "offset": 8, + "version": "v1.12.1" + }, + { + "offset": 8, + "version": "v1.12.2" + }, + { + "offset": 8, + "version": "v1.13.0" + }, + { + "offset": 8, + "version": "v1.14.0" + }, + { + "offset": 8, + "version": "v1.15.0" + }, + { + "offset": 8, + "version": "v1.16.0" + }, + { + "offset": 8, + "version": "v1.17.0" + }, + { + "offset": 8, + "version": "v1.18.0" + }, + { + "offset": 8, + "version": "v1.18.1" + }, + { + "offset": 8, + "version": "v1.19.0" + }, + { + "offset": 8, + "version": "v1.19.1" + }, + { + "offset": 8, + "version": "v1.20.0" + }, + { + "offset": 8, + "version": "v1.20.1" + }, + { + "offset": 8, + "version": "v1.21.0" + }, + { + "offset": 8, + "version": "v1.21.1" + }, + { + "offset": 8, + "version": "v1.21.2" + }, + { + "offset": 8, + "version": "v1.21.3" + }, + { + "offset": 8, + "version": "v1.21.4" + }, + { + "offset": 8, + "version": "v1.22.0" + }, + { + "offset": 8, + "version": "v1.22.1" + }, + { + "offset": 8, + "version": "v1.22.2" + }, + { + "offset": 8, + "version": "v1.22.3" }, { - "offset": 56, - "version": "1.16.6" + "offset": 8, + "version": "v1.23.0" }, { - "offset": 56, - "version": "1.16.5" + "offset": 8, + "version": "v1.23.1" }, { - "offset": 56, - "version": "1.16.4" + "offset": 8, + "version": "v1.24.0" }, { - "offset": 56, - "version": "1.16.3" + "offset": 8, + "version": "v1.25.0" }, { - "offset": 56, - "version": "1.16.2" + "offset": 8, + "version": "v1.25.1" }, { - "offset": 56, - "version": "1.16.1" + "offset": 8, + "version": "v1.26.0" }, { - "offset": 56, - "version": "1.16" + "offset": 8, + "version": "v1.27.0-pre" }, { - "offset": 56, - "version": "1.15.15" + "offset": 8, + "version": "v1.27.0" }, { - "offset": 56, - "version": "1.15.14" + "offset": 8, + "version": "v1.27.1" }, { - "offset": 56, - "version": "1.15.13" + "offset": 8, + "version": "v1.28.0-pre" }, { - "offset": 56, - "version": "1.15.12" + "offset": 8, + "version": "v1.28.0" }, { - "offset": 56, - "version": "1.15.11" + "offset": 8, + "version": "v1.28.1" }, { - "offset": 56, - "version": "1.15.10" + "offset": 8, + "version": "v1.29.0-dev" }, { - "offset": 56, - "version": "1.15.9" + "offset": 8, + "version": "v1.29.0" }, { - "offset": 56, - "version": "1.15.8" + "offset": 8, + "version": "v1.29.1" }, { - "offset": 56, - "version": "1.15.7" + "offset": 8, + "version": "v1.30.0-dev" }, { - "offset": 56, - "version": "1.15.6" + "offset": 8, + "version": "v1.30.0-dev.1" }, { - "offset": 56, - "version": "1.15.5" + "offset": 8, + "version": "v1.30.0" }, { - "offset": 56, - "version": "1.15.4" + "offset": 8, + "version": "v1.30.1" }, { - "offset": 56, - "version": "1.15.3" + "offset": 8, + "version": "v1.31.0-dev" }, { - "offset": 56, - "version": "1.15.2" + "offset": 8, + "version": "v1.31.0" }, { - "offset": 56, - "version": "1.15.1" + "offset": 8, + "version": "v1.31.1" }, { - "offset": 56, - "version": "1.15" + "offset": 8, + "version": "v1.32.0-dev" }, { - "offset": 56, - "version": "1.14.15" + "offset": 8, + "version": "v1.32.0" }, { - "offset": 56, - "version": "1.14.14" + "offset": 8, + "version": "v1.33.0-dev" }, { - "offset": 56, - "version": "1.14.13" + "offset": 8, + "version": "v1.33.0" }, { - "offset": 56, - "version": "1.14.12" + "offset": 8, + "version": "v1.33.1" }, { - "offset": 56, - "version": "1.14.11" + "offset": 8, + "version": "v1.33.2" }, { - "offset": 56, - "version": "1.14.10" + "offset": 8, + "version": "v1.33.3" }, { - "offset": 56, - "version": "1.14.9" + "offset": 8, + "version": "v1.34.0-dev" }, { - "offset": 56, - "version": "1.14.8" + "offset": 8, + "version": "v1.34.0" }, { - "offset": 56, - "version": "1.14.7" + "offset": 8, + "version": "v1.34.1" }, { - "offset": 56, - "version": "1.14.6" + "offset": 8, + "version": "v1.34.2" }, { - "offset": 56, - "version": "1.14.5" + "offset": 8, + "version": "v1.35.0-dev" }, { - "offset": 56, - "version": "1.14.4" + "offset": 8, + "version": "v1.35.0" }, { - "offset": 56, - "version": "1.14.3" + "offset": 8, + "version": "v1.35.1" }, { - "offset": 56, - "version": "1.14.2" + "offset": 8, + "version": "v1.36.0-dev" }, { - "offset": 56, - "version": "1.14.1" + "offset": 8, + "version": "v1.36.0" }, { - "offset": 56, - "version": "1.14" + "offset": 8, + "version": "v1.36.1" }, { - "offset": 56, - "version": "1.13.15" + "offset": 8, + "version": "v1.37.0-dev" }, { - "offset": 56, - "version": "1.13.14" + "offset": 8, + "version": "v1.37.0" }, { - "offset": 56, - "version": "1.13.13" + "offset": 8, + "version": "v1.37.1" }, { - "offset": 56, - "version": "1.13.12" + "offset": 8, + "version": "v1.38.0-dev" }, { - "offset": 56, - "version": "1.13.11" + "offset": 8, + "version": "v1.38.0" }, { - "offset": 56, - "version": "1.13.10" + "offset": 8, + "version": "v1.38.1" }, { - "offset": 56, - "version": "1.13.9" + "offset": 8, + "version": "v1.39.0-dev" }, { - "offset": 56, - "version": "1.13.8" + "offset": 8, + "version": "v1.39.0" }, { - "offset": 56, - "version": "1.13.7" + "offset": 8, + "version": "v1.39.1" }, { - "offset": 56, - "version": "1.13.6" + "offset": 8, + "version": "v1.40.0-dev" }, { - "offset": 56, - "version": "1.13.5" + "offset": 8, + "version": "v1.40.0" }, { - "offset": 56, - "version": "1.13.4" + "offset": 8, + "version": "v1.40.1" }, { - "offset": 56, - "version": "1.13.3" + "offset": 8, + "version": "v1.41.0-dev" }, { - "offset": 56, - "version": "1.13.2" + "offset": 8, + "version": "v1.41.0" }, { - "offset": 56, - "version": "1.13.1" + "offset": 8, + "version": "v1.41.1" }, { - "offset": 56, - "version": "1.13" + "offset": 8, + "version": "v1.42.0-dev" }, { - "offset": 56, - "version": "1.12.17" + "offset": 8, + "version": "v1.42.0" }, { - "offset": 56, - "version": "1.12.16" + "offset": 8, + "version": "v1.43.0-dev" }, { - "offset": 56, - "version": "1.12.15" + "offset": 8, + "version": "v1.43.0" }, { - "offset": 56, - "version": "1.12.14" + "offset": 8, + "version": "v1.44.0-dev" }, { - "offset": 56, - "version": "1.12.13" + "offset": 8, + "version": "v1.44.0" }, { - "offset": 56, - "version": "1.12.12" + "offset": 8, + "version": "v1.45.0-dev" }, { - "offset": 56, - "version": "1.12.11" + "offset": 8, + "version": "v1.45.0" }, { - "offset": 56, - "version": "1.12.10" + "offset": 8, + "version": "v1.46.0-dev" }, { - "offset": 56, - "version": "1.12.9" + "offset": 8, + "version": "v1.46.0" }, { - "offset": 56, - "version": "1.12.8" + "offset": 8, + "version": "v1.46.1" }, { - "offset": 56, - "version": "1.12.7" + "offset": 8, + "version": "v1.46.2" }, { - "offset": 56, - "version": "1.12.6" + "offset": 8, + "version": "v1.47.0-dev" }, { - "offset": 56, - "version": "1.12.5" + "offset": 8, + "version": "v1.47.0" }, { - "offset": 56, - "version": "1.12.4" + "offset": 8, + "version": "v1.48.0-dev" }, { - "offset": 56, - "version": "1.12.3" + "offset": 8, + "version": "v1.48.0" }, { - "offset": 56, - "version": "1.12.2" + "offset": 8, + "version": "v1.49.0-dev" }, { - "offset": 56, - "version": "1.12.1" + "offset": 8, + "version": "v1.49.0" }, { - "offset": 56, - "version": "1.12" + "offset": 8, + "version": "v1.50.0-dev" } ] - } - ] - }, - { - "name": "google.golang.org/grpc", - "data_members": [ + }, { "struct": "google.golang.org/grpc/internal/transport.Stream", "field_name": "method", "offsets": [ - { - "offset": 72, - "version": "v1.0.0" - }, - { - "offset": 72, - "version": "v1.0.1-GA" - }, - { - "offset": 72, - "version": "v1.0.2" - }, - { - "offset": 72, - "version": "v1.0.3" - }, - { - "offset": 72, - "version": "v1.0.4" - }, { "offset": 80, "version": "v1.3.0" @@ -2051,492 +4987,520 @@ { "offset": 80, "version": "v1.47.0-dev" - } - ] - }, - { - "struct": "google.golang.org/grpc.ClientConn", - "field_name": "target", - "offsets": [ + }, { - "offset": 24, - "version": "v1.0.0" + "offset": 80, + "version": "v1.47.0" }, { - "offset": 24, - "version": "v1.0.1-GA" + "offset": 80, + "version": "v1.48.0-dev" }, { - "offset": 24, - "version": "v1.0.2" + "offset": 80, + "version": "v1.48.0" }, { - "offset": 24, - "version": "v1.0.3" + "offset": 80, + "version": "v1.49.0-dev" }, { - "offset": 24, - "version": "v1.0.4" + "offset": 80, + "version": "v1.49.0" }, { - "offset": 24, + "offset": 80, + "version": "v1.50.0-dev" + } + ] + }, + { + "struct": "google.golang.org/grpc/internal/transport.Stream", + "field_name": "id", + "offsets": [ + { + "offset": 0, "version": "v1.3.0" }, { - "offset": 24, + "offset": 0, "version": "v1.4.0" }, { - "offset": 24, + "offset": 0, "version": "v1.4.1" }, { - "offset": 24, + "offset": 0, "version": "v1.4.2" }, { - "offset": 24, + "offset": 0, "version": "v1.5.0" }, { - "offset": 24, + "offset": 0, "version": "v1.5.1" }, { - "offset": 24, + "offset": 0, "version": "v1.5.2" }, { - "offset": 24, + "offset": 0, "version": "v1.6.0" }, { - "offset": 24, + "offset": 0, "version": "v1.7.0" }, { - "offset": 24, + "offset": 0, "version": "v1.7.1" }, { - "offset": 24, + "offset": 0, "version": "v1.7.2" }, { - "offset": 24, + "offset": 0, "version": "v1.7.3" }, { - "offset": 24, + "offset": 0, "version": "v1.7.4" }, { - "offset": 24, + "offset": 0, "version": "v1.7.5" }, { - "offset": 24, + "offset": 0, "version": "v1.8.0" }, { - "offset": 24, + "offset": 0, "version": "v1.8.2" }, { - "offset": 24, + "offset": 0, "version": "v1.9.0" }, { - "offset": 24, + "offset": 0, "version": "v1.9.1" }, { - "offset": 24, + "offset": 0, "version": "v1.9.2" }, { - "offset": 24, + "offset": 0, "version": "v1.10.0" }, { - "offset": 24, + "offset": 0, "version": "v1.10.1" }, { - "offset": 24, + "offset": 0, "version": "v1.11.0" }, { - "offset": 24, + "offset": 0, "version": "v1.11.1" }, { - "offset": 24, + "offset": 0, "version": "v1.11.2" }, { - "offset": 24, + "offset": 0, "version": "v1.11.3" }, { - "offset": 24, + "offset": 0, "version": "v1.12.0" }, { - "offset": 24, + "offset": 0, "version": "v1.12.1" }, { - "offset": 24, + "offset": 0, "version": "v1.12.2" }, { - "offset": 24, + "offset": 0, "version": "v1.13.0" }, { - "offset": 24, + "offset": 0, "version": "v1.14.0" }, { - "offset": 24, + "offset": 0, "version": "v1.15.0" }, { - "offset": 24, + "offset": 0, "version": "v1.16.0" }, { - "offset": 24, + "offset": 0, "version": "v1.17.0" }, { - "offset": 24, + "offset": 0, "version": "v1.18.0" }, { - "offset": 24, + "offset": 0, "version": "v1.18.1" }, { - "offset": 24, + "offset": 0, "version": "v1.19.0" }, { - "offset": 24, + "offset": 0, "version": "v1.19.1" }, { - "offset": 24, + "offset": 0, "version": "v1.20.0" }, { - "offset": 24, + "offset": 0, "version": "v1.20.1" }, { - "offset": 24, + "offset": 0, "version": "v1.21.0" }, { - "offset": 24, + "offset": 0, "version": "v1.21.1" }, { - "offset": 24, + "offset": 0, "version": "v1.21.2" }, { - "offset": 24, + "offset": 0, "version": "v1.21.3" }, { - "offset": 24, + "offset": 0, "version": "v1.21.4" }, { - "offset": 24, + "offset": 0, "version": "v1.22.0" }, { - "offset": 24, + "offset": 0, "version": "v1.22.1" }, { - "offset": 24, + "offset": 0, "version": "v1.22.2" }, { - "offset": 24, + "offset": 0, "version": "v1.22.3" }, { - "offset": 24, + "offset": 0, "version": "v1.23.0" }, { - "offset": 24, + "offset": 0, "version": "v1.23.1" }, { - "offset": 24, + "offset": 0, "version": "v1.24.0" }, { - "offset": 24, + "offset": 0, "version": "v1.25.0" }, { - "offset": 24, + "offset": 0, "version": "v1.25.1" }, { - "offset": 24, + "offset": 0, "version": "v1.26.0" }, { - "offset": 24, + "offset": 0, "version": "v1.27.0-pre" }, { - "offset": 24, + "offset": 0, "version": "v1.27.0" }, { - "offset": 24, + "offset": 0, "version": "v1.27.1" }, { - "offset": 24, + "offset": 0, "version": "v1.28.0-pre" }, { - "offset": 24, + "offset": 0, "version": "v1.28.0" }, { - "offset": 24, + "offset": 0, "version": "v1.28.1" }, { - "offset": 24, + "offset": 0, "version": "v1.29.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.29.0" }, { - "offset": 24, + "offset": 0, "version": "v1.29.1" }, { - "offset": 24, + "offset": 0, "version": "v1.30.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.30.0-dev.1" }, { - "offset": 24, + "offset": 0, "version": "v1.30.0" }, { - "offset": 24, + "offset": 0, "version": "v1.30.1" }, { - "offset": 24, + "offset": 0, "version": "v1.31.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.31.0" }, { - "offset": 24, + "offset": 0, "version": "v1.31.1" }, { - "offset": 24, + "offset": 0, "version": "v1.32.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.32.0" }, { - "offset": 24, + "offset": 0, "version": "v1.33.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.33.0" }, { - "offset": 24, + "offset": 0, "version": "v1.33.1" }, { - "offset": 24, + "offset": 0, "version": "v1.33.2" }, { - "offset": 24, + "offset": 0, "version": "v1.33.3" }, { - "offset": 24, + "offset": 0, "version": "v1.34.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.34.0" }, { - "offset": 24, + "offset": 0, "version": "v1.34.1" }, { - "offset": 24, + "offset": 0, "version": "v1.34.2" }, { - "offset": 24, + "offset": 0, "version": "v1.35.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.35.0" }, { - "offset": 24, + "offset": 0, "version": "v1.35.1" }, { - "offset": 24, + "offset": 0, "version": "v1.36.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.36.0" }, { - "offset": 24, + "offset": 0, "version": "v1.36.1" }, { - "offset": 24, + "offset": 0, "version": "v1.37.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.37.0" }, { - "offset": 24, + "offset": 0, "version": "v1.37.1" }, { - "offset": 24, + "offset": 0, "version": "v1.38.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.38.0" }, { - "offset": 24, + "offset": 0, "version": "v1.38.1" }, { - "offset": 24, + "offset": 0, "version": "v1.39.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.39.0" }, { - "offset": 24, + "offset": 0, "version": "v1.39.1" }, { - "offset": 24, + "offset": 0, "version": "v1.40.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.40.0" }, { - "offset": 24, + "offset": 0, "version": "v1.40.1" }, { - "offset": 24, + "offset": 0, "version": "v1.41.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.41.0" }, { - "offset": 24, + "offset": 0, "version": "v1.41.1" }, { - "offset": 24, + "offset": 0, "version": "v1.42.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.42.0" }, { - "offset": 24, + "offset": 0, "version": "v1.43.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.43.0" }, { - "offset": 24, + "offset": 0, "version": "v1.44.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.44.0" }, { - "offset": 24, + "offset": 0, "version": "v1.45.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.45.0" }, { - "offset": 24, + "offset": 0, "version": "v1.46.0-dev" }, { - "offset": 24, + "offset": 0, "version": "v1.46.0" }, { - "offset": 24, + "offset": 0, "version": "v1.46.1" }, { - "offset": 24, + "offset": 0, "version": "v1.46.2" }, { - "offset": 24, + "offset": 0, "version": "v1.47.0-dev" + }, + { + "offset": 0, + "version": "v1.47.0" + }, + { + "offset": 0, + "version": "v1.48.0-dev" + }, + { + "offset": 0, + "version": "v1.48.0" + }, + { + "offset": 0, + "version": "v1.49.0-dev" + }, + { + "offset": 0, + "version": "v1.49.0" + }, + { + "offset": 0, + "version": "v1.50.0-dev" } ] } diff --git a/pkg/instrumentors/allocator/allocator_linux.go b/pkg/instrumentors/allocator/allocator_linux.go new file mode 100644 index 0000000..4dae169 --- /dev/null +++ b/pkg/instrumentors/allocator/allocator_linux.go @@ -0,0 +1,43 @@ +package allocator + +import ( + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpffs" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/context" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" + "golang.org/x/sys/unix" + "os" +) + +type Allocator struct{} + +func New() *Allocator { + return &Allocator{} +} + +func (a *Allocator) Load(ctx *context.InstrumentorContext) error { + logger := log.Logger.WithName("allocator") + logger.V(0).Info("Loading allocator", "start_addr", + ctx.TargetDetails.AllocationDetails.Addr, "end_addr", ctx.TargetDetails.AllocationDetails.EndAddr) + + err := a.mountBpfFS() + if err != nil { + return err + } + + return nil +} + +func (a *Allocator) mountBpfFS() error { + _, err := os.Stat(bpffs.BpfFsPath) + if err != nil { + if os.IsNotExist(err) { + if err := os.MkdirAll(bpffs.BpfFsPath, 0755); err != nil { + return err + } + } else { + return err + } + } + + return unix.Mount(bpffs.BpfFsPath, bpffs.BpfFsPath, "bpf", 0, "") +} diff --git a/pkg/instrumentors/bpf/github.com/gorilla/mux/bpf/probe.bpf.c b/pkg/instrumentors/bpf/github.com/gorilla/mux/bpf/probe.bpf.c index c98868c..7bc6e0c 100644 --- a/pkg/instrumentors/bpf/github.com/gorilla/mux/bpf/probe.bpf.c +++ b/pkg/instrumentors/bpf/github.com/gorilla/mux/bpf/probe.bpf.c @@ -1,5 +1,6 @@ #include "arguments.h" -#include "goroutines.h" +#include "span_context.h" +#include "go_context.h" char __license[] SEC("license") = "Dual MIT/GPL"; @@ -7,19 +8,19 @@ char __license[] SEC("license") = "Dual MIT/GPL"; #define MAX_CONCURRENT 50 struct http_request_t { - s64 goroutine; u64 start_time; u64 end_time; char method[MAX_SIZE]; char path[MAX_SIZE]; + struct span_context sc; }; struct { __uint(type, BPF_MAP_TYPE_HASH); - __type(key, s64); + __type(key, void*); __type(value, struct http_request_t); __uint(max_entries, MAX_CONCURRENT); -} goid_to_http_events SEC(".maps"); +} context_to_http_events SEC(".maps"); struct { __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); @@ -29,6 +30,7 @@ struct { volatile const u64 method_ptr_pos; volatile const u64 url_ptr_pos; volatile const u64 path_ptr_pos; +volatile const u64 ctx_ptr_pos; // This instrumentation attaches uprobe to the following function: // func (mux *ServeMux) ServeHTTP(w ResponseWriter, r *Request) @@ -36,7 +38,7 @@ SEC("uprobe/GorillaMux_ServeHTTP") int uprobe_GorillaMux_ServeHTTP(struct pt_regs *ctx) { u64 request_pos = 4; struct http_request_t httpReq = {}; - httpReq.start_time = bpf_ktime_get_ns(); + httpReq.start_time = bpf_ktime_get_boot_ns(); // Get request struct void* req_ptr = get_argument(ctx, request_pos); @@ -61,25 +63,30 @@ int uprobe_GorillaMux_ServeHTTP(struct pt_regs *ctx) { path_size = path_size < path_len ? path_size : path_len; bpf_probe_read(&httpReq.path, path_size, path_ptr); - // Record goroutine - httpReq.goroutine = get_current_goroutine(); + // Get Request.ctx + void *ctx_iface = 0; + bpf_probe_read(&ctx_iface, sizeof(ctx_iface), (void *)(req_ptr+ctx_ptr_pos+8)); // Write event - bpf_map_update_elem(&goid_to_http_events, &httpReq.goroutine, &httpReq, 0); - + httpReq.sc = generate_span_context(); + bpf_map_update_elem(&context_to_http_events, &ctx_iface, &httpReq, 0); + long res = bpf_map_update_elem(&spans_in_progress, &ctx_iface, &httpReq.sc, 0); return 0; } SEC("uprobe/GorillaMux_ServeHTTP") int uprobe_GorillaMux_ServeHTTP_Returns(struct pt_regs *ctx) { - s64 goid = get_current_goroutine(); + u64 request_pos = 4; + void* req_ptr = get_argument(ctx, request_pos); + void *ctx_iface = 0; + bpf_probe_read(&ctx_iface, sizeof(ctx_iface), (void *)(req_ptr+ctx_ptr_pos+8)); - void* httpReq_ptr = bpf_map_lookup_elem(&goid_to_http_events, &goid); + void* httpReq_ptr = bpf_map_lookup_elem(&context_to_http_events, &ctx_iface); struct http_request_t httpReq = {}; bpf_probe_read(&httpReq, sizeof(httpReq), httpReq_ptr); - httpReq.end_time = bpf_ktime_get_ns(); + httpReq.end_time = bpf_ktime_get_boot_ns(); bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &httpReq, sizeof(httpReq)); - bpf_map_delete_elem(&goid_to_http_events, &goid); - + bpf_map_delete_elem(&context_to_http_events, &ctx_iface); + bpf_map_delete_elem(&spans_in_progress, &ctx_iface); return 0; } \ No newline at end of file diff --git a/pkg/instrumentors/bpf/github.com/gorilla/mux/probe.go b/pkg/instrumentors/bpf/github.com/gorilla/mux/probe.go index c8716eb..b998086 100644 --- a/pkg/instrumentors/bpf/github.com/gorilla/mux/probe.go +++ b/pkg/instrumentors/bpf/github.com/gorilla/mux/probe.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "errors" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpffs" "os" "github.com/cilium/ebpf" @@ -12,7 +13,6 @@ import ( "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/inject" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/context" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/goroutine/bpffs" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" "go.opentelemetry.io/otel/attribute" semconv "go.opentelemetry.io/otel/semconv/v1.7.0" @@ -23,11 +23,11 @@ import ( //go:generate go run github.com/cilium/ebpf/cmd/bpf2go -target bpfel -cc clang -cflags $CFLAGS bpf ./bpf/probe.bpf.c type HttpEvent struct { - GoRoutine int64 - StartTime uint64 - EndTime uint64 - Method [100]byte - Path [100]byte + StartTime uint64 + EndTime uint64 + Method [100]byte + Path [100]byte + SpanContext context.EbpfSpanContext } type gorillaMuxInstrumentor struct { @@ -61,12 +61,17 @@ func (g *gorillaMuxInstrumentor) Load(ctx *context.InstrumentorContext) error { StructName: "net/http.Request", Field: "URL", }, + { + VarName: "ctx_ptr_pos", + StructName: "net/http.Request", + Field: "ctx", + }, { VarName: "path_ptr_pos", StructName: "net/url.URL", Field: "Path", }, - }) + }, false) if err != nil { return err @@ -75,7 +80,7 @@ func (g *gorillaMuxInstrumentor) Load(ctx *context.InstrumentorContext) error { g.bpfObjects = &bpfObjects{} err = spec.LoadAndAssign(g.bpfObjects, &ebpf.CollectionOptions{ Maps: ebpf.MapOptions{ - PinPath: bpffs.GoRoutinesMapDir, + PinPath: bpffs.BpfFsPath, }, }) if err != nil { @@ -150,13 +155,19 @@ func (g *gorillaMuxInstrumentor) convertEvent(e *HttpEvent) *events.Event { method := unix.ByteSliceToString(e.Method[:]) path := unix.ByteSliceToString(e.Path[:]) + sc := trace.NewSpanContext(trace.SpanContextConfig{ + TraceID: e.SpanContext.TraceID, + SpanID: e.SpanContext.SpanID, + TraceFlags: trace.FlagsSampled, + }) + return &events.Event{ - Library: g.LibraryName(), - GoroutineUID: e.GoRoutine, - Name: path, - Kind: trace.SpanKindServer, - StartTime: int64(e.StartTime), - EndTime: int64(e.EndTime), + Library: g.LibraryName(), + Name: path, + Kind: trace.SpanKindServer, + StartTime: int64(e.StartTime), + EndTime: int64(e.EndTime), + SpanContext: &sc, Attributes: []attribute.KeyValue{ semconv.HTTPMethodKey.String(method), semconv.HTTPTargetKey.String(path), diff --git a/pkg/instrumentors/bpf/google/golang/org/grpc/bpf/probe.bpf.c b/pkg/instrumentors/bpf/google/golang/org/grpc/bpf/probe.bpf.c index ef8f602..3a1b32f 100644 --- a/pkg/instrumentors/bpf/google/golang/org/grpc/bpf/probe.bpf.c +++ b/pkg/instrumentors/bpf/google/golang/org/grpc/bpf/probe.bpf.c @@ -1,25 +1,46 @@ #include "arguments.h" -#include "goroutines.h" +#include "go_types.h" +#include "span_context.h" +#include "go_context.h" char __license[] SEC("license") = "Dual MIT/GPL"; -#define MAX_SIZE 100 +#define MAX_SIZE 50 #define MAX_CONCURRENT 50 +#define MAX_HEADERS_BUFF_SIZE 500 struct grpc_request_t { - s64 goroutine; u64 start_time; u64 end_time; char method[MAX_SIZE]; char target[MAX_SIZE]; + struct span_context sc; + struct span_context psc; +}; + +struct hpack_header_field { + struct go_string name; + struct go_string value; + bool sensitive; }; struct { __uint(type, BPF_MAP_TYPE_HASH); - __type(key, s64); + __type(key, void*); __type(value, struct grpc_request_t); __uint(max_entries, MAX_CONCURRENT); -} goid_to_grpc_events SEC(".maps"); +} context_to_grpc_events SEC(".maps"); + +struct headers_buff { + unsigned char buff[MAX_HEADERS_BUFF_SIZE]; +}; + +struct { + __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); + __type(key, s32); + __type(value, struct headers_buff); + __uint(max_entries, 1); +} headers_buff_map SEC(".maps"); struct { __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); @@ -34,12 +55,12 @@ SEC("uprobe/ClientConn_Invoke") int uprobe_ClientConn_Invoke(struct pt_regs *ctx) { // positions u64 clientconn_pos = 1; - u64 context_pos = 2; + u64 context_pos = 3; u64 method_ptr_pos = 4; u64 method_len_pos = 5; struct grpc_request_t grpcReq = {}; - grpcReq.start_time = bpf_ktime_get_ns(); + grpcReq.start_time = bpf_ktime_get_boot_ns(); // Read Method void* method_ptr = get_argument(ctx, method_ptr_pos); @@ -58,28 +79,82 @@ int uprobe_ClientConn_Invoke(struct pt_regs *ctx) { target_size = target_size < target_len ? target_size : target_len; bpf_probe_read(&grpcReq.target, target_size, target_ptr); - // Record goroutine - grpcReq.goroutine = get_current_goroutine(); - // Write event - bpf_map_update_elem(&goid_to_grpc_events, &grpcReq.goroutine, &grpcReq, 0); - + void *context_ptr = get_argument(ctx, context_pos); + bpf_map_update_elem(&context_to_grpc_events, &context_ptr, &grpcReq, 0); return 0; } SEC("uprobe/ClientConn_Invoke") int uprobe_ClientConn_Invoke_Returns(struct pt_regs *ctx) { - u64 current_thread = bpf_get_current_pid_tgid(); - void* goid_ptr = bpf_map_lookup_elem(&goroutines_map, ¤t_thread); - s64 goid; - bpf_probe_read(&goid, sizeof(goid), goid_ptr); - - void* grpcReq_ptr = bpf_map_lookup_elem(&goid_to_grpc_events, &goid); + u64 context_pos = 3; + void *context_ptr = get_argument(ctx, context_pos); + void* grpcReq_ptr = bpf_map_lookup_elem(&context_to_grpc_events, &context_ptr); struct grpc_request_t grpcReq = {}; bpf_probe_read(&grpcReq, sizeof(grpcReq), grpcReq_ptr); - grpcReq.end_time = bpf_ktime_get_ns(); + + grpcReq.end_time = bpf_ktime_get_boot_ns(); bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &grpcReq, sizeof(grpcReq)); - bpf_map_delete_elem(&goid_to_grpc_events, &goid); + bpf_map_delete_elem(&context_to_grpc_events, &context_ptr); + + return 0; +} + +// func (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr) ([]hpack.HeaderField, error) +SEC("uprobe/Http2Client_createHeaderFields") +int uprobe_Http2Client_CreateHeaderFields(struct pt_regs *ctx) { + // Read slice + s32 context_pointer_pos = 3; + struct go_slice slice = {}; + struct go_slice_user_ptr slice_user_ptr = {}; + if (is_registers_abi) { + slice.array = (void*) ctx->rax; + slice.len = (s32) ctx->rbx; + slice.cap = (s32) ctx->rcx; + slice_user_ptr.array = &ctx->rax; + slice_user_ptr.len = &ctx->rbx; + slice_user_ptr.cap = &ctx->rcx; + } else { + u64 slice_pointer_pos = 5; + s32 slice_len_pos = 6; + s32 slice_cap_pos = 7; + slice.array = get_argument(ctx, slice_pointer_pos); + slice.len = (s32) get_argument(ctx, slice_len_pos); + slice.cap = (s32) get_argument(ctx, slice_cap_pos); + slice_user_ptr.array = (void*)ctx->rsp+(slice_pointer_pos*8); + slice_user_ptr.len = (void*)ctx->rsp+(slice_len_pos*8); + slice_user_ptr.cap = (void*)ctx->rsp+(slice_cap_pos*8); + } + char key[11] = "traceparent"; + struct go_string key_str = write_user_go_string(key, sizeof(key)); + + // Get grpc request struct + void *context_ptr = get_argument(ctx, context_pointer_pos); + void *parent_ctx = find_context_in_map(context_ptr, &context_to_grpc_events); + void* grpcReq_ptr = bpf_map_lookup_elem(&context_to_grpc_events, &parent_ctx); + struct grpc_request_t grpcReq = {}; + bpf_probe_read(&grpcReq, sizeof(grpcReq), grpcReq_ptr); + + // Get parent if exists + void *parent_span_ctx = find_context_in_map(context_ptr, &spans_in_progress); + if (parent_span_ctx != NULL) { + void* psc_ptr = bpf_map_lookup_elem(&spans_in_progress, &parent_span_ctx); + bpf_probe_read(&grpcReq.psc, sizeof(grpcReq.psc), psc_ptr); + copy_byte_arrays(grpcReq.psc.TraceID, grpcReq.sc.TraceID, TRACE_ID_SIZE); + generate_random_bytes(grpcReq.sc.SpanID, SPAN_ID_SIZE); + } else { + grpcReq.sc = generate_span_context(); + } + + // Write headers + char val[SPAN_CONTEXT_STRING_SIZE]; + span_context_to_w3c_string(&grpcReq.sc, val); + struct go_string val_str = write_user_go_string(val, sizeof(val)); + struct hpack_header_field hf = {}; + hf.name = key_str; + hf.value = val_str; + append_item_to_slice(&slice, &hf, sizeof(hf), &slice_user_ptr, &headers_buff_map); + bpf_map_update_elem(&context_to_grpc_events, &parent_ctx, &grpcReq, 0); return 0; } \ No newline at end of file diff --git a/pkg/instrumentors/bpf/google/golang/org/grpc/probe.go b/pkg/instrumentors/bpf/google/golang/org/grpc/probe.go index 99cc113..8e42518 100644 --- a/pkg/instrumentors/bpf/google/golang/org/grpc/probe.go +++ b/pkg/instrumentors/bpf/google/golang/org/grpc/probe.go @@ -4,16 +4,16 @@ import ( "bytes" "encoding/binary" "errors" + "github.com/cilium/ebpf" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpffs" "os" "strings" - "github.com/cilium/ebpf" "github.com/cilium/ebpf/link" "github.com/cilium/ebpf/perf" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/inject" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/context" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/goroutine/bpffs" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" "go.opentelemetry.io/otel/attribute" semconv "go.opentelemetry.io/otel/semconv/v1.4.0" @@ -24,18 +24,20 @@ import ( //go:generate go run github.com/cilium/ebpf/cmd/bpf2go -target bpfel -cc clang -cflags $CFLAGS bpf ./bpf/probe.bpf.c type GrpcEvent struct { - GoRoutine int64 - StartTime uint64 - EndTime uint64 - Method [100]byte - Target [100]byte + StartTime uint64 + EndTime uint64 + Method [50]byte + Target [50]byte + SpanContext context.EbpfSpanContext + ParentSpanContext context.EbpfSpanContext } type grpcInstrumentor struct { - bpfObjects *bpfObjects - uprobe link.Link - returnProbs []link.Link - eventsReader *perf.Reader + bpfObjects *bpfObjects + uprobe link.Link + returnProbs []link.Link + writeHeadersProbe []link.Link + eventsReader *perf.Reader } func New() *grpcInstrumentor { @@ -47,7 +49,8 @@ func (g *grpcInstrumentor) LibraryName() string { } func (g *grpcInstrumentor) FuncNames() []string { - return []string{"google.golang.org/grpc.(*ClientConn).Invoke"} + return []string{"google.golang.org/grpc.(*ClientConn).Invoke", + "google.golang.org/grpc/internal/transport.(*http2Client).createHeaderFields"} } func (g *grpcInstrumentor) Load(ctx *context.InstrumentorContext) error { @@ -61,7 +64,7 @@ func (g *grpcInstrumentor) Load(ctx *context.InstrumentorContext) error { StructName: "google.golang.org/grpc.ClientConn", Field: "target", }, - }) + }, true) if err != nil { return err @@ -70,7 +73,7 @@ func (g *grpcInstrumentor) Load(ctx *context.InstrumentorContext) error { g.bpfObjects = &bpfObjects{} err = spec.LoadAndAssign(g.bpfObjects, &ebpf.CollectionOptions{ Maps: ebpf.MapOptions{ - PinPath: bpffs.GoRoutinesMapDir, + PinPath: bpffs.BpfFsPath, }, }) if err != nil { @@ -111,6 +114,22 @@ func (g *grpcInstrumentor) Load(ctx *context.InstrumentorContext) error { } g.eventsReader = rd + // Write headers probe + whOffsets, err := ctx.TargetDetails.GetFunctionReturns(g.FuncNames()[1]) + if err != nil { + return err + } + for _, whOffset := range whOffsets { + whProbe, err := ctx.Executable.Uprobe("", g.bpfObjects.UprobeHttp2ClientCreateHeaderFields, &link.UprobeOptions{ + Offset: whOffset, + }) + if err != nil { + return err + } + + g.writeHeadersProbe = append(g.writeHeadersProbe, whProbe) + } + return nil } @@ -158,14 +177,35 @@ func (g *grpcInstrumentor) convertEvent(e *GrpcEvent) *events.Event { semconv.NetPeerIPKey.String(target), semconv.NetPeerNameKey.String(target)) + sc := trace.NewSpanContext(trace.SpanContextConfig{ + TraceID: e.SpanContext.TraceID, + SpanID: e.SpanContext.SpanID, + TraceFlags: trace.FlagsSampled, + }) + + var pscPtr *trace.SpanContext + if e.ParentSpanContext.TraceID.IsValid() { + psc := trace.NewSpanContext(trace.SpanContextConfig{ + TraceID: e.ParentSpanContext.TraceID, + SpanID: e.ParentSpanContext.SpanID, + TraceFlags: trace.FlagsSampled, + Remote: true, + }) + pscPtr = &psc + } else { + pscPtr = nil + } + + log.Logger.V(0).Info("got spancontext", "trace_id", e.SpanContext.TraceID.String(), "span_id", e.SpanContext.SpanID.String()) return &events.Event{ - Library: g.LibraryName(), - GoroutineUID: e.GoRoutine, - Name: method, - Kind: trace.SpanKindClient, - StartTime: int64(e.StartTime), - EndTime: int64(e.EndTime), - Attributes: attrs, + Library: g.LibraryName(), + Name: method, + Kind: trace.SpanKindClient, + StartTime: int64(e.StartTime), + EndTime: int64(e.EndTime), + Attributes: attrs, + SpanContext: &sc, + ParentSpanContext: pscPtr, } } @@ -183,6 +223,10 @@ func (g *grpcInstrumentor) Close() { r.Close() } + for _, r := range g.writeHeadersProbe { + r.Close() + } + if g.bpfObjects != nil { g.bpfObjects.Close() } diff --git a/pkg/instrumentors/bpf/google/golang/org/grpc/server/bpf/probe.bpf.c b/pkg/instrumentors/bpf/google/golang/org/grpc/server/bpf/probe.bpf.c index 2858d9c..226328b 100644 --- a/pkg/instrumentors/bpf/google/golang/org/grpc/server/bpf/probe.bpf.c +++ b/pkg/instrumentors/bpf/google/golang/org/grpc/server/bpf/probe.bpf.c @@ -1,42 +1,78 @@ #include "arguments.h" -#include "goroutines.h" +#include "go_types.h" +#include "span_context.h" char __license[] SEC("license") = "Dual MIT/GPL"; #define MAX_SIZE 100 #define MAX_CONCURRENT 50 +#define MAX_HEADERS 20 +#define MAX_HEADER_STRING 50 +#define W3C_KEY_LENGTH 11 +#define W3C_VAL_LENGTH 55 struct grpc_request_t { - s64 goroutine; u64 start_time; u64 end_time; char method[MAX_SIZE]; + struct span_context sc; + struct span_context psc; }; struct { __uint(type, BPF_MAP_TYPE_HASH); - __type(key, s64); + __type(key, void*); __type(value, struct grpc_request_t); __uint(max_entries, MAX_CONCURRENT); -} goid_to_grpc_events SEC(".maps"); +} context_to_grpc_events SEC(".maps"); + +struct { + __uint(type, BPF_MAP_TYPE_HASH); + __type(key, u32); + __type(value, struct grpc_request_t); + __uint(max_entries, MAX_CONCURRENT); +} streamid_to_grpc_events SEC(".maps"); struct { __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); } events SEC(".maps"); +struct hpack_header_field { + struct go_string name; + struct go_string value; + bool sensitive; +}; + // Injected in init volatile const u64 stream_method_ptr_pos; +volatile const u64 frame_fields_pos; +volatile const u64 frame_stream_id_pod; +volatile const u64 stream_id_pos; +volatile const u64 stream_ctx_pos; // This instrumentation attaches uprobe to the following function: // func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Stream, trInfo *traceInfo) { SEC("uprobe/server_handleStream") int uprobe_server_handleStream(struct pt_regs *ctx) { u64 stream_pos = 4; + void* stream_ptr = get_argument(ctx, stream_pos); + // Get parent context if exists + u32 stream_id = 0; + bpf_probe_read(&stream_id, sizeof(stream_id), (void*)(stream_ptr+stream_id_pos)); + void* grpcReq_ptr = bpf_map_lookup_elem(&streamid_to_grpc_events, &stream_id); struct grpc_request_t grpcReq = {}; - grpcReq.start_time = bpf_ktime_get_ns(); - - void* stream_ptr = get_argument(ctx, stream_pos); + if (grpcReq_ptr != NULL) { + bpf_probe_read(&grpcReq, sizeof(grpcReq), grpcReq_ptr); + bpf_map_delete_elem(&streamid_to_grpc_events, &stream_id); + copy_byte_arrays(grpcReq.psc.TraceID, grpcReq.sc.TraceID, TRACE_ID_SIZE); + generate_random_bytes(grpcReq.sc.SpanID, SPAN_ID_SIZE); + } else { + grpcReq.sc = generate_span_context(); + } + + // Set attributes + grpcReq.start_time = bpf_ktime_get_boot_ns(); void* method_ptr = 0; bpf_probe_read(&method_ptr, sizeof(method_ptr), (void *)(stream_ptr+stream_method_ptr_pos)); u64 method_len = 0; @@ -45,20 +81,36 @@ int uprobe_server_handleStream(struct pt_regs *ctx) { method_size = method_size < method_len ? method_size : method_len; bpf_probe_read(&grpcReq.method, method_size, method_ptr); - // Record goroutine - grpcReq.goroutine = get_current_goroutine(); - // Write event - bpf_map_update_elem(&goid_to_grpc_events, &grpcReq.goroutine, &grpcReq, 0); - + void *ctx_iface = 0; + bpf_probe_read(&ctx_iface, sizeof(ctx_iface), (void*)(stream_ptr+stream_ctx_pos)); + void *ctx_instance = 0; + bpf_probe_read(&ctx_instance, sizeof(ctx_instance), (void*)(ctx_iface+8)); + bpf_map_update_elem(&context_to_grpc_events, &ctx_instance, &grpcReq, 0); + bpf_map_update_elem(&spans_in_progress, &ctx_instance, &grpcReq.sc, 0); return 0; } SEC("uprobe/server_handleStream") int uprobe_server_handleStream_ByRegisters(struct pt_regs *ctx) { - struct grpc_request_t grpcReq = {}; - grpcReq.start_time = bpf_ktime_get_ns(); void* stream_ptr = (void *)(ctx->rdi); + + // Get parent context if exists + u32 stream_id = 0; + bpf_probe_read(&stream_id, sizeof(stream_id), (void*)(stream_ptr+stream_id_pos)); + void* grpcReq_ptr = bpf_map_lookup_elem(&streamid_to_grpc_events, &stream_id); + struct grpc_request_t grpcReq = {}; + if (grpcReq_ptr != NULL) { + bpf_probe_read(&grpcReq, sizeof(grpcReq), grpcReq_ptr); + bpf_map_delete_elem(&streamid_to_grpc_events, &stream_id); + copy_byte_arrays(grpcReq.psc.TraceID, grpcReq.sc.TraceID, TRACE_ID_SIZE); + generate_random_bytes(grpcReq.sc.SpanID, SPAN_ID_SIZE); + } else { + grpcReq.sc = generate_span_context(); + } + + // Set attributes + grpcReq.start_time = bpf_ktime_get_boot_ns(); void* method_ptr = 0; bpf_probe_read(&method_ptr, sizeof(method_ptr), (void *)(stream_ptr+stream_method_ptr_pos)); u64 method_len = 0; @@ -67,26 +119,68 @@ int uprobe_server_handleStream_ByRegisters(struct pt_regs *ctx) { method_size = method_size < method_len ? method_size : method_len; bpf_probe_read(&grpcReq.method, method_size, method_ptr); - // Record goroutine - u64 current_thread = bpf_get_current_pid_tgid(); - void* goid_ptr = bpf_map_lookup_elem(&goroutines_map, ¤t_thread); - s64 goid; - bpf_probe_read(&goid, sizeof(goid), goid_ptr); - grpcReq.goroutine = goid; - // Write event - bpf_map_update_elem(&goid_to_grpc_events, &goid, &grpcReq, 0); + void *ctx_iface = 0; + bpf_probe_read(&ctx_iface, sizeof(ctx_iface), (void*)(stream_ptr+stream_ctx_pos)); + void *ctx_instance = 0; + bpf_probe_read(&ctx_instance, sizeof(ctx_instance), (void*)(ctx_iface+8)); + bpf_map_update_elem(&context_to_grpc_events, &ctx_instance, &grpcReq, 0); + bpf_map_update_elem(&spans_in_progress, &ctx_instance, &grpcReq.sc, 0); return 0; } SEC("uprobe/server_handleStream") int uprobe_server_handleStream_Returns(struct pt_regs *ctx) { - s64 goid = get_current_goroutine(); - void* grpcReq_ptr = bpf_map_lookup_elem(&goid_to_grpc_events, &goid); + u64 stream_pos = 4; + void* stream_ptr = get_argument(ctx, stream_pos); + void *ctx_iface = 0; + bpf_probe_read(&ctx_iface, sizeof(ctx_iface), (void*)(stream_ptr+stream_ctx_pos)); + void *ctx_instance = 0; + bpf_probe_read(&ctx_instance, sizeof(ctx_instance), (void*)(ctx_iface+8)); + + void* grpcReq_ptr = bpf_map_lookup_elem(&context_to_grpc_events, &ctx_instance); struct grpc_request_t grpcReq = {}; bpf_probe_read(&grpcReq, sizeof(grpcReq), grpcReq_ptr); - grpcReq.end_time = bpf_ktime_get_ns(); + + grpcReq.end_time = bpf_ktime_get_boot_ns(); bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &grpcReq, sizeof(grpcReq)); - bpf_map_delete_elem(&goid_to_grpc_events, &goid); + bpf_map_delete_elem(&context_to_grpc_events, &ctx_instance); + bpf_map_delete_elem(&spans_in_progress, &ctx_instance); + return 0; +} + +// func (d *decodeState) decodeHeader(frame *http2.MetaHeadersFrame) error +SEC("uprobe/decodeState_decodeHeader") +int uprobe_decodeState_decodeHeader(struct pt_regs *ctx) { + u64 frame_pos = 2; + void* frame_ptr = get_argument(ctx, frame_pos); + struct go_slice header_fields = {}; + bpf_probe_read(&header_fields, sizeof(header_fields), (void *)(frame_ptr+frame_fields_pos)); + char key[W3C_KEY_LENGTH] = "traceparent"; + for (s32 i = 0; i < MAX_HEADERS; i++) { + if (i >= header_fields.len) { + break; + } + struct hpack_header_field hf = {}; + long res = bpf_probe_read(&hf, sizeof(hf), (void*)(header_fields.array+(i * sizeof(hf)))); + if (hf.name.len == W3C_KEY_LENGTH && hf.value.len == W3C_VAL_LENGTH) { + char current_key[W3C_KEY_LENGTH]; + bpf_probe_read(current_key, sizeof(current_key), hf.name.str); + if (bpf_memcmp(key, current_key, sizeof(key))) { + char val[W3C_VAL_LENGTH]; + bpf_probe_read(val, W3C_VAL_LENGTH, hf.value.str); + + // Get stream id + void* headers_frame = NULL; + bpf_probe_read(&headers_frame, sizeof(headers_frame), frame_ptr); + u32 stream_id = 0; + bpf_probe_read(&stream_id, sizeof(stream_id), (void*)(headers_frame+frame_stream_id_pod)); + struct grpc_request_t grpcReq = {}; + w3c_string_to_span_context(val, &grpcReq.psc); + bpf_map_update_elem(&streamid_to_grpc_events, &stream_id, &grpcReq, 0); + } + } + } + return 0; } \ No newline at end of file diff --git a/pkg/instrumentors/bpf/google/golang/org/grpc/server/probe.go b/pkg/instrumentors/bpf/google/golang/org/grpc/server/probe.go index aaf6eb1..4792b15 100644 --- a/pkg/instrumentors/bpf/google/golang/org/grpc/server/probe.go +++ b/pkg/instrumentors/bpf/google/golang/org/grpc/server/probe.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "errors" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpffs" "os" "github.com/cilium/ebpf" @@ -12,7 +13,6 @@ import ( "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/inject" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/context" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/goroutine/bpffs" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" "go.opentelemetry.io/otel/attribute" semconv "go.opentelemetry.io/otel/semconv/v1.7.0" @@ -23,16 +23,18 @@ import ( //go:generate go run github.com/cilium/ebpf/cmd/bpf2go -target bpfel -cc clang -cflags $CFLAGS bpf ./bpf/probe.bpf.c type GrpcEvent struct { - GoRoutine int64 - StartTime uint64 - EndTime uint64 - Method [100]byte + StartTime uint64 + EndTime uint64 + Method [100]byte + SpanContext context.EbpfSpanContext + ParentSpanContext context.EbpfSpanContext } type grpcServerInstrumentor struct { bpfObjects *bpfObjects uprobe link.Link returnProbs []link.Link + headersProbe link.Link eventsReader *perf.Reader } @@ -45,7 +47,8 @@ func (g *grpcServerInstrumentor) LibraryName() string { } func (g *grpcServerInstrumentor) FuncNames() []string { - return []string{"google.golang.org/grpc.(*Server).handleStream"} + return []string{"google.golang.org/grpc.(*Server).handleStream", + "google.golang.org/grpc/internal/transport.(*decodeState).decodeHeader"} } func (g *grpcServerInstrumentor) Load(ctx *context.InstrumentorContext) error { @@ -60,7 +63,27 @@ func (g *grpcServerInstrumentor) Load(ctx *context.InstrumentorContext) error { StructName: "google.golang.org/grpc/internal/transport.Stream", Field: "method", }, - }) + { + VarName: "stream_id_pos", + StructName: "google.golang.org/grpc/internal/transport.Stream", + Field: "id", + }, + { + VarName: "stream_ctx_pos", + StructName: "google.golang.org/grpc/internal/transport.Stream", + Field: "ctx", + }, + { + VarName: "frame_fields_pos", + StructName: "golang.org/x/net/http2.MetaHeadersFrame", + Field: "Fields", + }, + { + VarName: "frame_stream_id_pod", + StructName: "golang.org/x/net/http2.FrameHeader", + Field: "StreamID", + }, + }, true) if err != nil { return err @@ -69,7 +92,7 @@ func (g *grpcServerInstrumentor) Load(ctx *context.InstrumentorContext) error { g.bpfObjects = &bpfObjects{} err = spec.LoadAndAssign(g.bpfObjects, &ebpf.CollectionOptions{ Maps: ebpf.MapOptions{ - PinPath: bpffs.GoRoutinesMapDir, + PinPath: bpffs.BpfFsPath, }, }) if err != nil { @@ -111,6 +134,18 @@ func (g *grpcServerInstrumentor) Load(ctx *context.InstrumentorContext) error { g.returnProbs = append(g.returnProbs, retProbe) } + headerOffset, err := ctx.TargetDetails.GetFunctionOffset(g.FuncNames()[1]) + if err != nil { + return err + } + hProbe, err := ctx.Executable.Uprobe("", g.bpfObjects.UprobeDecodeStateDecodeHeader, &link.UprobeOptions{ + Offset: headerOffset, + }) + if err != nil { + return err + } + g.headersProbe = hProbe + rd, err := perf.NewReader(g.bpfObjects.Events, os.Getpagesize()) if err != nil { return err @@ -150,17 +185,37 @@ func (g *grpcServerInstrumentor) Run(eventsChan chan<- *events.Event) { func (g *grpcServerInstrumentor) convertEvent(e *GrpcEvent) *events.Event { method := unix.ByteSliceToString(e.Method[:]) + sc := trace.NewSpanContext(trace.SpanContextConfig{ + TraceID: e.SpanContext.TraceID, + SpanID: e.SpanContext.SpanID, + TraceFlags: trace.FlagsSampled, + }) + + var pscPtr *trace.SpanContext + if e.ParentSpanContext.TraceID.IsValid() { + psc := trace.NewSpanContext(trace.SpanContextConfig{ + TraceID: e.ParentSpanContext.TraceID, + SpanID: e.ParentSpanContext.SpanID, + TraceFlags: trace.FlagsSampled, + Remote: true, + }) + pscPtr = &psc + } else { + pscPtr = nil + } + return &events.Event{ - Library: g.LibraryName(), - GoroutineUID: e.GoRoutine, - Name: method, - Kind: trace.SpanKindServer, - StartTime: int64(e.StartTime), - EndTime: int64(e.EndTime), + Library: g.LibraryName(), + Name: method, + Kind: trace.SpanKindServer, + StartTime: int64(e.StartTime), + EndTime: int64(e.EndTime), Attributes: []attribute.KeyValue{ semconv.RPCSystemKey.String("grpc"), semconv.RPCServiceKey.String(method), }, + ParentSpanContext: pscPtr, + SpanContext: &sc, } } @@ -178,6 +233,10 @@ func (g *grpcServerInstrumentor) Close() { r.Close() } + if g.headersProbe != nil { + g.headersProbe.Close() + } + if g.bpfObjects != nil { g.bpfObjects.Close() } diff --git a/pkg/instrumentors/bpf/net/http/server/bpf/probe.bpf.c b/pkg/instrumentors/bpf/net/http/server/bpf/probe.bpf.c index 9c5292b..5e5c3a9 100644 --- a/pkg/instrumentors/bpf/net/http/server/bpf/probe.bpf.c +++ b/pkg/instrumentors/bpf/net/http/server/bpf/probe.bpf.c @@ -1,5 +1,6 @@ #include "arguments.h" -#include "goroutines.h" +#include "span_context.h" +#include "go_context.h" char __license[] SEC("license") = "Dual MIT/GPL"; @@ -7,19 +8,19 @@ char __license[] SEC("license") = "Dual MIT/GPL"; #define MAX_CONCURRENT 50 struct http_request_t { - s64 goroutine; u64 start_time; u64 end_time; char method[MAX_SIZE]; char path[MAX_SIZE]; + struct span_context sc; }; struct { __uint(type, BPF_MAP_TYPE_HASH); - __type(key, s64); + __type(key, void*); __type(value, struct http_request_t); __uint(max_entries, MAX_CONCURRENT); -} goid_to_http_events SEC(".maps"); +} context_to_http_events SEC(".maps"); struct { __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY); @@ -29,6 +30,7 @@ struct { volatile const u64 method_ptr_pos; volatile const u64 url_ptr_pos; volatile const u64 path_ptr_pos; +volatile const u64 ctx_ptr_pos; // This instrumentation attaches uprobe to the following function: // func (mux *ServeMux) ServeHTTP(w ResponseWriter, r *Request) @@ -36,7 +38,7 @@ SEC("uprobe/ServerMux_ServeHTTP") int uprobe_ServerMux_ServeHTTP(struct pt_regs *ctx) { u64 request_pos = 4; struct http_request_t httpReq = {}; - httpReq.start_time = bpf_ktime_get_ns(); + httpReq.start_time = bpf_ktime_get_boot_ns(); // Get request struct void* req_ptr = get_argument(ctx, request_pos); @@ -61,25 +63,30 @@ int uprobe_ServerMux_ServeHTTP(struct pt_regs *ctx) { path_size = path_size < path_len ? path_size : path_len; bpf_probe_read(&httpReq.path, path_size, path_ptr); - // Record goroutine - httpReq.goroutine = get_current_goroutine(); + // Get Request.ctx + void *ctx_iface = 0; + bpf_probe_read(&ctx_iface, sizeof(ctx_iface), (void *)(req_ptr+ctx_ptr_pos+8)); // Write event - bpf_map_update_elem(&goid_to_http_events, &httpReq.goroutine, &httpReq, 0); - + httpReq.sc = generate_span_context(); + bpf_map_update_elem(&context_to_http_events, &ctx_iface, &httpReq, 0); + long res = bpf_map_update_elem(&spans_in_progress, &ctx_iface, &httpReq.sc, 0); return 0; } SEC("uprobe/ServerMux_ServeHTTP") int uprobe_ServerMux_ServeHTTP_Returns(struct pt_regs *ctx) { - s64 goid = get_current_goroutine(); + u64 request_pos = 4; + void* req_ptr = get_argument(ctx, request_pos); + void *ctx_iface = 0; + bpf_probe_read(&ctx_iface, sizeof(ctx_iface), (void *)(req_ptr+ctx_ptr_pos+8)); - void* httpReq_ptr = bpf_map_lookup_elem(&goid_to_http_events, &goid); + void* httpReq_ptr = bpf_map_lookup_elem(&context_to_http_events, &ctx_iface); struct http_request_t httpReq = {}; bpf_probe_read(&httpReq, sizeof(httpReq), httpReq_ptr); - httpReq.end_time = bpf_ktime_get_ns(); + httpReq.end_time = bpf_ktime_get_boot_ns(); bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &httpReq, sizeof(httpReq)); - bpf_map_delete_elem(&goid_to_http_events, &goid); - + bpf_map_delete_elem(&context_to_http_events, &ctx_iface); + bpf_map_delete_elem(&spans_in_progress, &ctx_iface); return 0; } \ No newline at end of file diff --git a/pkg/instrumentors/bpf/net/http/server/probe.go b/pkg/instrumentors/bpf/net/http/server/probe.go index b1560f9..ac97153 100644 --- a/pkg/instrumentors/bpf/net/http/server/probe.go +++ b/pkg/instrumentors/bpf/net/http/server/probe.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "errors" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpffs" "os" "github.com/cilium/ebpf" @@ -12,7 +13,6 @@ import ( "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/inject" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/context" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/goroutine/bpffs" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" "go.opentelemetry.io/otel/attribute" semconv "go.opentelemetry.io/otel/semconv/v1.7.0" @@ -23,11 +23,11 @@ import ( //go:generate go run github.com/cilium/ebpf/cmd/bpf2go -target bpfel -cc clang -cflags $CFLAGS bpf ./bpf/probe.bpf.c type HttpEvent struct { - GoRoutine int64 - StartTime uint64 - EndTime uint64 - Method [100]byte - Path [100]byte + StartTime uint64 + EndTime uint64 + Method [100]byte + Path [100]byte + SpanContext context.EbpfSpanContext } type httpServerInstrumentor struct { @@ -61,12 +61,17 @@ func (h *httpServerInstrumentor) Load(ctx *context.InstrumentorContext) error { StructName: "net/http.Request", Field: "URL", }, + { + VarName: "ctx_ptr_pos", + StructName: "net/http.Request", + Field: "ctx", + }, { VarName: "path_ptr_pos", StructName: "net/url.URL", Field: "Path", }, - }) + }, false) if err != nil { return err @@ -75,7 +80,7 @@ func (h *httpServerInstrumentor) Load(ctx *context.InstrumentorContext) error { h.bpfObjects = &bpfObjects{} err = spec.LoadAndAssign(h.bpfObjects, &ebpf.CollectionOptions{ Maps: ebpf.MapOptions{ - PinPath: bpffs.GoRoutinesMapDir, + PinPath: bpffs.BpfFsPath, }, }) if err != nil { @@ -150,13 +155,19 @@ func (h *httpServerInstrumentor) convertEvent(e *HttpEvent) *events.Event { method := unix.ByteSliceToString(e.Method[:]) path := unix.ByteSliceToString(e.Path[:]) + sc := trace.NewSpanContext(trace.SpanContextConfig{ + TraceID: e.SpanContext.TraceID, + SpanID: e.SpanContext.SpanID, + TraceFlags: trace.FlagsSampled, + }) + return &events.Event{ - Library: h.LibraryName(), - GoroutineUID: e.GoRoutine, - Name: path, - Kind: trace.SpanKindServer, - StartTime: int64(e.StartTime), - EndTime: int64(e.EndTime), + Library: h.LibraryName(), + Name: path, + Kind: trace.SpanKindServer, + StartTime: int64(e.StartTime), + EndTime: int64(e.EndTime), + SpanContext: &sc, Attributes: []attribute.KeyValue{ semconv.HTTPMethodKey.String(method), semconv.HTTPTargetKey.String(path), diff --git a/pkg/instrumentors/bpffs/bpfsfs.go b/pkg/instrumentors/bpffs/bpfsfs.go new file mode 100644 index 0000000..ecdbf3a --- /dev/null +++ b/pkg/instrumentors/bpffs/bpfsfs.go @@ -0,0 +1,5 @@ +package bpffs + +const ( + BpfFsPath = "/sys/fs/bpf" +) diff --git a/pkg/instrumentors/context/span_context.go b/pkg/instrumentors/context/span_context.go new file mode 100644 index 0000000..1b7c75e --- /dev/null +++ b/pkg/instrumentors/context/span_context.go @@ -0,0 +1,8 @@ +package context + +import "go.opentelemetry.io/otel/trace" + +type EbpfSpanContext struct { + TraceID trace.TraceID + SpanID trace.SpanID +} diff --git a/pkg/instrumentors/events/event.go b/pkg/instrumentors/events/event.go index 39c0011..17e9e79 100644 --- a/pkg/instrumentors/events/event.go +++ b/pkg/instrumentors/events/event.go @@ -6,11 +6,12 @@ import ( ) type Event struct { - Library string - Name string - Attributes []attribute.KeyValue - Kind trace.SpanKind - GoroutineUID int64 - StartTime int64 - EndTime int64 + Library string + Name string + Attributes []attribute.KeyValue + Kind trace.SpanKind + StartTime int64 + EndTime int64 + SpanContext *trace.SpanContext + ParentSpanContext *trace.SpanContext } diff --git a/pkg/instrumentors/goroutine/bpf/tracker.bpf.c b/pkg/instrumentors/goroutine/bpf/tracker.bpf.c deleted file mode 100644 index e53aaaa..0000000 --- a/pkg/instrumentors/goroutine/bpf/tracker.bpf.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "arguments.h" -#include "goroutines.h" - -char __license[] SEC("license") = "Dual MIT/GPL"; - -// Injected in init -volatile const u64 goid_pos; - -SEC("uprobe/runtime_casgstatus") -int uprobe_runtime_casgstatus(struct pt_regs *ctx) { - s32 newval = 0; - bpf_probe_read(&newval, sizeof(newval), (void*)(ctx->rsp+20)); - if (newval != 2) { - return 0; - } - - void* g_ptr; - bpf_probe_read(&g_ptr, sizeof(g_ptr), (void *)(ctx->rsp+8)); - s64 goid = 0; - bpf_probe_read(&goid, sizeof(goid), g_ptr+goid_pos); - u64 current_thread = bpf_get_current_pid_tgid(); - bpf_map_update_elem(&goroutines_map, ¤t_thread, &goid, 0); - - return 0; -} - -SEC("uprobe/runtime_casgstatus") -int uprobe_runtime_casgstatus_ByRegisters(struct pt_regs *ctx) { - s32 newval = (s32)(ctx->rcx); - if (newval != 2) { - return 0; - } - - void* g_ptr = (void *)(ctx->rax); - s64 goid = 0; - bpf_probe_read(&goid, sizeof(goid), g_ptr+goid_pos); - u64 current_thread = bpf_get_current_pid_tgid(); - bpf_map_update_elem(&goroutines_map, ¤t_thread, &goid, 0); - - return 0; -} \ No newline at end of file diff --git a/pkg/instrumentors/goroutine/bpffs/bpfsfs.go b/pkg/instrumentors/goroutine/bpffs/bpfsfs.go deleted file mode 100644 index 1dc0df9..0000000 --- a/pkg/instrumentors/goroutine/bpffs/bpfsfs.go +++ /dev/null @@ -1,12 +0,0 @@ -package bpffs - -import "path" - -const ( - BpfFsPath = "/sys/fs/bpf" - GoRoutinesDir = "goroutines" -) - -var ( - GoRoutinesMapDir = path.Join(BpfFsPath, GoRoutinesDir) -) diff --git a/pkg/instrumentors/goroutine/tracker_linux.go b/pkg/instrumentors/goroutine/tracker_linux.go deleted file mode 100644 index 2f1bce9..0000000 --- a/pkg/instrumentors/goroutine/tracker_linux.go +++ /dev/null @@ -1,132 +0,0 @@ -package goroutine - -import ( - "os" - "time" - - "github.com/cilium/ebpf" - "github.com/cilium/ebpf/link" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/inject" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/context" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/goroutine/bpffs" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" - "golang.org/x/sys/unix" -) - -//go:generate go run github.com/cilium/ebpf/cmd/bpf2go -target bpfel -cc clang -cflags $CFLAGS bpf ./bpf/tracker.bpf.c - -type Tracker struct { - bpfObjects *bpfObjects - uprobe link.Link -} - -func NewTracker() *Tracker { - return &Tracker{} -} - -func (g *Tracker) LibraryName() string { - return "goroutine_tracker" -} - -func (g *Tracker) FuncNames() []string { - return []string{"runtime.casgstatus"} -} - -func (g *Tracker) Load(ctx *context.InstrumentorContext) error { - err := g.mountBpfFS() - if err != nil { - return err - } - - if err = os.MkdirAll(bpffs.GoRoutinesMapDir, 0755); err != nil { - return err - } - - spec, err := ctx.Injector.Inject(loadBpf, "go", ctx.TargetDetails.GoVersion.Original(), []*inject.InjectStructField{ - { - VarName: "goid_pos", - StructName: "runtime.g", - Field: "goid", - }, - }) - if err != nil { - return err - } - - g.bpfObjects = &bpfObjects{} - err = spec.LoadAndAssign(g.bpfObjects, &ebpf.CollectionOptions{ - Maps: ebpf.MapOptions{ - PinPath: bpffs.GoRoutinesMapDir, - }, - }) - if err != nil { - return err - } - - var uprobeObj *ebpf.Program - if ctx.TargetDetails.IsRegistersABI() { - uprobeObj = g.bpfObjects.UprobeRuntimeCasgstatusByRegisters - } else { - uprobeObj = g.bpfObjects.UprobeRuntimeCasgstatus - } - uprobeOffset, err := ctx.TargetDetails.GetFunctionOffset(g.FuncNames()[0]) - if err != nil { - return err - } - up, err := ctx.Executable.Uprobe("", uprobeObj, &link.UprobeOptions{ - Offset: uprobeOffset, - }) - if err != nil { - return err - } - - g.uprobe = up - log.Logger.V(0).Info("goroutine tracker loaded") - return nil -} - -func (g *Tracker) mountBpfFS() error { - _, err := os.Stat(bpffs.BpfFsPath) - if err != nil { - if os.IsNotExist(err) { - if err := os.MkdirAll(bpffs.BpfFsPath, 0755); err != nil { - return err - } - } else { - return err - } - } - - return unix.Mount(bpffs.BpfFsPath, bpffs.BpfFsPath, "bpf", 0, "") -} - -func (g *Tracker) Run(eventsChan chan<- *events.Event) { - logger := log.Logger.WithName("goroutine-tracker") - ticker := time.NewTicker(10 * time.Second) - for range ticker.C { - iterator := g.bpfObjects.GoroutinesMap.Iterate() - for { - var key uint32 - var val int64 - hasNext := iterator.Next(&key, &val) - if hasNext { - logger.V(5).Info("go routine details fetched", "key", key, "value", val) - } else { - break - } - } - } -} - -func (g *Tracker) Close() { - log.Logger.V(0).Info("closing goroutine tracker") - - if g.uprobe != nil { - g.uprobe.Close() - } - - if g.bpfObjects != nil { - g.bpfObjects.Close() - } -} diff --git a/pkg/instrumentors/manager.go b/pkg/instrumentors/manager.go index 09f3420..9c104a1 100644 --- a/pkg/instrumentors/manager.go +++ b/pkg/instrumentors/manager.go @@ -2,32 +2,32 @@ package instrumentors import ( "fmt" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/allocator" gorillaMux "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpf/github.com/gorilla/mux" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpf/google/golang/org/grpc" grpcServer "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpf/google/golang/org/grpc/server" httpServer "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/bpf/net/http/server" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" - "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/goroutine" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/opentelemetry" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/process" ) type instrumentorsManager struct { - goroutineTracker *goroutine.Tracker - instrumentors map[string]Instrumentor - done chan bool - incomingEvents chan *events.Event - otelController *opentelemetry.Controller + instrumentors map[string]Instrumentor + done chan bool + incomingEvents chan *events.Event + otelController *opentelemetry.Controller + allocator *allocator.Allocator } func NewManager(otelController *opentelemetry.Controller) (*instrumentorsManager, error) { m := &instrumentorsManager{ - instrumentors: make(map[string]Instrumentor), - done: make(chan bool, 1), - incomingEvents: make(chan *events.Event), - otelController: otelController, - goroutineTracker: goroutine.NewTracker(), + instrumentors: make(map[string]Instrumentor), + done: make(chan bool, 1), + incomingEvents: make(chan *events.Event), + otelController: otelController, + allocator: allocator.New(), } err := registerInstrumentors(m) @@ -55,11 +55,6 @@ func (m *instrumentorsManager) GetRelevantFuncs() map[string]interface{} { } } - // Add goroutine tracker functions - for _, f := range m.goroutineTracker.FuncNames() { - funcsMap[f] = nil - } - return funcsMap } @@ -70,15 +65,15 @@ func (m *instrumentorsManager) FilterUnusedInstrumentors(target *process.TargetD } for name, inst := range m.instrumentors { - someFuncExists := false + allFuncExists := true for _, instF := range inst.FuncNames() { - if _, exists := existingFuncMap[instF]; exists { - someFuncExists = true + if _, exists := existingFuncMap[instF]; !exists { + allFuncExists = false break } } - if !someFuncExists { + if !allFuncExists { log.Logger.V(1).Info("filtering unused instrumentation", "name", name) delete(m.instrumentors, name) } diff --git a/pkg/instrumentors/runner.go b/pkg/instrumentors/runner.go index 4b80653..05c512c 100644 --- a/pkg/instrumentors/runner.go +++ b/pkg/instrumentors/runner.go @@ -21,7 +21,6 @@ func (m *instrumentorsManager) Run(target *process.TargetDetails) error { return err } - go m.goroutineTracker.Run(m.incomingEvents) for _, i := range m.instrumentors { go i.Run(m.incomingEvents) } @@ -59,12 +58,12 @@ func (m *instrumentorsManager) load(target *process.TargetDetails) error { Injector: injector, } - // Load instrumentors - if err := m.goroutineTracker.Load(ctx); err != nil { - log.Logger.Error(err, "error loading goroutine tracker") + if err := m.allocator.Load(ctx); err != nil { + log.Logger.Error(err, "failed to load allocator") return err } + // Load instrumentors for name, i := range m.instrumentors { log.Logger.V(0).Info("loading instrumentor", "name", name) err := i.Load(ctx) @@ -84,7 +83,6 @@ func (m *instrumentorsManager) cleanup() { for _, i := range m.instrumentors { i.Close() } - m.goroutineTracker.Close() } func (m *instrumentorsManager) Close() { diff --git a/pkg/opentelemetry/controller.go b/pkg/opentelemetry/controller.go index 5930675..a34a752 100644 --- a/pkg/opentelemetry/controller.go +++ b/pkg/opentelemetry/controller.go @@ -5,7 +5,7 @@ import ( "fmt" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/log" - "go.opentelemetry.io/otel/attribute" + "github.com/prometheus/procfs" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" @@ -14,6 +14,7 @@ import ( "golang.org/x/sys/unix" "google.golang.org/grpc" "os" + "runtime" "time" ) @@ -25,7 +26,6 @@ const ( type Controller struct { tracerProvider trace.TracerProvider tracersMap map[string]trace.Tracer - contextsMap map[int64]context.Context // TODO: Use LRU cache bootTime int64 } @@ -41,15 +41,25 @@ func (c *Controller) getTracer(libName string) trace.Tracer { } func (c *Controller) Trace(event *events.Event) { - log.Logger.V(0).Info("got event", "attrs", event.Attributes, "goroutine", event.GoroutineUID) - ctx := c.getContext(event.GoroutineUID) - attrs := append(event.Attributes, attribute.Key("goroutine.id").Int64(event.GoroutineUID)) - newCtx, span := c.getTracer(event.Library). + log.Logger.V(0).Info("got event", "attrs", event.Attributes) + ctx := context.Background() + + if event.SpanContext == nil { + log.Logger.V(0).Info("got event without context - dropping") + return + } + + // TODO: handle remote parent + if event.ParentSpanContext != nil { + ctx = trace.ContextWithSpanContext(ctx, *event.ParentSpanContext) + } + + ctx = ContextWithEbpfEvent(ctx, *event) + _, span := c.getTracer(event.Library). Start(ctx, event.Name, - trace.WithAttributes(attrs...), + trace.WithAttributes(event.Attributes...), trace.WithSpanKind(event.Kind), trace.WithTimestamp(c.convertTime(event.StartTime))) - c.updateContext(event.GoroutineUID, newCtx) span.End(trace.WithTimestamp(c.convertTime(event.EndTime))) } @@ -57,21 +67,6 @@ func (c *Controller) convertTime(t int64) time.Time { return time.Unix(0, c.bootTime+t) } -func (c *Controller) getContext(goroutine int64) context.Context { - ctx, exists := c.contextsMap[goroutine] - if exists { - return ctx - } - - newCtx := context.Background() - c.contextsMap[goroutine] = newCtx - return newCtx -} - -func (c *Controller) updateContext(goroutine int64, ctx context.Context) { - c.contextsMap[goroutine] = ctx -} - func NewController() (*Controller, error) { endpoint, exists := os.LookupEnv(otelEndpointEnvVar) if !exists { @@ -116,31 +111,88 @@ func NewController() (*Controller, error) { sdktrace.WithSampler(sdktrace.AlwaysSample()), sdktrace.WithResource(res), sdktrace.WithSpanProcessor(bsp), + sdktrace.WithIDGenerator(NewEbpfSourceIDGenerator()), ) - nsec, err := getMonotonicTime() + bt, err := estimateBootTimeOffset() if err != nil { return nil, err } - now := time.Now() - bootTime := now.UnixNano() - nsec - return &Controller{ tracerProvider: tracerProvider, tracersMap: make(map[string]trace.Tracer), - contextsMap: make(map[int64]context.Context), - bootTime: bootTime, + bootTime: bt, }, nil } -func getMonotonicTime() (int64, error) { - var ts unix.Timespec +func getBootTime() (*time.Time, error) { + fs, err := procfs.NewDefaultFS() + if err != nil { + return nil, err + } + + stat, err := fs.Stat() + if err != nil { + return nil, err + } + boot := time.Unix(int64(stat.BootTime), 0) + return &boot, nil +} + +func getBootTimeSyscall() (int64, error) { + var ts unix.Timespec err := unix.ClockGettime(unix.CLOCK_MONOTONIC, &ts) + now := time.Now().UnixNano() if err != nil { - return 0, fmt.Errorf("could not get monotonic time: %s", err) + return 0, fmt.Errorf("could not get boot time: %s", err) + } + + return now - unix.TimespecToNsec(ts), nil +} + +func estimateBootTimeOffset() (bootTimeOffset int64, err error) { + // The datapath is currently using ktime_get_boot_ns for the pcap timestamp, + // which corresponds to CLOCK_BOOTTIME. To be able to convert the the + // CLOCK_BOOTTIME to CLOCK_REALTIME (i.e. a unix timestamp). + + // There can be an arbitrary amount of time between the execution of + // time.Now() and unix.ClockGettime() below, especially under scheduler + // pressure during program startup. To reduce the error introduced by these + // delays, we pin the current Go routine to its OS thread and measure the + // clocks multiple times, taking only the smallest observed difference + // between the two values (which implies the smallest possible delay + // between the two snapshots). + var minDiff int64 = 1<<63 - 1 + estimationRounds := 25 + runtime.LockOSThread() + defer runtime.UnlockOSThread() + for round := 0; round < estimationRounds; round++ { + var bootTimespec unix.Timespec + + // Ideally we would use __vdso_clock_gettime for both clocks here, + // to have as little overhead as possible. + // time.Now() will actually use VDSO on Go 1.9+, but calling + // unix.ClockGettime to obtain CLOCK_BOOTTIME is a regular system call + // for now. + unixTime := time.Now() + err = unix.ClockGettime(unix.CLOCK_BOOTTIME, &bootTimespec) + if err != nil { + return 0, err + } + + offset := unixTime.UnixNano() - bootTimespec.Nano() + diff := offset + if diff < 0 { + diff = -diff + } + + if diff < minDiff { + minDiff = diff + bootTimeOffset = offset + } } - return unix.TimespecToNsec(ts), nil + return bootTimeOffset, nil } diff --git a/pkg/opentelemetry/id_generator.go b/pkg/opentelemetry/id_generator.go new file mode 100644 index 0000000..265a909 --- /dev/null +++ b/pkg/opentelemetry/id_generator.go @@ -0,0 +1,51 @@ +package opentelemetry + +import ( + "context" + "github.com/keyval-dev/opentelemetry-go-instrumentation/pkg/instrumentors/events" + "go.opentelemetry.io/otel/trace" +) + +type eBPFSourceIDGenerator struct{} + +type ebpfEventKey struct{} + +func NewEbpfSourceIDGenerator() *eBPFSourceIDGenerator { + return &eBPFSourceIDGenerator{} +} + +func ContextWithEbpfEvent(ctx context.Context, event events.Event) context.Context { + return context.WithValue(ctx, ebpfEventKey{}, event) +} + +func EventFromContext(ctx context.Context) *events.Event { + val := ctx.Value(ebpfEventKey{}) + if val == nil { + return nil + } + + event, ok := val.(events.Event) + if !ok { + return nil + } + + return &event +} + +func (e *eBPFSourceIDGenerator) NewIDs(ctx context.Context) (trace.TraceID, trace.SpanID) { + event := EventFromContext(ctx) + if event == nil || event.SpanContext == nil { + return trace.TraceID{}, trace.SpanID{} + } + + return event.SpanContext.TraceID(), event.SpanContext.SpanID() +} + +func (e *eBPFSourceIDGenerator) NewSpanID(ctx context.Context, traceID trace.TraceID) trace.SpanID { + event := EventFromContext(ctx) + if event == nil { + return trace.SpanID{} + } + + return event.SpanContext.SpanID() +} diff --git a/pkg/process/analyze.go b/pkg/process/analyze.go index 26834fb..0b77704 100644 --- a/pkg/process/analyze.go +++ b/pkg/process/analyze.go @@ -3,7 +3,9 @@ package process import ( "debug/elf" "debug/gosym" + "errors" "fmt" + "github.com/prometheus/procfs" "os" "github.com/hashicorp/go-version" @@ -12,10 +14,16 @@ import ( ) type TargetDetails struct { - PID int - Functions []*Func - GoVersion *version.Version - Libraries map[string]string + PID int + Functions []*Func + GoVersion *version.Version + Libraries map[string]string + AllocationDetails *AllocationDetails +} + +type AllocationDetails struct { + Addr uint64 + EndAddr uint64 } type Func struct { @@ -49,6 +57,26 @@ func (t *TargetDetails) GetFunctionReturns(name string) ([]uint64, error) { return nil, fmt.Errorf("could not find returns for function %s", name) } +func (a *processAnalyzer) findKeyvalMmap(pid int) (uintptr, uintptr) { + fs, err := procfs.NewProc(pid) + if err != nil { + panic(err) + } + + maps, err := fs.ProcMaps() + if err != nil { + panic(err) + } + + for _, m := range maps { + if m.Perms != nil && m.Perms.Read && m.Perms.Write && m.Perms.Execute { + log.Logger.Info("found addr of keyval map", "addr", m.StartAddr) + return m.StartAddr, m.EndAddr + } + } + panic(errors.New("cant find keyval map")) +} + func (a *processAnalyzer) Analyze(pid int, relevantFuncs map[string]interface{}) (*TargetDetails, error) { result := &TargetDetails{ PID: pid, @@ -72,6 +100,12 @@ func (a *processAnalyzer) Analyze(pid int, relevantFuncs map[string]interface{}) result.GoVersion = goVersion result.Libraries = modules + start, end := a.findKeyvalMmap(pid) + result.AllocationDetails = &AllocationDetails{ + Addr: uint64(start), + EndAddr: uint64(end), + } + var pclndat []byte if sec := elfF.Section(".gopclntab"); sec != nil { pclndat, err = sec.Data()