Commit 48cb85a
committed
additional logging in core reconciler
Our debug-level logging wasn't particularly verbose or informative. This
patch adds a number of debug-level log messages into the core reconciler
along with a new `ResourceLogger` struct in `pkg/runtime/log` that can
be used to simplify resource-specific log messages.
Example output of these new log messages along with similar debug-level
messages added to the s3-controller's bucket resource manager. These
resource manager-level log messages will need to be added in a separate
patch to the code-generator once this patch merges.
```
[jaypipes@thelio community]$ k logs -n ack-system ack-s3-controller-844cddfbbc-k4d6l
2021-06-17T22:47:30.023Z INFO controller-runtime.metrics metrics server is starting to listen {"addr": "0.0.0.0:8080"}
2021-06-17T22:47:30.023Z INFO setup initializing service controller {"aws.service": "s3"}
2021-06-17T22:47:30.025Z INFO setup starting manager {"aws.service": "s3"}
2021-06-17T22:47:30.025Z INFO controller-runtime.manager starting metrics server {"path": "/metrics"}
2021-06-17T22:47:30.025Z INFO controller-runtime.controller Starting EventSource {"controller": "bucket", "source": "kind source: /, Kind="}
2021-06-17T22:47:30.025Z INFO controller-runtime.controller Starting EventSource {"controller": "adoptedresource", "source": "kind source: /, Kind="}
2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "kube-node-lease"}
2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "default"}
2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "local-path-storage"}
2021-06-17T22:47:30.027Z DEBUG adopted-reconciler.cache.namespace created namespace {"name": "ack-system"}
2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "local-path-storage"}
2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "ack-system"}
2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "kube-node-lease"}
2021-06-17T22:47:30.067Z DEBUG ackrt.cache.namespace created namespace {"name": "default"}
2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting Controller {"controller": "adoptedresource"}
2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting workers {"controller": "adoptedresource", "worker count": 1}
2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting Controller {"controller": "bucket"}
2021-06-17T22:47:30.167Z INFO controller-runtime.controller Starting workers {"controller": "bucket", "worker count": 1}
2021-06-17T22:47:48.644Z DEBUG ackrt > r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:48.644Z DEBUG ackrt > rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:48.644Z DEBUG ackrt > rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":null,"conditions":null}}
2021-06-17T22:47:49.661Z DEBUG ackrt < rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": "resource not found"}
2021-06-17T22:47:49.661Z DEBUG ackrt < rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": "resource not found"}
2021-06-17T22:47:49.661Z DEBUG ackrt > r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:49.661Z DEBUG ackrt > kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:49.664Z DEBUG ackrt < kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:49.664Z DEBUG ackrt marked resource as managed {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:49.664Z DEBUG ackrt < r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:49.664Z DEBUG ackrt > rm.Create {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:49.664Z DEBUG ackrt > rm.sdkCreate {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":null,"conditions":null}}
2021-06-17T22:47:50.992Z DEBUG ackrt < rm.sdkCreate {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}}
2021-06-17T22:47:50.992Z DEBUG ackrt < rm.Create {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:50.992Z INFO ackrt created new resource {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:50.992Z DEBUG ackrt > kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:50.995Z DEBUG ackrt < kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:50.995Z DEBUG ackrt patched resource status {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "latest": {}}
2021-06-17T22:47:50.995Z DEBUG ackrt < r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:50.995Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"}
2021-06-17T22:47:50.995Z DEBUG ackrt > r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:50.995Z DEBUG ackrt > rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:50.995Z DEBUG ackrt > rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}}
2021-06-17T22:47:51.093Z DEBUG ackrt < rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}}
2021-06-17T22:47:51.093Z DEBUG ackrt < rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:51.093Z DEBUG ackrt > r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:51.093Z DEBUG ackrt < r.setResourceManaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:51.093Z DEBUG ackrt > kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1}
2021-06-17T22:47:51.096Z DEBUG ackrt < kc.Patch (status) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:51.096Z DEBUG ackrt patched resource status {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "latest": {}}
2021-06-17T22:47:51.096Z DEBUG ackrt < r.Sync {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "account": "750630568209", "role": "", "region": "us-west-2", "is_adopted": false, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 1, "error": null}
2021-06-17T22:47:51.096Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"}
2021-06-17T22:48:09.428Z DEBUG ackrt > r.cleanup {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:09.428Z DEBUG ackrt > rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:09.428Z DEBUG ackrt > rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}}
2021-06-17T22:48:10.141Z DEBUG ackrt < rm.sdkFind {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}}
2021-06-17T22:48:10.141Z DEBUG ackrt < rm.ReadOne {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null}
2021-06-17T22:48:10.141Z DEBUG ackrt > rm.Delete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:10.141Z DEBUG ackrt > rm.sdkDelete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "spec": {"name":"s3-bucket-1hc4f6ip7c0mmq"}, "status": {"ackResourceMetadata":{"ownerAccountID":"750630568209"},"conditions":[],"location":"http://s3-bucket-1hc4f6ip7c0mmq.s3.amazonaws.com/"}}
2021-06-17T22:48:11.063Z DEBUG ackrt < rm.sdkDelete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:11.063Z DEBUG ackrt < rm.Delete {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null}
2021-06-17T22:48:11.063Z DEBUG ackrt > r.setResourceUnmanaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:11.063Z DEBUG ackrt > kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:11.068Z DEBUG ackrt < kc.Patch (all) {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null}
2021-06-17T22:48:11.068Z DEBUG ackrt removed resource from management {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:11.068Z DEBUG ackrt < r.setResourceUnmanaged {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null}
2021-06-17T22:48:11.068Z INFO ackrt deleted resource {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2}
2021-06-17T22:48:11.068Z DEBUG ackrt < r.cleanup {"kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "account": "750630568209", "role": "", "region": "us-west-2", "kind": "Bucket", "namespace": "default", "name": "s3-bucket-1hc4f6ip7c0mmq", "generation": 2, "error": null}
2021-06-17T22:48:11.068Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"}
2021-06-17T22:48:11.068Z DEBUG controller-runtime.controller Successfully Reconciled {"controller": "bucket", "request": "default/s3-bucket-1hc4f6ip7c0mmq"}
```1 parent 0ff9ffa commit 48cb85a
File tree
7 files changed
+213
-46
lines changed- mocks/pkg/types
- pkg
- runtime
- log
- types
7 files changed
+213
-46
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
23 | 82 | | |
24 | 83 | | |
25 | 84 | | |
| |||
0 commit comments