From b6c0d2b416211fa48f39f6621c6f0414d8a2f7be Mon Sep 17 00:00:00 2001 From: Shahriyar Jalayeri Date: Wed, 13 Nov 2024 00:09:03 +0200 Subject: [PATCH] secure-logs : add implementation of FssAgg Add implementation "Forward-secure sequential aggregate authentication." Signed-off-by: Shahriyar Jalayeri --- pkg/newlog/cmd/fssagg.go | 95 ++++ pkg/newlog/cmd/newlogd.go | 280 ++++++++-- pkg/newlog/cmd/seclog_perf_test.go | 480 ++++++++++++++++++ pkg/newlog/cmd/seclog_test.go | 453 +++++++++++++++++ pkg/newlog/testdata/dev.log.sample | 46 ++ pkg/newlog/testdata/perf/README.md | 39 ++ ...saggsig_average_secure_non_secure_time.png | Bin 0 -> 54657 bytes .../perf/fssaggsig_overhead_and_cost.png | Bin 0 -> 56593 bytes .../perf/fssaggsig_timing_results.csv | 9 + ...saggver_average_secure_non_secure_time.png | Bin 0 -> 44903 bytes ...s_10000_average_secure_non_secure_time.png | Bin 0 -> 48746 bytes ...er_cached_keys_10000_overhead_and_cost.png | Bin 0 -> 51872 bytes ...ggver_cached_keys_10000_timing_results.csv | 9 + .../perf/fssaggver_overhead_and_cost.png | Bin 0 -> 60674 bytes .../perf/fssaggver_timing_results.csv | 9 + pkg/newlog/testdata/perf/plot.py | 62 +++ 16 files changed, 1452 insertions(+), 30 deletions(-) create mode 100644 pkg/newlog/cmd/fssagg.go create mode 100644 pkg/newlog/cmd/seclog_perf_test.go create mode 100644 pkg/newlog/cmd/seclog_test.go create mode 100644 pkg/newlog/testdata/dev.log.sample create mode 100644 pkg/newlog/testdata/perf/README.md create mode 100644 pkg/newlog/testdata/perf/fssaggsig_average_secure_non_secure_time.png create mode 100644 pkg/newlog/testdata/perf/fssaggsig_overhead_and_cost.png create mode 100644 pkg/newlog/testdata/perf/fssaggsig_timing_results.csv create mode 100644 pkg/newlog/testdata/perf/fssaggver_average_secure_non_secure_time.png create mode 100644 pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_average_secure_non_secure_time.png create mode 100644 pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_overhead_and_cost.png create mode 100644 pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_timing_results.csv create mode 100644 pkg/newlog/testdata/perf/fssaggver_overhead_and_cost.png create mode 100644 pkg/newlog/testdata/perf/fssaggver_timing_results.csv create mode 100644 pkg/newlog/testdata/perf/plot.py diff --git a/pkg/newlog/cmd/fssagg.go b/pkg/newlog/cmd/fssagg.go new file mode 100644 index 0000000000..fe06bf5ace --- /dev/null +++ b/pkg/newlog/cmd/fssagg.go @@ -0,0 +1,95 @@ +// Copyright (c) 2024 Zededa, Inc. +// SPDX-License-Identifier: Apache-2.0 + +package main + +import ( + "crypto/hmac" + "crypto/sha256" +) + +// Notes : +// This is based on wor of Ma and Tsudik: +// Ma, Di, and Gene Tsudik. "Forward-secure sequential aggregate authentication." +// IEEE Symposium on Security and Privacy (SP'07). IEEE, 2007. +// https://eprint.iacr.org/2007/052.pdf +// +// This implementation provides forward security, content integrity, stream integrity +// and truncation detection for each batch of logs *gzipped*. This means logs not +// yet processed by the newlogd are not protected by this scheme, the risk of an +// attacker compromising the logs can be lowered by adjusting the batch size or time +// interval to create batches of logs more frequently. +// +// Current implementation lacks the batch (or tail) deletion detection, this is +// to be implemented in the next version using tpm. +// +// Pure golang implementation of FssAgg might not be entirely safe, the initial +// key, before gc collected, might hang around a bit and swapped into disk if +// the attacker puts the system under memory pressure. Bear in mid this is a highly +// unlikly scenario. Unfortunately mlocking might not possible to implement as +// the underlying golang crypto calls copy data around into not locked memory. + +// h must be a collision-resistant one-way hash function (we are using SHA-256, +// ofcouse given enough universes nothing is collision resistant) +func h(data []byte) []byte { + h := sha256.New() + h.Write(data) + return h.Sum(nil) +} + +// hsk must be a secure MAC function h (here we are using HMAC with SHA-256 and a secret key) +func hsk(key, message []byte) []byte { + mac := hmac.New(sha256.New, key) + mac.Write(message) + return mac.Sum(nil) +} + +// fssAggUpd updates key using hash of previous key +func fssAggUpd(prevKey []byte) []byte { + return h(prevKey) +} + +// FssAggSig takes the current key, aggregated signature so far and a message, +// calculates the message MAC, updated aggregated signature and updates the key +// for forward security. It returns the aggregated signature plus the updated key. +func fssAggSig(key, aggMAC, message []byte) ([]byte, []byte) { + var aggSig []byte + + // generate MAC for current message and aggregate current MAC with previous MACs + curMAC := hsk(key, message) + aggSig = h(append(aggMAC, curMAC...)) + + // update key for forward security + nextKey := fssAggUpd(key) + + return nextKey, aggSig +} + +// FssAggVer verifies aggregated signature over messages, accepting the initial +// secret key and the aggregate signature, returning a boolean indicating the +// verification result. +func fssAggVer(secretKey, aggSig []byte, messages [][]byte) bool { + key := secretKey + var computedAggSig []byte + + for _, message := range messages { + // generate MAC for current message + curMAC := hsk(key, message) + // aggregate current MAC with previous MACs + computedAggSig = h(append(computedAggSig, curMAC...)) + + // update key + key = fssAggUpd(key) + } + + // this compare is constant time, so no time leak and attack. + return hmac.Equal(computedAggSig, aggSig) +} + +func evolveKey(secretKey []byte, num uint64) []byte { + key := secretKey + for i := uint64(0); i < num; i++ { + key = fssAggUpd(key) + } + return key +} diff --git a/pkg/newlog/cmd/newlogd.go b/pkg/newlog/cmd/newlogd.go index e7b06ec467..9136bcc5d2 100644 --- a/pkg/newlog/cmd/newlogd.go +++ b/pkg/newlog/cmd/newlogd.go @@ -7,6 +7,7 @@ import ( "bufio" "bytes" "compress/gzip" + "encoding/base64" "encoding/json" "flag" "fmt" @@ -39,33 +40,14 @@ import ( ) const ( - agentName = "newlogd" - errorTime = 3 * time.Minute - warningTime = 40 * time.Second - metricsPublishInterval = 300 * time.Second - logfileDelay = 300 // maximum delay 5 minutes for log file collection - fastlogfileDelay = 10 // faster to close log file if fastUpload is enabled - stillRunningInerval = 25 * time.Second - - collectDir = types.NewlogCollectDir - uploadDevDir = types.NewlogUploadDevDir - uploadAppDir = types.NewlogUploadAppDir - keepSentDir = types.NewlogKeepSentQueueDir - failSendDir = types.NewlogDir + "/failedUpload" - panicFileDir = types.NewlogDir + "/panicStacks" - symlinkFile = collectDir + "/current.device.log" - tmpSymlink = collectDir + "/tmp-sym.dev.log" - devPrefix = types.DevPrefix - appPrefix = types.AppPrefix - tmpPrefix = "TempFile" - skipUpload = "skipTx." - - maxLogFileSize int32 = 550000 // maximum collect file size in bytes - maxGzipFileSize int64 = 50000 // maximum gzipped file size for upload in bytes - gzipFileFooter int64 = 12 // size of gzip footer to use in calculations - defaultSyncCount = 30 // default log events flush/sync to disk file - - maxToSendMbytes uint32 = 2048 // default 2 Gbytes for log files remains on disk + agentName = "newlogd" + errorTime = 3 * time.Minute + warningTime = 40 * time.Second + metricsPublishInterval = 300 * time.Second + logfileDelay = 300 // maximum delay 5 minutes for log file collection + fastlogfileDelay = 10 // faster to close log file if fastUpload is enabled + stillRunningInerval = 25 * time.Second + maxToSendMbytes uint32 = 2048 // default 2 Gbytes for log files remains on disk ansi = "[\u0009\u001B\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))" ) @@ -110,8 +92,36 @@ var ( // goroutine sync/atomic synchronization is used. You've been warned. syslogPrio = types.SyslogKernelLogLevelNum[types.SyslogKernelDefaultLogLevel] kernelPrio = types.SyslogKernelLogLevelNum[types.SyslogKernelDefaultLogLevel] + + // these are constant in principle, but we need to be able to change them + // for testing. + collectDir = types.NewlogCollectDir + uploadDevDir = types.NewlogUploadDevDir + uploadAppDir = types.NewlogUploadAppDir + keepSentDir = types.NewlogKeepSentQueueDir + failSendDir = types.NewlogDir + "/failedUpload" + panicFileDir = types.NewlogDir + "/panicStacks" + symlinkFile = collectDir + "/current.device.log" + tmpSymlink = collectDir + "/tmp-sym.dev.log" + devPrefix = types.DevPrefix + appPrefix = types.AppPrefix + tmpPrefix = "TempFile" + skipUpload = "skipTx." + + maxLogFileSize int32 = 550000 // maximum collect file size in bytes + maxGzipFileSize int64 = 50000 // maximum gzipped file size for upload in bytes + gzipFileFooter int64 = 12 // size of gzip footer to use in calculations + defaultSyncCount = 30 // default log events flush/sync to disk file + + // for log verification + secLog secLogMetadata ) +type secLogMetadata struct { + key []byte + keyIter uint64 +} + // for app Domain-ID mapping into UUID and DisplayName type appDomain struct { appUUID string @@ -1121,7 +1131,7 @@ func doMoveCompressFile(ps *pubsub.PubSub, tmplogfileInfo fileChanInfo) { // note: bytesWritten may be updated eventually because of gzip implementation // potentially we cannot account maxGzipFileSize less than windowsize of gzip 32768 if underlayWriter.bytesWritten+gzipFileFooter+int64(len(newLine)) >= maxGzipFileSize { - newSize += finalizeGzipToOutTempFile(gw, oTmpFile, outfile) + newSize += finalizeGzipToOutTempFile(gw, nil, oTmpFile, outfile) logmetrics.NumBreakGZipFile++ fileID++ outfile = gzipFileNameGet(isApp, timeNowNum+fileID, dirName, appuuid, tmplogfileInfo.notUpload) @@ -1135,7 +1145,209 @@ func doMoveCompressFile(ps *pubsub.PubSub, tmplogfileInfo fileChanInfo) { if scanner.Err() != nil { log.Fatal("doMoveCompressFile: reading file failed", scanner.Err()) } - newSize += finalizeGzipToOutTempFile(gw, oTmpFile, outfile) + newSize += finalizeGzipToOutTempFile(gw, nil, oTmpFile, outfile) + fileID++ + + // store variable to check for the new file name generator + lastLogNum = timeNowNum + fileID + + if isApp { + logmetrics.AppMetrics.NumGZipBytesWrite += uint64(newSize) + if tmplogfileInfo.notUpload { + logmetrics.NumSkipUploadAppFile += uint32(fileID) + } + } else { + logmetrics.DevMetrics.NumGZipBytesWrite += uint64(newSize) + } + + _ = iFile.Close() + // done gzip conversion, get rid of the temp log file in collect directory + err = os.Remove(tmplogfileInfo.tmpfile) + if err != nil { + log.Fatal("doMoveCompressFile: remove file failed", err) + } +} + +func sequenceLogEntry(entry []byte, seq int) ([]byte, error) { + jsonMap := make(map[string]interface{}) + err := json.Unmarshal(entry, &jsonMap) + if err != nil { + return nil, err + } + + jsonMap["seqNum"] = seq + out, err := json.Marshal(jsonMap) + if err != nil { + return nil, err + } + + return out, nil +} + +func addSecureLogMetadata(metadata string, aggSig []byte, keyIter uint64) (string, error) { + jsonMap := make(map[string]interface{}) + err := json.Unmarshal([]byte(metadata), &jsonMap) + if err != nil { + return "", err + } + + jsonMap["aggSig"] = base64.StdEncoding.EncodeToString(aggSig) + jsonMap["keyIter"] = keyIter + out, err := json.Marshal(jsonMap) + if err != nil { + return "", err + } + + return string(out), nil +} + +// doMoveCompressFileSecure process logs just like doMoveCompressFile but also +// calculates the aggregate signature for logs and adds necessary information +// to the log metadata so logs can be verified later. +func doMoveCompressFileSecure(ps *pubsub.PubSub, tmplogfileInfo fileChanInfo) { + isApp := tmplogfileInfo.isApp + dirName, appuuid := getFileInfo(tmplogfileInfo) + + now := time.Now() + timeNowNum := int(now.UnixNano() / int64(time.Millisecond)) // in msec + if timeNowNum < lastLogNum { + // adjust variable for file name generation to not overlap with the old one + timeNowNum = lastLogNum + 1 + } + outfile := gzipFileNameGet(isApp, timeNowNum, dirName, appuuid, tmplogfileInfo.notUpload) + + // open input file + iFile, err := os.Open(tmplogfileInfo.tmpfile) + if err != nil { + log.Fatal(err) + } + scanner := bufio.NewScanner(iFile) + // check if we cannot scan + // check valid json header for device log we will use later + if !scanner.Scan() || (!isApp && !json.Valid(scanner.Bytes())) { + _ = iFile.Close() + err = fmt.Errorf("doMoveCompressFile: can't get metadata on first line, remove %s", tmplogfileInfo.tmpfile) + log.Error(err) + if scanner.Err() != nil { + log.Error(scanner.Err()) + } + err = os.Remove(tmplogfileInfo.tmpfile) + if err != nil { + log.Fatal("doMoveCompressFile: remove file failed", err) + } + return + } + + // assign the metadata in the first line of the logfile + tmplogfileInfo.header = scanner.Text() + + // prepare writers to save gzipped logs + gw, underlayWriter, oTmpFile := prepareGzipToOutTempFile(filepath.Dir(outfile), tmplogfileInfo, now) + + fileID := 0 + wdTime := time.Now() + var newSize int64 + + // each log is processed, tagged with sequence number and the palced in + // the processedLogs slice. the log are later written into the gzip file + // finalizeGzipToOutTempFile. + var processedLogs = make([][]byte, 0) + // each log entry in a batch gets a sequence number + var logSeq = 0 + // batchKeyIter is what iteration of the key we start with, to calculate + // log entrieys HMAC and the aggregate signature. + var batchKeyIter = secLog.keyIter + // aggregateSig is the aggregate signature of all the logs in the batch + // that are processed. + var aggregateSig []byte + + for scanner.Scan() { + if time.Since(wdTime) >= (15 * time.Second) { + ps.StillRunning(agentName, warningTime, errorTime) + wdTime = time.Now() + } + newLine := scanner.Bytes() + //trim non-graphic symbols + newLine = bytes.TrimFunc(newLine, func(r rune) bool { + return !unicode.IsGraphic(r) + }) + if len(newLine) == 0 { + continue + } + if !json.Valid(newLine) { + log.Errorf("doMoveCompressFile: found broken line: %s", string(newLine)) + continue + } + // assume that next line is incompressible to be safe + // note: bytesWritten may be updated eventually because of gzip implementation + // potentially we cannot account maxGzipFileSize less than windowsize of gzip 32768 + if underlayWriter.bytesWritten+gzipFileFooter+int64(len(newLine)) >= maxGzipFileSize { + // we have reached the size limit of the gzip file, so before starting + // a new batch of logs, finalze the current batch of logs, add aggregate + // signature and key iteration to the gzip metadata, giving the verifier + // the information needed to verify the logs. + verifMetadate, err := addSecureLogMetadata(gw.Comment, aggregateSig, batchKeyIter) + if err != nil { + log.Errorf("doMoveCompressFile: addSecureLogMetadata failed: %v", err) + } else { + gw.Comment = verifMetadate + } + + // write the processed logs to the gzip file and finalize the gzip file. + newSize += finalizeGzipToOutTempFile(gw, processedLogs, oTmpFile, outfile) + + // reset the variables for the next gzip file + processedLogs = processedLogs[:0] + aggregateSig = []byte{} + batchKeyIter = secLog.keyIter + logSeq = 0 + + // update the metrics + logmetrics.NumBreakGZipFile++ + fileID++ + + // start a new batch + outfile = gzipFileNameGet(isApp, timeNowNum+fileID, dirName, appuuid, tmplogfileInfo.notUpload) + gw, underlayWriter, oTmpFile = prepareGzipToOutTempFile(filepath.Dir(outfile), tmplogfileInfo, now) + } + + // tag the log entry with sequence number and collect it + sequencedEntry, err := sequenceLogEntry(newLine, logSeq) + if err != nil { + log.Fatalf("doMoveCompressFile: sequenceLogEntry failed: %v", err) + } + logSeq++ + + // calculate the aggregate signature of the log entry, update the key and + // iteration counter. + secLog.key, aggregateSig = fssAggSig(secLog.key, aggregateSig, sequencedEntry) + secLog.keyIter++ + + // we are not writing the log entry to the gzip file yet, since it will + // write the header (metadata) of the gzip file in the first write(), + // but we are not ready yet, there might be more logs to process, + // signature to calculate and so on. so we just collect the log entries + // at this stage. + processedLogs = append(processedLogs, sequencedEntry) + } + if scanner.Err() != nil { + log.Fatal("doMoveCompressFile: reading file failed", scanner.Err()) + } + + // XXXX : should we sign the dev id with tpm based device key? otherwise how + // the cloud knows these logs are form this device? + // + // logs are processed, add aggregate signature and key iteration to the gzip + // metadata, giving the verifier the information needed to verify the logs. + verifMetadate, err := addSecureLogMetadata(gw.Comment, aggregateSig, batchKeyIter) + if err != nil { + log.Errorf("doMoveCompressFile: addSecureLogMetadata failed: %v", err) + } else { + gw.Comment = verifMetadate + } + + // write the processed logs to the gzip file and finalize the gzip file. + newSize += finalizeGzipToOutTempFile(gw, processedLogs, oTmpFile, outfile) fileID++ // store variable to check for the new file name generator @@ -1205,7 +1417,15 @@ func prepareGzipToOutTempFile(gzipDirName string, fHdr fileChanInfo, now time.Ti return gw, writer, oTmpFile } -func finalizeGzipToOutTempFile(gw *gzip.Writer, oTmpFile *os.File, outfile string) int64 { +func finalizeGzipToOutTempFile(gw *gzip.Writer, logs [][]byte, oTmpFile *os.File, outfile string) int64 { + // this is non-empty only if when we are in secure log mode + for _, l := range logs { + _, err := gw.Write(append(l, '\n')) + if err != nil { + log.Fatal("finalizeGzipToOutTempFile: cannot write log", err) + } + } + err := gw.Close() if err != nil { log.Fatal("finalizeGzipToOutTempFile: cannot close file", err) diff --git a/pkg/newlog/cmd/seclog_perf_test.go b/pkg/newlog/cmd/seclog_perf_test.go new file mode 100644 index 0000000000..1ea0b39ce6 --- /dev/null +++ b/pkg/newlog/cmd/seclog_perf_test.go @@ -0,0 +1,480 @@ +// Copyright (c) 2024 Zededa, Inc. +// SPDX-License-Identifier: Apache-2.0 + +package main + +import ( + "bufio" + "compress/gzip" + "encoding/csv" + "encoding/json" + "fmt" + "os" + "path" + "testing" + "time" + + "github.com/lf-edge/eve/pkg/pillar/base" + "github.com/lf-edge/eve/pkg/pillar/pubsub" + "github.com/sirupsen/logrus" +) + +var ( + runs = []int{10, 20, 30, 40, 50, 100, 200, 500} + growth = 10 + keyCacheBase = 10000 + keyCacheMax = 500000 +) + +func growLogContents(filename string, times int) error { + content, err := os.ReadFile(filename) + if err != nil { + return fmt.Errorf("failed to read file: %v", err) + } + + var newContent []byte + for i := 0; i < times; i++ { + newContent = append(newContent, content...) + } + + err = os.WriteFile(filename, newContent, 0777) + if err != nil { + return fmt.Errorf("failed to write to file: %v", err) + } + + return nil +} + +func processVerifyLogs(t *testing.T) { + // get the log gzipped file path + allLogs := listFilesInDir(uploadDevDir) + for _, logGzipped := range allLogs { + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // read the batch metadata from gzipped metadata. + aggSig, keyIter, err := getLogVerficiationMetadata(gr.Comment) + if err != nil { + t.Fatalf("Failed to read secure log metadata from %s: %s", logGzipped, err) + } + + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + + verifKey := evolveKey(sk0_test, keyIter) + res := fssAggVer(verifKey, aggSig, logs) + if !res { + t.Fatalf("Failed to verify logs") + } + } +} + +func processVerifyLogsWithCachedKeys(t *testing.T) { + // get the log gzipped file path + allLogs := listFilesInDir(uploadDevDir) + for _, logGzipped := range allLogs { + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // read the batch metadata from gzipped metadata. + aggSig, keyIter, err := getLogVerficiationMetadata(gr.Comment) + if err != nil { + t.Fatalf("Failed to read secure log metadata from %s: %s", logGzipped, err) + } + + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + + // shortcut? + if keyIter > uint64(keyCacheBase) { + keyIndex := (keyIter / uint64(keyCacheBase)) * uint64(keyCacheBase) + keyFile := fmt.Sprintf("key_%d", keyIndex) + + // read the key from the file + startingKey, err := os.ReadFile(keyFile) + if err != nil { + t.Fatalf("Failed to read cached key: %s", err) + } + + verifKey := evolveKey(startingKey, (keyIter - keyIndex)) + res := fssAggVer(verifKey, aggSig, logs) + if !res { + t.Fatalf("Failed to verify log with cached key") + } + } else { + verifKey := evolveKey(sk0_test, keyIter) + res := fssAggVer(verifKey, aggSig, logs) + if !res { + t.Fatalf("Failed to verify logs") + } + } + } +} + +func processLogs(t *testing.T) { + // get the log gzipped file path + allLogs := listFilesInDir(uploadDevDir) + for _, logGzipped := range allLogs { + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // just read the logs + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + } +} + +func cacheKeys() { + // cache the keys + for i := keyCacheBase; i <= keyCacheMax; i += keyCacheBase { + key := evolveKey(sk0_test, uint64(i)) + fd, err := os.Create(fmt.Sprintf("key_%d", i)) + if err != nil { + fmt.Printf("Failed to create key file: %s", err) + } + + fd.Write(key) + fd.Close() + } +} + +func removeCachedKeys() { + // cache the keys + for i := keyCacheBase; i <= keyCacheMax; i += keyCacheBase { + os.Remove(fmt.Sprintf("key_%d", i)) + } +} + +func TestSecureLogAggregationPerformance(t *testing.T) { + if os.Getenv("RUN_SEC_LOG_PERF_TEST") == "" { + t.Skip("Skipping performance test") + } + + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + secLog.keyIter = 0 + secLog.key = sk0_test + + var fileinfo fileChanInfo + var secureLogTotalTime, nonSecureLogTotalTime time.Duration + for _, run := range runs { + for i := 0; i < run; i++ { + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + // grow the log contents for better performance testing + err := growLogContents(dst, growth) + if err != nil { + t.Fatalf("Failed to grow log contents: %s", err) + } + + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + startSecureLog := time.Now() + doMoveCompressFileSecure(ps, fileinfo) + secureLogTotalTime += time.Since(startSecureLog) + + // non-secure log aggregation + scr = logFile + dst = path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + // grow the log contents for better performance testing + err = growLogContents(dst, growth) + if err != nil { + t.Fatalf("Failed to grow log contents: %s", err) + } + + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + startNonSecureLog := time.Now() + doMoveCompressFile(ps, fileinfo) + nonSecureLogTotalTime += time.Since(startNonSecureLog) + } + + // Calculate averages + secureAvg := int(secureLogTotalTime.Microseconds()) / run + nonSecureAvg := int(nonSecureLogTotalTime.Microseconds()) / run + performanceCost := secureAvg - nonSecureAvg + performanceCostPercentage := (float64(performanceCost) / float64(nonSecureAvg)) * 100 + + file, err := os.OpenFile("fssaggsig_timing_results.csv", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + t.Fatalf("Error creating CSV file %v", err) + } + defer file.Close() + writer := csv.NewWriter(file) + + stat, _ := file.Stat() + if stat.Size() == 0 { + writer.Write([]string{"Test Run", "Average Secure Time (us)", "Average Non-Secure Time (us)", "Performance Cost (us)", "Performance Overhead (%)"}) + } + + writer.Write([]string{ + fmt.Sprintf("%d", run), + fmt.Sprintf("%d", secureAvg), + fmt.Sprintf("%d", nonSecureAvg), + fmt.Sprintf("%d", performanceCost), + fmt.Sprintf("%.2f", performanceCostPercentage), + }) + + writer.Flush() + } +} + +func TestSecureLogVerificationPerformance(t *testing.T) { + if os.Getenv("RUN_SEC_LOG_PERF_TEST") == "" { + t.Skip("Skipping performance test") + } + + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + secLog.keyIter = 0 + secLog.key = sk0_test + + var fileinfo fileChanInfo + var secureLogTotalTime, nonSecureLogTotalTime time.Duration + for _, run := range runs { + for i := 0; i < run; i++ { + makeTestDirs() + + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + // grow the log contents for better performance testing + err := growLogContents(dst, growth) + if err != nil { + t.Fatalf("Failed to grow log contents: %s", err) + } + + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + doMoveCompressFileSecure(ps, fileinfo) + + startSecureLog := time.Now() + processVerifyLogs(t) + secureLogTotalTime += time.Since(startSecureLog) + + removeTestDirs() + makeTestDirs() + + // non-secure log verification + scr = logFile + dst = path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + // grow the log contents for better performance testing + err = growLogContents(dst, growth) + if err != nil { + t.Fatalf("Failed to grow log contents: %s", err) + } + + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + doMoveCompressFile(ps, fileinfo) + startNonSecureLog := time.Now() + processLogs(t) + nonSecureLogTotalTime += time.Since(startNonSecureLog) + + removeTestDirs() + } + + // Calculate averages + secureAvg := int(secureLogTotalTime.Microseconds()) / run + nonSecureAvg := int(nonSecureLogTotalTime.Microseconds()) / run + performanceCost := secureAvg - nonSecureAvg + performanceCostPercentage := (float64(performanceCost) / float64(nonSecureAvg)) * 100 + + file, err := os.OpenFile("fssaggver_timing_results.csv", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + t.Fatalf("Error creating CSV file %v", err) + } + defer file.Close() + writer := csv.NewWriter(file) + + stat, _ := file.Stat() + if stat.Size() == 0 { + writer.Write([]string{"Test Run", "Average Secure Time (us)", "Average Non-Secure Time (us)", "Performance Cost (us)", "Performance Overhead (%)"}) + } + + writer.Write([]string{ + fmt.Sprintf("%d", run), + fmt.Sprintf("%d", secureAvg), + fmt.Sprintf("%d", nonSecureAvg), + fmt.Sprintf("%d", performanceCost), + fmt.Sprintf("%.2f", performanceCostPercentage), + }) + + writer.Flush() + } +} + +func TestSecureLogCachedKeysVerificationPerformance(t *testing.T) { + if os.Getenv("RUN_SEC_LOG_PERF_TEST") == "" { + t.Skip("Skipping performance test") + } + + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // cache the keys first, this is not secure, just for testing, + // in real world, the cached keys should be securely stored just like + // the initial key. + cacheKeys() + defer removeCachedKeys() + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + secLog.keyIter = 0 + secLog.key = sk0_test + + var fileinfo fileChanInfo + var secureLogTotalTime, nonSecureLogTotalTime time.Duration + for _, run := range runs { + for i := 0; i < run; i++ { + makeTestDirs() + + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + // grow the log contents for better performance testing + err := growLogContents(dst, growth) + if err != nil { + t.Fatalf("Failed to grow log contents: %s", err) + } + + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + doMoveCompressFileSecure(ps, fileinfo) + + startSecureLog := time.Now() + processVerifyLogsWithCachedKeys(t) + secureLogTotalTime += time.Since(startSecureLog) + + removeTestDirs() + makeTestDirs() + + // non-secure log verification + scr = logFile + dst = path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + // grow the log contents for better performance testing + err = growLogContents(dst, growth) + if err != nil { + t.Fatalf("Failed to grow log contents: %s", err) + } + + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + doMoveCompressFile(ps, fileinfo) + startNonSecureLog := time.Now() + processLogs(t) + nonSecureLogTotalTime += time.Since(startNonSecureLog) + + removeTestDirs() + } + + // Calculate averages + secureAvg := int(secureLogTotalTime.Microseconds()) / run + nonSecureAvg := int(nonSecureLogTotalTime.Microseconds()) / run + performanceCost := secureAvg - nonSecureAvg + performanceCostPercentage := (float64(performanceCost) / float64(nonSecureAvg)) * 100 + + fileName := fmt.Sprintf("fssaggver_cached_keys_%d_timing_results.csv", keyCacheBase) + file, err := os.OpenFile(fileName, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + t.Fatalf("Error creating CSV file %v", err) + } + defer file.Close() + writer := csv.NewWriter(file) + + stat, _ := file.Stat() + if stat.Size() == 0 { + writer.Write([]string{"Test Run", "Average Secure Time (us)", "Average Non-Secure Time (us)", "Performance Cost (us)", "Performance Overhead (%)"}) + } + + writer.Write([]string{ + fmt.Sprintf("%d", run), + fmt.Sprintf("%d", secureAvg), + fmt.Sprintf("%d", nonSecureAvg), + fmt.Sprintf("%d", performanceCost), + fmt.Sprintf("%.2f", performanceCostPercentage), + }) + + writer.Flush() + } +} diff --git a/pkg/newlog/cmd/seclog_test.go b/pkg/newlog/cmd/seclog_test.go new file mode 100644 index 0000000000..099598d7de --- /dev/null +++ b/pkg/newlog/cmd/seclog_test.go @@ -0,0 +1,453 @@ +// Copyright (c) 2024 Zededa, Inc. +// SPDX-License-Identifier: Apache-2.0 + +package main + +import ( + "bufio" + "compress/gzip" + "encoding/base64" + "encoding/json" + "fmt" + "math/rand" + "os" + "path" + "testing" + + "github.com/lf-edge/eve/pkg/pillar/base" + "github.com/lf-edge/eve/pkg/pillar/pubsub" + "github.com/sirupsen/logrus" +) + +var ( + // initial key, keep it secret, keep it safe + sk0_test = []byte{ + 0x12, 0x34, 0x56, 0x78, + 0x9A, 0xBC, 0xDE, 0xF0, + 0x11, 0x22, 0x33, 0x44, + 0x55, 0x66, 0x77, 0x88, + } +) + +const ( + // TODO : fix this paths + testDirPrefix = "/tmp/seclog" + logFile = "/home/shah/shah-dev/eve/pkg/newlog/testdata/dev.log.sample" +) + +func makeTestDirs() { + uploadDevDir = path.Join(testDirPrefix, "devupload") + uploadAppDir = path.Join(testDirPrefix, "appupload") + collectDir = path.Join(testDirPrefix, "collect") + + _ = os.MkdirAll(uploadDevDir, 0777) + _ = os.MkdirAll(uploadAppDir, 0777) + _ = os.MkdirAll(collectDir, 0777) +} + +func removeTestDirs() { + os.RemoveAll(testDirPrefix) +} + +func listFilesInDir(dir string) []string { + files, _ := os.ReadDir(dir) + var filenames []string + for _, f := range files { + filenames = append(filenames, path.Join(dir, f.Name())) + } + return filenames +} + +func getLogVerficiationMetadata(gwComment string) ([]byte, uint64, error) { + var jsonMap map[string]interface{} + err := json.Unmarshal([]byte(gwComment), &jsonMap) + if err != nil { + return nil, 0, fmt.Errorf("Failed to unmarshal metadata: %s", err) + } + + macStr, ok := jsonMap["aggSig"].(string) + if !ok { + return nil, 0, fmt.Errorf("Failed to find signature in metadata") + } + + mac, err := base64.StdEncoding.DecodeString(macStr) + if err != nil { + return nil, 0, fmt.Errorf("Failed to decode signature: %s", err) + } + + iter, ok := jsonMap["keyIter"].(float64) + if !ok { + return nil, 0, fmt.Errorf("Failed to find keyIteration in metadata") + } + + return mac, uint64(iter), nil +} + +func copyFile(src string, dst string) { + data, _ := os.ReadFile(src) + _ = os.WriteFile(dst, data, 0777) +} + +func TestSingleSecureLogVerification(t *testing.T) { + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + var fileinfo fileChanInfo + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + // evolve the key, for good measure. + intialKey := evolveKey(sk0_test, 100) + secLog.keyIter = 100 + secLog.key = intialKey + + // process the log entries and create the gzipped log file + doMoveCompressFileSecure(ps, fileinfo) + + // get the log gzipped file path + logGzipped := listFilesInDir(uploadDevDir)[0] + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // read the batch metadata from gzipped metadata. + aggSig, keyIter, err := getLogVerficiationMetadata(gr.Comment) + if err != nil { + t.Fatalf("Failed to read secure log metadata from %s: %s", logGzipped, err) + } + + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + + // evolve the key to the same iteration as the one used to sign the log. + verifKey := evolveKey(sk0_test, keyIter) + // verify the log + res := fssAggVer(verifKey, aggSig, logs) + if !res { + t.Fatalf("Secure log verification failed") + } +} + +func TestMultipleSecureLogVerification(t *testing.T) { + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + var fileinfo fileChanInfo + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + // evolve the key, for good measure. + intialKey := evolveKey(sk0_test, 100) + secLog.keyIter = 100 + secLog.key = intialKey + + // lower the maxGzipFileSize to multiple batches + maxGzipFileSize = 1000 + + // process the log entries and create the gzipped log file + doMoveCompressFileSecure(ps, fileinfo) + + // get the log gzipped file path + allLogs := listFilesInDir(uploadDevDir) + for _, logGzipped := range allLogs { + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // read the batch metadata from gzipped metadata. + aggSig, keyIter, err := getLogVerficiationMetadata(gr.Comment) + if err != nil { + t.Fatalf("Failed to read secure log metadata from %s: %s", logGzipped, err) + } + + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + + t.Logf("Verifying log with key iteration : %d", keyIter) + t.Logf("Number of log entries: %d", len(logs)) + t.Logf("Batch aggregated signature: %x", aggSig) + t.Log("----------------------------------------") + + // evolve the key to the same iteration as the one used to sign the log. + verifKey := evolveKey(sk0_test, keyIter) + // verify the log + res := fssAggVer(verifKey, aggSig, logs) + if !res { + t.Fatalf("Secure log verification failed for %s", logGzipped) + } + } +} + +func TestContentIntegritySecureLogVerification(t *testing.T) { + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + var fileinfo fileChanInfo + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + // evolve the key, for good measure. + intialKey := evolveKey(sk0_test, 100) + secLog.keyIter = 100 + secLog.key = intialKey + + // process the log entries and create the gzipped log file + doMoveCompressFileSecure(ps, fileinfo) + + // get the log gzipped file path + logGzipped := listFilesInDir(uploadDevDir)[0] + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // read the batch metadata from gzipped metadata. + aggSig, keyIter, err := getLogVerficiationMetadata(gr.Comment) + if err != nil { + t.Fatalf("Failed to read secure log metadata from %s: %s", logGzipped, err) + } + + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + + if len(logs) < 3 { + t.Fatalf("Not enough log entries to content integrity") + } + + // get a ranom log entry and corrupt it + corruptLogIdx := rand.Intn(len(logs)) + logs[corruptLogIdx] = []byte("corrupted log entry") + + // evolve the key to the same iteration as the one used to sign the log. + verifKey := evolveKey(sk0_test, keyIter) + // verify the log + res := fssAggVer(verifKey, aggSig, logs) + if res != false { + t.Fatalf("Expected secure log verification to failed") + } +} + +func TestStreamIntegritySecureLogVerification(t *testing.T) { + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + var fileinfo fileChanInfo + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + // evolve the key, for good measure. + intialKey := evolveKey(sk0_test, 100) + secLog.keyIter = 100 + secLog.key = intialKey + + // process the log entries and create the gzipped log file + doMoveCompressFileSecure(ps, fileinfo) + + // get the log gzipped file path + logGzipped := listFilesInDir(uploadDevDir)[0] + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // read the batch metadata from gzipped metadata. + aggSig, keyIter, err := getLogVerficiationMetadata(gr.Comment) + if err != nil { + t.Fatalf("Failed to read secure log metadata from %s: %s", logGzipped, err) + } + + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + + if len(logs) < 3 { + t.Fatalf("Not enough log entries to stream integrity") + } + + // get a ranom log entry and delete it + corruptLogIdx := rand.Intn(len(logs)) + logs = append(logs[:corruptLogIdx], logs[corruptLogIdx+1:]...) + + // evolve the key to the same iteration as the one used to sign the log. + verifKey := evolveKey(sk0_test, keyIter) + // verify the log + res := fssAggVer(verifKey, aggSig, logs) + if res != false { + t.Fatalf("Expected secure log verification to failed") + } +} + +func TestTruncationSecureLogVerification(t *testing.T) { + logger := logrus.StandardLogger() + log := base.NewSourceLogObject(logger, "seclog_test", os.Getpid()) + ps := pubsub.New(&pubsub.EmptyDriver{}, logger, log) + + // setup the test environment + makeTestDirs() + defer removeTestDirs() + + scr := logFile + dst := path.Join(collectDir, "dev.log.sample") + copyFile(scr, dst) + + var fileinfo fileChanInfo + fileinfo.notUpload = true + fileinfo.tmpfile = dst + fileinfo.inputSize = 0 + + // evolve the key, for good measure. + intialKey := evolveKey(sk0_test, 100) + secLog.keyIter = 100 + secLog.key = intialKey + + // process the log entries and create the gzipped log file + doMoveCompressFileSecure(ps, fileinfo) + + // get the log gzipped file path + logGzipped := listFilesInDir(uploadDevDir)[0] + rf, err := os.Open(logGzipped) + if err != nil { + t.Fatalf("Failed to open %s: %s", logGzipped, err) + } + defer rf.Close() + + gr, err := gzip.NewReader(rf) + if err != nil { + t.Fatalf("Failed to create gzip reader: %s", err) + } + defer gr.Close() + + // read the batch metadata from gzipped metadata. + aggSig, keyIter, err := getLogVerficiationMetadata(gr.Comment) + if err != nil { + t.Fatalf("Failed to read secure log metadata from %s: %s", logGzipped, err) + } + + logs := make([][]byte, 0) + scanner := bufio.NewScanner(gr) + for scanner.Scan() { + if !json.Valid(scanner.Bytes()) { + t.Fatalf("Invalid JSON: %s", scanner.Text()) + } + logs = append(logs, append([]byte(nil), scanner.Bytes()...)) + } + + if len(logs) < 3 { + t.Fatalf("Not enough log entries to test truncation") + } + + // delete a few log entries form the tail + logsTail := logs[:len(logs)-2] + + // evolve the key to the same iteration as the one used to sign the log. + verifKey := evolveKey(sk0_test, keyIter) + // verify the log + res := fssAggVer(verifKey, aggSig, logsTail) + if res != false { + t.Fatalf("Expected secure log verification to failed (tail truncation)") + } + + // delete a few log entries form the head + logsHead := logs[2:] + + // evolve the key to the same iteration as the one used to sign the log. + verifKey = evolveKey(sk0_test, keyIter) + // verify the log + res = fssAggVer(verifKey, aggSig, logsHead) + if res != false { + t.Fatalf("Expected secure log verification to failed (head truncation)") + } +} diff --git a/pkg/newlog/testdata/dev.log.sample b/pkg/newlog/testdata/dev.log.sample new file mode 100644 index 0000000000..d2373588bf --- /dev/null +++ b/pkg/newlog/testdata/dev.log.sample @@ -0,0 +1,46 @@ +{"devID":"8dbec8c5-91c0-4f4b-85dc-ec67bee778c7","image":"IMGA","eveVersion":"6.8.2-kvm-amd64"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2360 [select, 17 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc00034c600, 0x1d69ff8, 0xc00000eb98, 0x12)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952576111Z\"}\n","msgid":3783,"timestamp":{"seconds":1707911329,"nanos":952576111},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2341 [select]:\\ngithub.com/lf-edge/eve/pkg/pillar/cmd/vaultmgr.Run(0xc0011e11d0, 0xc000e008c0, 0xc00195afc0, 0xc000010720)\\n\\t/pillar/cmd/vaultmgr/vaultmgr.go:858 +0xb6f\\nmain.startAgentAndDone(0x1acbaa0, 0xc000945c01, 0xc000699ef0, 0x8, 0xc0011e11d0, 0xc000e008c0, 0xc00195afc0)\\n\\t/pillar/zedbox/zedbox.go:241 +0x62\\ncreated by main.handleService\\n\\t/pillar/zedbox/zedbox.go:231 +0x3fb\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952591506Z\"}\n","msgid":3784,"timestamp":{"seconds":1707911329,"nanos":952591506},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2332 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000a81500, 0x1d69ff8, 0xc00000fe98, 0x0)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952607158Z\"}\n","msgid":3785,"timestamp":{"seconds":1707911329,"nanos":952607158},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2011 [select]:\\ngithub.com/lf-edge/eve/pkg/pillar/cmd/zfsmanager.Run(0xc00142e570, 0xc000fe61c0, 0xc0015c1470, 0xc0010baf80)\\n\\t/pillar/cmd/zfsmanager/zfsmanager.go:97 +0x605\\nmain.startAgentAndDone(0x1acc070, 0xc000945c00, 0xc000520f50, 0xa, 0xc00142e570, 0xc000fe61c0, 0xc0015c1470)\\n\\t/pillar/zedbox/zedbox.go:241 +0x62\\ncreated by main.handleService\\n\\t/pillar/zedbox/zedbox.go:231 +0x3fb\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952622327Z\"}\n","msgid":3786,"timestamp":{"seconds":1707911329,"nanos":952622327},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2697 [IO wait, 126 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba8f7dc0, 0x72, 0x0)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc000e8d418, 0x72, 0x0, 0x0, 0x1a1d5d2)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).Accept(0xc000e8d400, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:401 +0x212\\nnet.(*netFD).accept(0xc000e8d400, 0x0, 0xc00134bf00, 0x5d0000)\\n\\t/usr/lib/go/src/net/fd_unix.go:172 +0x45\\nnet.(*UnixListener).accept(0xc0017fefc0, 0xc001529380, 0xc00134bf00, 0x20)\\n\\t/usr/lib/go/src/net/unixsock_posix.go:162 +0x32\\nnet.(*UnixListener).Accept(0xc0017fefc0, 0xc001529380, 0xc00034db00, 0x1d69ff8, 0xc001936008)\\n\\t/usr/lib/go/src/net/unixsock.go:260 +0x65\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1(0xc00034dbc0)\\n\\t/pillar/pubsub/socketdriver/publish.go:140 +0x95\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start\\n\\t/pillar/pubsub/socketdriver/publish.go:130 +0xf0\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952638765Z\"}\n","msgid":3787,"timestamp":{"seconds":1707911329,"nanos":952638765},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2164 [select, 120 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000a81380, 0x1d69ff8, 0xc000011890, 0x0)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952655478Z\"}\n","msgid":3788,"timestamp":{"seconds":1707911329,"nanos":952655478},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2165 [select, 1 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000a81440, 0x1d69ff8, 0xc0000118a8, 0x1)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952712681Z\"}\n","msgid":3789,"timestamp":{"seconds":1707911329,"nanos":952712681},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2166 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000a80e40, 0x1d69ff8, 0xc0000118c8, 0x0)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.95272817Z\"}\n","msgid":3790,"timestamp":{"seconds":1707911329,"nanos":952728170},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2167 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000a80fc0, 0x1d69ff8, 0xc0000118f0, 0x0)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952743286Z\"}\n","msgid":3791,"timestamp":{"seconds":1707911329,"nanos":952743286},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2342 [IO wait, 17 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba8f87b8, 0x72, 0x0)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc001235118, 0x72, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).RawRead(0xc001235100, 0xc000e22f80, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:553 +0xff\\nnet.(*rawConn).Read(0xc001ad42d8, 0xc000e22f80, 0xc001ad42d8, 0x0)\\n\\t/usr/lib/go/src/net/rawconn.go:43 +0x68\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub.ConnReadCheck(0x1d69ff8, 0xc00000ea48, 0x0, 0x0)\\n\\t/pillar/pubsub/util.go:82 +0x168\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Subscriber).connectAndRead(0xc0014bc240, 0xc001239f98, 0x6, 0xc0006983f0, 0x6, 0xc00108e000, 0x17b4, 0x17b5)\\n\\t/pillar/pubsub/socketdriver/subscribe.go:251 +0x38e\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Subscriber).watchSock(0xc0014bc240)\\n\\t/pillar/pubsub/socketdriver/subscribe.go:173 +0x45\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Subscriber).Start\\n\\t/pillar/pubsub/socketdriver/subscribe.go:132 +0x470\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952776851Z\"}\n","msgid":3792,"timestamp":{"seconds":1707911329,"nanos":952776851},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2343 [IO wait, 126 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba8f88a0, 0x72, 0x0)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc001234e98, 0x72, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).RawRead(0xc001234e80, 0xc0008bc5c0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:553 +0xff\\nnet.(*rawConn).Read(0xc00000ecd0, 0xc0008bc5c0, 0xc00000ecd0, 0x0)\\n\\t/usr/lib/go/src/net/rawconn.go:43 +0x68\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub.ConnReadCheck(0x1d69ff8, 0xc00000ea30, 0x0, 0x0)\\n\\t/pillar/pubsub/util.go:82 +0x168\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Subscriber).connectAndRead(0xc0014bdb90, 0xc001478f98, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0)\\n\\t/pillar/pubsub/socketdriver/subscribe.go:251 +0x38e\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Subscriber).watchSock(0xc0014bdb90)\\n\\t/pillar/pubsub/socketdriver/subscribe.go:173 +0x45\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Subscriber).Start\\n\\t/pillar/pubsub/socketdriver/subscribe.go:132 +0x470\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952816114Z\"}\n","msgid":3793,"timestamp":{"seconds":1707911329,"nanos":952816114},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2344 [IO wait, 126 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba9c95b8, 0x72, 0x0)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc001318f98, 0x72, 0x0, 0x0, 0x1a1d5d2)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).Accept(0xc001318f80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:401 +0x212\\nnet.(*netFD).accept(0xc001318f80, 0x0, 0xc001238f00, 0x5d0000)\\n\\t/usr/lib/go/src/net/fd_unix.go:172 +0x45\\nnet.(*UnixListener).accept(0xc00131c4e0, 0xc00049ef60, 0xc001238f00, 0x20)\\n\\t/usr/lib/go/src/net/unixsock_posix.go:162 +0x32\\nnet.(*UnixListener).Accept(0xc00131c4e0, 0xc00049ef60, 0xc000ece900, 0x1d69ff8, 0xc0010bbdd0)\\n\\t/usr/lib/go/src/net/unixsock.go:260 +0x65\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1(0xc000ece900)\\n\\t/pillar/pubsub/socketdriver/publish.go:140 +0x95\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start\\n\\t/pillar/pubsub/socketdriver/publish.go:130 +0xf0\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952832812Z\"}\n","msgid":3794,"timestamp":{"seconds":1707911329,"nanos":952832812},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2345 [IO wait, 126 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba9c94d0, 0x72, 0x0)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc001319118, 0x72, 0x0, 0x0, 0x1a1d5d2)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).Accept(0xc001319100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:401 +0x212\\nnet.(*netFD).accept(0xc001319100, 0x0, 0xc001588f00, 0x5d0000)\\n\\t/usr/lib/go/src/net/fd_unix.go:172 +0x45\\nnet.(*UnixListener).accept(0xc00131ca50, 0xc00049f020, 0xc001588f00, 0x20)\\n\\t/usr/lib/go/src/net/unixsock_posix.go:162 +0x32\\nnet.(*UnixListener).Accept(0xc00131ca50, 0xc00049f020, 0xc000ece900, 0x1d69ff8, 0xc0010ba1d0)\\n\\t/usr/lib/go/src/net/unixsock.go:260 +0x65\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1(0xc000ece9c0)\\n\\t/pillar/pubsub/socketdriver/publish.go:140 +0x95\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start\\n\\t/pillar/pubsub/socketdriver/publish.go:130 +0xf0\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952850619Z\"}\n","msgid":3795,"timestamp":{"seconds":1707911329,"nanos":952850619},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2364 [IO wait, 126 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba8f85e8, 0x72, 0x0)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc001235998, 0x72, 0x0, 0x0, 0x1a1d5d2)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).Accept(0xc001235980, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:401 +0x212\\nnet.(*netFD).accept(0xc001235980, 0x0, 0xc0007a4f00, 0x400000)\\n\\t/usr/lib/go/src/net/fd_unix.go:172 +0x45\\nnet.(*UnixListener).accept(0xc000d19020, 0xc00093d620, 0xc0007a4f00, 0x0)\\n\\t/usr/lib/go/src/net/unixsock_posix.go:162 +0x32\\nnet.(*UnixListener).Accept(0xc000d19020, 0xc00093d620, 0x0, 0x0, 0xc0007a4f90)\\n\\t/usr/lib/go/src/net/unixsock.go:260 +0x65\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1(0xc000a80600)\\n\\t/pillar/pubsub/socketdriver/publish.go:140 +0x95\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start\\n\\t/pillar/pubsub/socketdriver/publish.go:130 +0xf0\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.95288038Z\"}\n","msgid":3796,"timestamp":{"seconds":1707911329,"nanos":952880380},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2377 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000ece900, 0x1d69ff8, 0xc000010d78, 0x0)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952895921Z\"}\n","msgid":3797,"timestamp":{"seconds":1707911329,"nanos":952895921},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 462598 [select, 4 minutes]:\\nnet/http.(*persistConn).writeLoop(0xc000322a20)\\n\\t/usr/lib/go/src/net/http/transport.go:2382 +0xf7\\ncreated by net/http.(*Transport).dialConn\\n\\t/usr/lib/go/src/net/http/transport.go:1744 +0xc9c\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952910582Z\"}\n","msgid":3798,"timestamp":{"seconds":1707911329,"nanos":952910582},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2383 [chan receive, 126 minutes]:\\ngoogle.golang.org/grpc.(*addrConn).resetTransport(0xc0013d3600)\\n\\t/pillar/vendor/google.golang.org/grpc/clientconn.go:1213 +0x465\\ncreated by google.golang.org/grpc.(*addrConn).connect\\n\\t/pillar/vendor/google.golang.org/grpc/clientconn.go:843 +0x12a\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952945459Z\"}\n","msgid":3799,"timestamp":{"seconds":1707911329,"nanos":952945459},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2385 [IO wait]:\\ninternal/poll.runtime_pollWait(0x7f79ba8f8418, 0x72, 0xffffffffffffffff)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc001319998, 0x72, 0x8000, 0x8000, 0xffffffffffffffff)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).Read(0xc001319980, 0xc000e80000, 0x8000, 0x8000, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:166 +0x1d5\\nnet.(*netFD).Read(0xc001319980, 0xc000e80000, 0x8000, 0x8000, 0xacdd3e, 0x800000601, 0x0)\\n\\t/usr/lib/go/src/net/fd_posix.go:55 +0x4f\\nnet.(*conn).Read(0xc000010f28, 0xc000e80000, 0x8000, 0x8000, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/net/net.go:183 +0x91\\nbufio.(*Reader).Read(0xc0012af260, 0xc000618b98, 0x9, 0x9, 0xc0008ca480, 0xc00146ddd8, 0x405cc5)\\n\\t/usr/lib/go/src/bufio/bufio.go:227 +0x222\\nio.ReadAtLeast(0x1d221a0, 0xc0012af260, 0xc000618b98, 0x9, 0x9, 0x9, 0x18, 0xc000432570, 0x462780)\\n\\t/usr/lib/go/src/io/io.go:328 +0x87\\nio.ReadFull(...)\\n\\t/usr/lib/go/src/io/io.go:347\\ngolang.org/x/net/http2.readFrameHeader(0xc000618b98, 0x9, 0x9, 0x1d221a0, 0xc0012af260, 0x0, 0xc000000000, 0xc00146de3f, 0xc00146de01)\\n\\t/pillar/vendor/golang.org/x/net/http2/frame.go:237 +0x89\\ngolang.org/x/net/http2.(*Framer).ReadFrame(0xc000618b60, 0xc000975c68, 0xc000975c68, 0x0, 0x0)\\n\\t/pillar/vendor/golang.org/x/net/http2/frame.go:492 +0xa5\\ngoogle.golang.org/grpc/internal/transport.(*http2Client).reader(0xc00110bc00)\\n\\t/pillar/vendor/google.golang.org/grpc/internal/transport/http2_client.go:1330 +0x185\\ncreated by google.golang.org/grpc/internal/transport.newHTTP2Client\\n\\t/pillar/vendor/google.golang.org/grpc/internal/transport/http2_client.go:345 +0x1011\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952960808Z\"}\n","msgid":3800,"timestamp":{"seconds":1707911329,"nanos":952960808},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2386 [select]:\\ngoogle.golang.org/grpc/internal/transport.(*controlBuffer).get(0xc000afe1e0, 0x1, 0x0, 0x0, 0x0, 0x0)\\n\\t/pillar/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:395 +0xff\\ngoogle.golang.org/grpc/internal/transport.(*loopyWriter).run(0xc0012af380, 0x0, 0x0)\\n\\t/pillar/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:515 +0x1dd\\ngoogle.golang.org/grpc/internal/transport.newHTTP2Client.func3(0xc00110bc00)\\n\\t/pillar/vendor/google.golang.org/grpc/internal/transport/http2_client.go:391 +0x7b\\ncreated by google.golang.org/grpc/internal/transport.newHTTP2Client\\n\\t/pillar/vendor/google.golang.org/grpc/internal/transport/http2_client.go:389 +0x11e7\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952978372Z\"}\n","msgid":3801,"timestamp":{"seconds":1707911329,"nanos":952978372},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 3071 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc00034dbc0, 0x1d69ff8, 0xc001936008, 0x0)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.952993734Z\"}\n","msgid":3802,"timestamp":{"seconds":1707911329,"nanos":952993734},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2422 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000ece900, 0x1d69ff8, 0xc000011430, 0x1)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953045486Z\"}\n","msgid":3803,"timestamp":{"seconds":1707911329,"nanos":953045486},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2940 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000ece900, 0x1d69ff8, 0xc0010bbdd0, 0x6)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953060295Z\"}\n","msgid":3804,"timestamp":{"seconds":1707911329,"nanos":953060295},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2469 [chan receive, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/worker.(*Pool).mergeResult(0xc000d8f800, 0x1d6d388, 0xc001551e60)\\n\\t/pillar/worker/workerpool.go:93 +0x170\\ncreated by github.com/lf-edge/eve/pkg/pillar/worker.(*Pool).TrySubmit\\n\\t/pillar/worker/workerpool.go:178 +0x3c5\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953074872Z\"}\n","msgid":3805,"timestamp":{"seconds":1707911329,"nanos":953074872},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2945 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953089735Z\"}\n","msgid":3806,"timestamp":{"seconds":1707911329,"nanos":953089735},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2468 [chan receive, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/worker.(*Single).processWork(0xc001551e60, 0x1d24a40, 0xc001056ed0, 0x171e680, 0xc0014ce3c0, 0xc000e07e00, 0xc000e07e60)\\n\\t/pillar/worker/worker.go:141 +0x2c5\\ncreated by github.com/lf-edge/eve/pkg/pillar/worker.NewWorker\\n\\t/pillar/worker/worker.go:117 +0x24c\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953122888Z\"}\n","msgid":3807,"timestamp":{"seconds":1707911329,"nanos":953122888},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2405 [select, 1 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/flextimer.flexTicker(0xc001490000, 0xc000d7b1a0)\\n\\t/pillar/flextimer/flextimer.go:153 +0x2f5\\ncreated by github.com/lf-edge/eve/pkg/pillar/flextimer.newFlexTicker\\n\\t/pillar/flextimer/flextimer.go:117 +0x67\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953153353Z\"}\n","msgid":3808,"timestamp":{"seconds":1707911329,"nanos":953153353},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2910 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953209123Z\"}\n","msgid":3809,"timestamp":{"seconds":1707911329,"nanos":953209123},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2906 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953246339Z\"}\n","msgid":3810,"timestamp":{"seconds":1707911329,"nanos":953246339},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2908 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953261833Z\"}\n","msgid":3811,"timestamp":{"seconds":1707911329,"nanos":953261833},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2909 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953276606Z\"}\n","msgid":3812,"timestamp":{"seconds":1707911329,"nanos":953276606},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2946 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953291616Z\"}\n","msgid":3813,"timestamp":{"seconds":1707911329,"nanos":953291616},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2912 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953308511Z\"}\n","msgid":3814,"timestamp":{"seconds":1707911329,"nanos":953308511},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2911 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953323695Z\"}\n","msgid":3815,"timestamp":{"seconds":1707911329,"nanos":953323695},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2546 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000ece900, 0x1d69ff8, 0xc00000f4f0, 0x2)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953342048Z\"}\n","msgid":3816,"timestamp":{"seconds":1707911329,"nanos":953342048},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2667 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000ece900, 0x1d69ff8, 0xc0010ba198, 0x5)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953373872Z\"}\n","msgid":3817,"timestamp":{"seconds":1707911329,"nanos":953373872},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2668 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000ece9c0, 0x1d69ff8, 0xc0010ba1d0, 0x0)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953388599Z\"}\n","msgid":3818,"timestamp":{"seconds":1707911329,"nanos":953388599},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2696 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).serveConnection(0xc000ece900, 0x1d69ff8, 0xc0010bb0c8, 0x4)\\n\\t/pillar/pubsub/socketdriver/publish.go:267 +0xaed\\ncreated by github.com/lf-edge/eve/pkg/pillar/pubsub/socketdriver.(*Publisher).Start.func1\\n\\t/pillar/pubsub/socketdriver/publish.go:148 +0x274\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953424684Z\"}\n","msgid":3819,"timestamp":{"seconds":1707911329,"nanos":953424684},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2698 [chan receive, 126 minutes]:\\ngithub.com/lf-edge/eve/pkg/pillar/cmd/zfsmanager.deviceWatcher(0xc001529500)\\n\\t/pillar/cmd/zfsmanager/zfsmanager.go:161 +0x234\\ncreated by github.com/lf-edge/eve/pkg/pillar/cmd/zfsmanager.Run\\n\\t/pillar/cmd/zfsmanager/zfsmanager.go:94 +0x545\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953455524Z\"}\n","msgid":3820,"timestamp":{"seconds":1707911329,"nanos":953455524},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2699 [syscall, 126 minutes]:\\nsyscall.Syscall6(0xe8, 0x162, 0xc0015a7c2c, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x6666666666666666, 0x3a646e427061430a, 0x6631303030303009)\\n\\t/usr/lib/go/src/syscall/asm_linux_amd64.s:43 +0x5\\ngolang.org/x/sys/unix.EpollWait(0x162, 0xc0015a7c2c, 0x7, 0x7, 0xffffffffffffffff, 0x530a30093a737265, 0x0, 0x0)\\n\\t/pillar/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go:77 +0x72\\ngithub.com/fsnotify/fsnotify.(*fdPoller).wait(0xc001427840, 0x0, 0x0, 0x0)\\n\\t/pillar/vendor/github.com/fsnotify/fsnotify/inotify_poller.go:86 +0x91\\ngithub.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc000ae5400)\\n\\t/pillar/vendor/github.com/fsnotify/fsnotify/inotify.go:192 +0x206\\ncreated by github.com/fsnotify/fsnotify.NewWatcher\\n\\t/pillar/vendor/github.com/fsnotify/fsnotify/inotify.go:59 +0x1ab\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953492281Z\"}\n","msgid":3821,"timestamp":{"seconds":1707911329,"nanos":953492281},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2905 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953508165Z\"}\n","msgid":3822,"timestamp":{"seconds":1707911329,"nanos":953508165},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 2907 [select, 126 minutes]:\\ngithub.com/lf-edge/eve/libs/zedUpload.(*DronaCtx).ListenAndServe(0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:132 +0xa5\\ngithub.com/lf-edge/eve/libs/zedUpload.NewDronaCtx.func1(0xc000647014, 0xc0006ba390)\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:281 +0x53\\ncreated by github.com/lf-edge/eve/libs/zedUpload.NewDronaCtx\\n\\t/pillar/vendor/github.com/lf-edge/eve/libs/zedUpload/datastore.go:279 +0x171\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953525183Z\"}\n","msgid":3823,"timestamp":{"seconds":1707911329,"nanos":953525183},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 448311 [IO wait, 7 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba900478, 0x72, 0xffffffffffffffff)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc000eb3a98, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).Read(0xc000eb3a80, 0xc00174a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:166 +0x1d5\\nnet.(*netFD).Read(0xc000eb3a80, 0xc00174a000, 0x1000, 0x1000, 0x43a17c, 0xc00134dc38, 0x465b00)\\n\\t/usr/lib/go/src/net/fd_posix.go:55 +0x4f\\nnet.(*conn).Read(0xc001937e78, 0xc00174a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/net/net.go:183 +0x91\\nnet/http.(*persistConn).Read(0xc0017da5a0, 0xc00174a000, 0x1000, 0x1000, 0xc00093daa0, 0xc00134dd40, 0x405755)\\n\\t/usr/lib/go/src/net/http/transport.go:1922 +0x77\\nbufio.(*Reader).fill(0xc00195e480)\\n\\t/usr/lib/go/src/bufio/bufio.go:101 +0x108\\nbufio.(*Reader).Peek(0xc00195e480, 0x1, 0x0, 0x1, 0x4, 0x1, 0x3)\\n\\t/usr/lib/go/src/bufio/bufio.go:139 +0x4f\\nnet/http.(*persistConn).readLoop(0xc0017da5a0)\\n\\t/usr/lib/go/src/net/http/transport.go:2083 +0x1a8\\ncreated by net/http.(*Transport).dialConn\\n\\t/usr/lib/go/src/net/http/transport.go:1743 +0xc77\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953540644Z\"}\n","msgid":3824,"timestamp":{"seconds":1707911329,"nanos":953540644},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 448312 [select, 7 minutes]:\\nnet/http.(*persistConn).writeLoop(0xc0017da5a0)\\n\\t/usr/lib/go/src/net/http/transport.go:2382 +0xf7\\ncreated by net/http.(*Transport).dialConn\\n\\t/usr/lib/go/src/net/http/transport.go:1744 +0xc9c\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953556906Z\"}\n","msgid":3825,"timestamp":{"seconds":1707911329,"nanos":953556906},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:181\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"log_event_type\":\"log\",\"msg\":\"goroutine 462597 [IO wait, 4 minutes]:\\ninternal/poll.runtime_pollWait(0x7f79ba8f7b08, 0x72, 0xffffffffffffffff)\\n\\t/usr/lib/go/src/runtime/netpoll.go:222 +0x55\\ninternal/poll.(*pollDesc).wait(0xc001882b98, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:87 +0x45\\ninternal/poll.(*pollDesc).waitRead(...)\\n\\t/usr/lib/go/src/internal/poll/fd_poll_runtime.go:92\\ninternal/poll.(*FD).Read(0xc001882b80, 0xc00182b000, 0x1000, 0x1000, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/internal/poll/fd_unix.go:166 +0x1d5\\nnet.(*netFD).Read(0xc001882b80, 0xc00182b000, 0x1000, 0x1000, 0x43a17c, 0xc00158cc38, 0x465b00)\\n\\t/usr/lib/go/src/net/fd_posix.go:55 +0x4f\\nnet.(*conn).Read(0xc000f882f0, 0xc00182b000, 0x1000, 0x1000, 0x0, 0x0, 0x0)\\n\\t/usr/lib/go/src/net/net.go:183 +0x91\\nnet/http.(*persistConn).Read(0xc000322a20, 0xc00182b000, 0x1000, 0x1000, 0xc0013c6ae0, 0xc00158cd40, 0x405755)\\n\\t/usr/lib/go/src/net/http/transport.go:1922 +0x77\\nbufio.(*Reader).fill(0xc0014e9e00)\\n\\t/usr/lib/go/src/bufio/bufio.go:101 +0x108\\nbufio.(*Reader).Peek(0xc0014e9e00, 0x1, 0x0, 0x1, 0x4, 0x1, 0x3)\\n\\t/usr/lib/go/src/bufio/bufio.go:139 +0x4f\\nnet/http.(*persistConn).readLoop(0xc000322a20)\\n\\t/usr/lib/go/src/net/http/transport.go:2083 +0x1a8\\ncreated by net/http.(*Transport).dialConn\\n\\t/usr/lib/go/src/net/http/transport.go:1743 +0xc77\\n\",\"obj_key\":\"sigusr1_stacks\",\"obj_type\":\"sigusr1_stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953571822Z\"}\n","msgid":3826,"timestamp":{"seconds":1707911329,"nanos":953571822},"filename":"/pillar/agentlog/agentlog.go:181","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} +{"severity":"warning","source":"zedbox","iid":"2003","content":"{\"file\":\"/pillar/agentlog/agentlog.go:183\",\"func\":\"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals\",\"level\":\"warning\",\"msg\":\"SIGUSR1: end of stacks\",\"pid\":2003,\"source\":\"zedbox\",\"time\":\"2024-02-14T11:48:49.953589346Z\"}\n","msgid":3827,"timestamp":{"seconds":1707911329,"nanos":953589346},"filename":"/pillar/agentlog/agentlog.go:183","function":"github.com/lf-edge/eve/pkg/pillar/agentlog.handleSignals"} diff --git a/pkg/newlog/testdata/perf/README.md b/pkg/newlog/testdata/perf/README.md new file mode 100644 index 0000000000..44f8f15164 --- /dev/null +++ b/pkg/newlog/testdata/perf/README.md @@ -0,0 +1,39 @@ +# Performance Data + +This directory contains performance data for the secure logging mechanisms introduced to `newlogd`. The algorithm used is "Forward-Secure Sequential Aggregate Authentication." + +Each test consists of 10, 20, 30, 40, 50, 100, 200, and 500 runs. A single run is the time required to process a batch of logs. Each batch of logs contains roughly 400 log entries, with each entry varying in size. The base log file is artificially grown by appending its content to itself, so consider a small +/- degree of error in benchmarks compared what you might see in the real world. + +This is a microbenchmark, calculating the performance degradation only for the log processing function `doMoveCompressFile*`. + +## FssAggSig + +This is the cost of computing the aggregated signature for each batch of logs. The results show that adding the aggregated signature to each batch of logs incurs a performance cost of 28% to 46% per processed batch of logs, with the cost dropping on higher-count runs as system caches are utilized. + +![](fssaggsig_overhead_and_cost.png) +*FssAggSig Overhead and Cost* + +![](fssaggsig_average_secure_non_secure_time.png) +*FssAggSig Timing* + +## FssAggVer + +This is the cost of computing the verification result of the aggregated signature for each batch of logs. This can lead to exponential growth as the number of key iterations increases. + + +![](fssaggver_overhead_and_cost.png) +*FssAggVer Overhead and Cost* + +![](fssaggver_average_secure_non_secure_time.png) +*FssAggVer Timing* + + +## FssAggVer with Cached Keys + +This is the cost of computing the verification result of the aggregated signature for each batch of logs. In this run verification key is cached for every multiple of 10,000, allowing the verification algorithm to use shortcuts to verify the logs faster. The results show that verifying each batch of logs can add a performance cost of 35% to 53%. + +![](fssaggver_cached_keys_10000_overhead_and_cost.png) +*FssAggVer (with cached keys) Overhead and Cost* + +![](fssaggver_cached_keys_10000_average_secure_non_secure_time.png) +*FssAggVer (with cached keys) Timing* \ No newline at end of file diff --git a/pkg/newlog/testdata/perf/fssaggsig_average_secure_non_secure_time.png b/pkg/newlog/testdata/perf/fssaggsig_average_secure_non_secure_time.png new file mode 100644 index 0000000000000000000000000000000000000000..ae0d5750d6f7caaa2eadcebe943e9fd08d5771bd GIT binary patch literal 54657 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 literal 0 HcmV?d00001 diff --git a/pkg/newlog/testdata/perf/fssaggsig_overhead_and_cost.png b/pkg/newlog/testdata/perf/fssaggsig_overhead_and_cost.png new file mode 100644 index 0000000000000000000000000000000000000000..0107c8e19efcfdea39c8ae2a4c19f4e2c8ccd613 GIT binary patch literal 56593 zcmcG$cR1GV8wY$_DU?uALfK@OJ&VYetn7^Jy|*Yrkr5%YWD_CWX0m1Pz4zYRdw!qa zyZ(QV*HOpw(A|As-)o%bXI%v;DM($#yMu>9p{`0llTb#Xuoh7$OpVKz;3r#@ZFKM- ze#fU8jxTIpJG#8GH%7_7a@;siUKPo2u~;sn_p8tM&0n%w?VO!$owAt? z7s+=Q$&YlL?3JrWw9c(Z=yrRopPY$=DKMppN&N52tc5Ap#rOUHzQ~eEi2nQH$G)`q zf4<Qke|xEsdXmpMfAB3bii z8^mdT>556Iib*0(kqm^60u%w)DB}9jMlP~3Z13Pb!)c_t-PPZ}w`@QqF#7i>XcRTq z)nU=eM*oFRvt4MXKwGaIO!zb|c71!EuPe;*vJgAT`#4i)AnB#mSozI=aopnjt3y|P zs^N{MYyEM}DlLo{o(A9GJW8Bz`HcVO&6~j@v&gaEecz-APj@;*zX&)ntL13CS?Ong?MF*V z#J-i)+&~efg*Hbr(A>L+f@K{?dWP`mgJlj3F!Im+XlZAqGJE3> zWSp2N+nsrN7VXmOYs1BLr$;+o)jmFG%bEHR(#uz_)D9LHQe+*7yE`v+(>*fl#vaJi z5pN8o==yD=S6Ws!HQO9{cz&``VAex_3bXD!v0mY}^NB|4+V1L5PwLzSjIcLPhn$37 z?&nDrE$u!hg;tg4k+Kz)C8y81=i%Yunh%MVV^4kqA1Z8SIT5E)|ZT@z9u5|`ByJ=@KMny%%W|tJzU}j9?AV@Tmk}jUi^@ITwqW?xxOAs{WN&;TbRfbBct!lC=Xi{#A{s&W5K+39B@^`5xU0!$Kmx&^>38(8rOuJHXJiWZSDm`2xjd^UwKft`!!IR9j ze6HJH8=0{Zee~!?rN@Ef`e@nJR#x4LL8I6hc0GgB!>tUp+&iadXH#oyAK^1j;jC@- z9~^EO!Wkfe($*9~hwr|-_{xs7H;|CZV74hdLn#H*)6;WuVIdGU_{`rR68hG9k@X)6 z3Bi~+cr{SZK9ch`yu&A*&UNWZeafhoLnb6F{QTEzd2C!DYP#6eXqL>V~DT-$u zdiOnG=Nul+goTUxc)Pl}y*k{SV$?3>KL8JNo;D|%@MM3jZgZ+G{Go{g z%=$MdTmksk3(k&L@=XVS-iMinfds<-)$hwvrEk3}{h>4ymW?OADLU7v>BdIuYNd$!qs zywW3{;t$E4JHamFZn#I=bN*Xh6 z{IXVgopx(t=TS|8 zVWXVpD5a3AFYKCcPy}3e{_%zjx>&2^>r#Z=V*QgM9=JK?GJ%0w?$5;+(_D>V)q?IR zp#S$h5ufYky&v-N0l!Q-8psVj)<^jr;e4DO@719*VwF8!V)w!Gm#lpSsprEI>Pg9W(WjcicB51mFAo$b^85 z1La;xiG_RZ(NG{hDO<95;5FBU1eZ?er7XG?WWpZ%5>UpJ03x6wY?)v>Oga*uZj4tx zFE&>lt@fdUc2x^oAE}Oud+rrm4dh7UJKkRl;WBQS1e8&m^YYi`gwF+C+}9PTFMKZR zcis0_uZW6@{%Wl_+aLMD@d~rVdMubtr#u-d|KWVR%_ek>WW&bLfVo6bpHO&@+c1nr z*vAjla>T+Yg|FYZ@%Hw^*ONy(3tvQiM4*U=!HZ+Dt-HFqF5}@nfhpRmC)N8x5QGec z$9nWV2G*q-C?fFoPhpeWtqpV66*vL#fJQg+Nrla%{p%r80@?*P?gycX;-;YF&LC{zo*GAudy-dzF5rcaJaOz--0wG3e%7ALAj;avO6$Md8}g;8Gd zPAt$Vcf1nMYan*wn#sQeHnaycJfW@xAh^w ztgaMsTMo#(Z+S=Ntvi^Wc!9ayHIu_H{?%M}U-d01V+XaZt1E2_vgKt+1dsAE@aM z{(Qx#lIRPi%?%$x!lZ24H2_?%!_q>rN`dp>dV0tiKycfjFb_cOJ!)!9uao_E zP*I>JMK7Lw3=ZZh)6d-6-{;x=FkE1W3p@R-Zl(Ku*i}f8yTz*c76v#2rxhwc%4kpu z%IX%U0vn|y5tYLFvQPp; z$>(${5H?d{Ie-n#U#~y5BnqRqcXw5Itw)t$;-9y-x0^5bX42=MEhPCwg@lAOpTd4& zMw!?8;cS&42zqX9&5CQ|aBBw7cey7$toanSDKl!hL-gWN+XL;=pP0!dHWSu`t9m|X zX{Zcnx!KTD@65Zb4XZ9W3iQEJMb54CW`4sXWwYekfc>+z&&$a8>?W&buTf$Np~wCz zXB*n%AkW^#MV&_S14kRVsCNZsG8|Jfn@aaeU8c0&;F}MkV4d-pM%PH`Rg@Z=?7(*qobqDEY<8gCGpTi`>MP=B8|OIx1=Huc4wPOKGVtG+FM6& z#Id-X>|4!kY}jyB!}-MXz4P$3T!j^ulC`z<@}GD30d5QmUzJe3>Uv(rUk;!GWIz|n zIyu;guc(5J-!d^VvH3eFG*m4-Jer{EZEJLHSq4$%|n>Fgdd6nC@fUSh*dyGuKvP>l)Yk(`V zs(IQ&MrCkfnNV4;>H>n+!<6kuxvhp(#?UT`$nOL`yC+Ud-A^%;piHRAygcVOKhY^N z?Q(5AgMM`rwRg0T6yIjk^W&qvgTo6_cHKv9Xt$jo+k1Pe(1$qMdb|~(PUfe6`zGI? za>kRRS=_?00aaNQh0L^o?WFIkbAWTVHf)U71@90Or=l_t)Hf0c%!#bZLWYUka*$(g zbu|YVPfnEbGJwIBfdO?u0svx#+U7?Y%XW~~opnl#&aYJ89i@Lire=ceF`GIM1hoA!v;~LFemM3XE@T zj@VS^e*OBjcd9OMhBg0ejYXJ;nCsOaY#gx!K^FyNGIh%Ap8_1zaC3Lh`pWN+1xGlx zq8hs9UoEM+fUEN7Y|-bT*NMyq>k}9wO}oEev7c`X0#KU@8v;sdEp+8iu;naAONpR& zCI~qFIXgMH`XW)tO(|6($W`aV*w|QCwmN%A3EFCe2UP>0N`BrVmk)t2&8NP;C~O>@ zSe*eF=vCm7bu)m{9y7f|KnaU_wi+u^RiTvyxD_-O1ipJW1w|KW9!S~v`I94Z05C#- zXByF`=pV{yGE-1J1Kh}YEX4rib(UC-xSnJdALeNNzGmDK^?0c}OX`H=-7P8l=kyg-K8S)K0Fzw$Tb`socqw#d@jy- zQ8hzDL!Ed(23EEujsmin?|q*uN=TbgccHHFiZdK|DFA8gnZe(lGZPzFLMh%61PVJb|8 z#&2tiarYJ0wlAD@Ssl-NpqPbh^Ztdmgx)O`&ts)jWcs}B6hWEL!vGuPPm%RhoUEg_ z0(4Nmz>CTqmkeCBvs9Rjnj>&v`Z&$r4XihwE7XqVoL#=Y&+Khgky1- zhq3Jv6ckk3m#vP`WOoi_=fmxXmnbPI>GS(^T}}_}zKZ%#j+Hyr!DA96Ey0HFEVVO) z=7;NEDN@_PCL|=(ypbU(sBnpZOutYRNR9-o*wyNHnv`KWXy>V}Z&J5%N7P12ti)k+ z$!&isEia!2%H0V4qQK+8I&u!_Zt(b;73Z*tUIF6R`Y|{Xa^@2D{(TK>%I9cjD-_4+ z*q*yELXgyQHDhxHuAlIsB1Cv1l;KHd+hR#TN_mVRIv~%d0QQ?@GU9qSE)#_Z=!^oN zx2Zb11a0jt07m5p1i}073%j(D%E*^c6OFButId}*6T&e3Y!TL1QguAe}AjN6n1+o zwzA!CtY-ragAA=u#v}j*kc_H}i2(2Gpm%-Z0mKJeFFRq^;*I+gm=ix>ueT{()<K+R!S@<9u7JzuV6I6jU+# zneE~kx`KlYCx^cAZ_WgbXXmg$ao82onX1{hM2==j799nE-KEIIas{w;0Bb2;cEBdS zV5cz>-G;C+E?f~_o=)O3d zEWy`pU)~VWNZx~K%Fsdc==z*FA;=rly0E7sg}v~I&r>C?)Lmf8|JR{j8ZL3BHHXvS z#yv8NSmYw468ZaGI`Zf1e{rsjKlfd#T{bBH)YXxkX*ERm7KBFu>8$DKAcTdf1LS1~ zY|4n?f&97%(ewFQ5d0#Me(kpx3R4Htp!eC{0Jc`W!LK<9x^-!fC&XI6%e-VQtDOCO zfMp>R7Z6WFjGi}AZ~y%JcNNyL4j9CA@h7@s5!t0Zca;n!3_b6ow4ntO^7x#Ddr3lW zT(!n|x|PA3o3@c{ZN(M?lHt@(H)p~`kz;-cjS)d^j_adCM%Ad>f!6D9MXee9v19dh&K|w>HS@g}Z5i324qV=VAGo1ic zVLfp`Ch`Za1*q7(q_|hNQCyiA|8>sMU2dkAXZKQ^Mvf_Pj7B#j=wvw@7nML_!u_9Q z3J_T~_)Mp057^g2z+GIs`m?i;T*swuKIc_31lK#{VK^XA8_w!0ApeJJzb81XNBNLF z0ICT?mP)3AwkAI7Sz#X;K8@_ zk~^bVUJ@e$FR)%tllHs6#!QRbwn5P;Z$3pv4G;(#P$OXQ=ii?ZiN`#*sz%)dcq(0D zO{WfjIJL48^5x4H+TX?AXYMyxHE)pfT0c6fnC`b?1ChjeeKZIJ=QwP|h4zGBrb!4m zR@ZgI0XS3HeA*aBMXu12n?g|s2cLK8^YxoI-?hfDe}lrMmj95=LPScde{F8gcz@>v z+5+$}qk+kX_d$#TbSTW>FfUhE@&5hgkY78EX%q|aV8H|a4C`E=V(@t7@-~E)pS61WH*f?Ov}tk14b?pvTp;J`OJswT@oyi!acHsYWWF zM+8$%aopKMhC46{wY{(Rse?ldVfCPO`~Uj&5U|>f4f87H7Rxen*<#Z!OcbJoL>_5o z+qXuuTIv2yD~b*&)p;Gm^3q^O0BIetWPe+qPSZ^Z&&7&g#X1#J5LhYx>&>f_!*%GzCY6 zdr2}+T7f^c6!1eAU~|jCpS7#aPODb2CxR3p9YMjT&o=`F4}qjDvq<9yF|yD#X_|6j zr9U@BeYr&$3X>G3 zpRre)MWvS5DQ2)ec2BxStvA?SHL~!jc@s!?Wuni_UPZ#Is^g3^+XF6`SAESuA+Tp zL~y849dsO9;24ps^MKk8m$UOHXJ-6?Rnc3VNpl_~;7(su+uGYd0RXZI?!*khn63WE z?%YmjK~kW6$(aw6!WlxOy`y%Uv2t!*Gi7ROivpa4_XyDP+-_z#+^i$Cn`^lV4{`~> zTdC&}7mwBOTOhcIHp!EVhRqG!9v7jKu>ZdSh2V2sybkR!0A4rwSzWha2OX3T(_!o2 zAfBz3+X)f_(j_OnPgoHR5enr{Q9Eb?uRuIm94w%5KUn_=b2SAZda%$K{}zjeFSrm> zxxdH%APO@;(iu3;Pk?n_Cn50%utzF-e)uhA+~Wx%Wgv0@EF7Q1JOT18QomuhH-Kh~ zD2_RL)gro~zChhlUALym1f5x^X=voje`9rP@`1%rvDdGap;^ofXv`0w%`{Yr!?_qe zC9sA(p?mOnvCYdRiBQ0*kirPxA^HrWUBhQ?!GVUde_jLskMT^=7j&sqP%%x13hCJN zsy^W0-%188p1$@4%mDIs2v~!v^B78bf!&PcubHTSZtw}5Zret?%YFF3?(0P_PW^$H z4393)fpDTIa)gZtaLE1w3tu$OF)=@ql_Drx_7Wfb?_~Td0f2a_62>pb%TgbhMOHz-jp{ zobEsM^*FG1{{VZEBi>X69R|=}BSVs>AFL-0%-@yy&(EGsRCyKHPCY?{Rw$%Tp#%Sf z+6|I0Apo-yJ`CL_Fw(26=LJWHhshw8fgC07f9dKbQ0V*2%y>{N8)1utLZxo>_?MpK z9Sqf+0-(jCs9aEvZvk5j1Svl*3bU9O22OCB3;Ubo$3GzRcjdf%2!a}7CrJHz{jW3g z1%q~lD-o1jf9Y;HYU=p!YUQrfGUS>=w;j^VriXvN^3T$%uG-$;R~sK6&w|ctK3Vf- z8K6sm@f{w^jF!(2O!oKYTXLAvR8&-=5DbKO`La@8US5`dt=}?~eHC!`=v!kSV117& zko#Bew8G+UqnY^?py};-tD(ZDsyQ0Z-CSKWKrzk$oiYPR!voYZ>=o&C@zHL68K%9- zS}bmmzdi$roSUEj0g_oVVmByXT7lYX-tgge7F3^>u`wOve{rfX z_JMWcG}}Z}$93gQ{&NJE1*pCscqg=vQlNxpyurfF0?fq>v-_Drk+Khn3bYXFIxf&; z5N|XKL}p}2s+r19!Io9s1Eo-Rr~;ReGUNBSyDW$?Og=t7aCU7nfmXiMer*LBHnYum zMN3c53#jCZ@7}(p)u3crw@d&0H5i=$7&;TE@Z9=(9=KR}0K5$MOF0=*X4u$dMH=7k z3+`9NKbYEsy_gMMWo~BX8`uoJ5ArKg_ctbN3grx{8Lpi1(C&^;Q;I_8R)&47%x^!d zgs24Y+-Hb~8k+ug|FOpel!}<vapufpi3wLwQDsR0>qicteV9LuGnW* zEuKE`qnu_MuGZ}wY)q)b9IF7NMfMtKNqUH2at6K+{YshFNs0MTVH!v@#Tj4qp7;d9 zDv*h|@bdDi0$y`%bT(*|Hy9DeH10R>NwOI&O&Kn+$_8;X6^tuYC^LQk;(0+q0c9i7 z3GjhxCG>7)&~lMQ0<}%$>RrB0rK+}JLmD=R3&BS~4-heH)*+GK;YSM)eMErUTkd-y z6?#{CAK`lnOs~^Hy+pobEbjXMe+(qV6pg>xr3N1phAIvY+|=yfl{^1s9HPnqS|TDX zs6uZ-@Wq>>Y83mPATI;qv&WtHe~F3iUhqbg;E)%Me6_LG?~vBuE(q?I8OjgmG;U8Uk-tb?Er%&(0bRusZwc@$?RDopXyT&_d^prMHns?7MWx?#)9`9#P-X(oo0V+0dE|m#>y7q`uvB{nq=(@S`$* z7`KeP&^Ti;-*Uk%3W|h&^rxw%C}rkcmp^~wxNCYdyX(j5uuOX|XK24{NN(iT_r)GJ zX{W7JU}wKw?Y%_}#&!2JB{6mG_G`JXd_*7&1@m5jHzgi=mp{i#{eO9urD2dEy3!S? z5Qdvq=iS^?fVsOe0O5=`6oMZNJ4o<4^(s)?^EeG3u_QnIv=)qE!>A9&@HxeJWNqmj zUdp-%P9dXK2@BG}0e&%*E`Rw#23k^GcNjOUEGV^7a11G!F|dv0gvQ@0r2B(X@s*@h zOsbg_pg*GZ7Z2zovs|gPZPq;y#XM?*NWH{u$IAstm~l0 zDJw7MGEG&fHT+0yxZ)O9wzqk~m=;hZ)K4rZI{hv)YC$8(cBY|5^x{kVN*_L>&K-!X z^sFyV_z+fXUHbGeeQ%`94$E~@OmlKg;-stN^8-?-kSyoaK#~z`2ZgXL;2BeBW4w~g z6!cd_J3|c?J5m!7@l$Gb^h{4*JeOfLv&-2!ZQ|rp^Ic!Tk7BnG=orz8D63EOner>j zvKe{pEu1Ec)$;?xYD7lzP&(3ge~m8Wq&}o(u?yUOW&E*gpmY<69uJX73z>xK<~KqE zpPHJgrE-_C6B_>j9y10C2~|L#XmBjyJ)^%&yPKx=si;gQU2Z6MB2`-D?on%@E2mO2 zs(8Irs$UOnx4##a#IRhc*tw>Zd*}LHODERdx28ikD=R8i3q`19D2847 zySTm+6NR5`3Vm!65E7Nq3hnc=ZqL)%TJSo~l)Dm?a9Gzva=6Be-iYSE8zK=^wJ9ho z5#_eYo7BX0n)f|-cgXMmtZ`Ab9AfD=IPIn-!2cl^NVo>}ox;jk$_3hf4zKX_zhGcO z>BlADao{8<#28%~11yvZBEb8gpaM57Sa2y2@j=tF(#0hrdM?@EP`q19x$v~$BLGa0 z{z_WQ8I3u_TxdBtyVHF3%*%>d4wn6Y*&zV|ftM@rCoI6_-Xd`V z06wPU6=ezge1;k&mbU>LVz9Hb1N}$^kUv=NWTCkcT}LMD{z&Bf&`?}C0(x%>Aaz7R z1(dr9x@%n_&=Mr@0KT$OVJOHrwS9dz!J?Dv^J1W;E@Vi|PWuQ*D;eNF0MkIAoFIn0 zhtd)M)t^=hkQ~AyL!v1jzW&hc_S_x`ECHRYgRTZEQ7C$8G1Op2GWi)1@C;w;vDuPm zM6pSJaoiRGz$&KT$dYjyVACsneGeAW=np4gdSdwlGk_gYzVL7~;DXWb&E|#^k-Yc- z?+ox-9JsU{nD$_`Ufx?7kODf0q@mImOZ2KdV^ddtBS>%>34lygRld?q67kvu(uFV# zNevA$k&mB!3_zsIP|v4?9)H_L2d48cw3`>k)j{tW4deNUzHrr_I=uMNw8Qjn!8{W| zO^c&t4-wd{=W})wIRBrv*oStIVSpSMwdw&KEiLUhJosEwIM(CGkHK@U8ta#K{?SA| zkgunX>V+}R2p@pP;k=*R~LSOv8IUf^Tq8Up|zZ=#A{|GU!%>JI|0K!i0IY|MO- zj$ldzqH&vb)84#!Gfgt|ZYJ#QEaW|IvFloHi%5o1=E_7drogF1%$sAtDSdFBuXZSY z;dl(qTAEd_O8X|8wg%$70sqMc#jTEulaup5$O^Q&<=;Q~n=BeiUcgxc7V>q_KfpuI zK=2BH)jo2YiWI2gUndtR{xg`$92OcptReZ*($}X7a<@DnTqeM(#bBC1pvQVN0}?mA zKp$9!tM-SG_e9`i7Gy(~Ve#>NHGf+tz@mjC{wBD!D$ojehtzCsfBuK>H#e1V@NWEP zmq9X-Td3Oe$X+#9lN&*jAY|u)x1R;D#IP_F)WoNs8J|Bvke%emJDDI{F`||M_FeIo zMBp2RfFnoj!qQS^d!lf5l(PAFgJxy)pNq;x@}&Dm_Ty*ZDW@&`cs;lV*coUx*Ag_ZmLH#+*1546|7 z`oQyz6ZR+>S};tiYm4VqL~tCmi7b#2vtVV(6MI(n%>TT-f>04;vgiKAt6!xQ(g3ak z9PXd@xg8v@3=yy63}8m_ZM-gWz?3AwyX)L^g)W)pd9>Y9S0@g1Ql8s-bZ}P48fa*i z*c;3%-q(V>Oo&5*nnVWu5{aWQ6NP_S;t>Wy^61O!#IQpR#Xiz zdqiyWgro+a+cvGApC6KQ_>zPF$y!J}fS?vahD5s;0(*$&X+2&M1c!JM2@}4(Lb3^m zg9ahT5Rd^gD9ropcnTPAz#ddZ1Mp7}*#S}M5kC_cA=gkpFt7qx3QI_nLQSfNgbt_I zv18p15;ypvm=p@C zp%oAe`?v$Bd}5Hs;ISM;L7WANO~5;RZsvm8Dglgn5>&>meGuJ)Kq^DL8Tzrs#*gHI zV5m=nzYa<(Eo?&bMK%{i`nKpNSR47>2xYgxc}){Z-~m16st^Hk3`xLR$n*S!M}RYo z15@!x$mi_XsmNmB8X`#o+CUH%$Qcc*3&dKswj3}{Yp#4yg&+)y3kq9-!-9fJjs_75 z(ega^hfF{g<3=N<%zYT&$DucYTZ; zyxDq4vvlU^2xe&D>HVY6bD8@43cmlX!b~4n z=>r!t3i$CIe*5p`?t5AG&dzE`=q%rCw6x$D1hvoID}511J2z2Io)aQzyY6*dux7z7 z+#Jwl{>w=0KygWd$4idl(*69=qrMP?4TJ>;Jm`~Qf^x`olZ?#N^)3ZPZbfBfADn*@ z&wL0gm1U{r#!YR(Mn#Hwv+5x9)l6{bn9`!~2np2zGcJSk%Z;vrnw0@d#N?H8Kymwa zCRE)%*s`zpx#1ySK&DN`mg)?AZjX)1^r(mq4rhz9{;WKm<`Sb5VfS4nsGdkBA;7rk z)-F_|+w%z`UYZyjMatDX?Sff06IJvlx9;A}0Yi@1(u>dY5P}=vm!*Ptk4P9$0k~hz z`xA;hE5sQ?XdzyavJ7ZNGN4O{-DFmI23bs1sK=R5b+VyNXM+Nt0ls&ZL49y05atFg zJs4pxu151V zOji@2+|wOG+m&0R+B(m>`cx@NSuPv>yJJHRsI}B>haQ&EgsU31El6)~n}r>Cu&fJO+>G$jfPLX^nj%WpWWZ3%*;;8p$wfsKfQ;wsdF$h})k%74G_ zaYMrja02o87JN2nY6U|bYcOY}&?YMSN5E&OD`j(tdKdFgtH=}sloyaEaUed%S(L+T z*8MkYO&!dxB=6-*CMIRw`CXbR>2er}B3I!eL!}224Qha@U<*ho5*rd4h>HjrN${;} zp?4u*_A8$qCg2S&BiU-_wL2}*tRc`$Q^60SKT!jeLpyO0LdrflHT8-s9}d)DrN{57 zEr6>WASoaoHTNLjEtATyVLmf`s(ZUud%c4 z#ZIQ8+E?6;cbP!Ke$6B63R3sKsvi&?RySc6zmI1sP%3y?Xq4Q3_lY7q2S~fAOEK{M!@rwQ@{3do+|`@`xeYm(Deuo zgoTCYwErn^)s<<299m(e^$nm065>2RoFN3{jD>ZHpaxvQP;fJ}ipOE!GzzlY+uH}b z+`sQ!C<50@kQV_o`%m6QaLKGnbp75(E=?ZyL>hkj(8r2b1SlrgtcG@nEjkxk zaX)twrYkV8_Q=O;mWVv?@r7wZ;t4mHRhnkAbfNMft^?X-12GV|ZaxT@&dY0xq>=jb zpu$^te3BVX;B0FQ5@>!HTMY?=C`im?ofZED+u}Jmn-ERDg?LLr#B{cM%c|M^i2d#A z?rs3Y<8@L#cn|GKqG50(Zi^;eD8kym*6V@LKSHV@BKzTBlvK|XIjxZ_3Gmd70JZFn zcg;@0XsGZFHrf`j{CXH92ClqkrleD{8J{RB_-8z{GV0!bg0tNjHJA zAQxJ`hl>P%f}JKs0iG9UG%%B+w4IKLmyW zbUb|#48g)oqAZ>JNTZJ!p`%W1tB-rZZFRgYtG}$m;JMp{U*Vd<;l{Pu%)m7fx2Hk= zK+7p_|AGl9mztITf;r-kyTUdGq0D6e2#h1FPdi_~i#z~$hopG`wIHn*!FWhs-}lj9 z4dsCfzzlpI`#H@OfZ!U)e|tm9C9)AHGf0Vb5EHOn9pr>-Ca-#a$OkMaCJ5lbJVCOP zt=TKNw-F_r%P%Ff^p_q_Wwa`e~abuhUxlVwjb%AosK)?S|Vte0v z2+cc13MWcJ;%~gLc`qa4SXd0?)kF8=c-=;JSJeA1pv8idsu;%Sm~hjj4j?F!*M^cj zFe}we3|XARNq<5P_gzyKy{fxNl?I`E6EZYdpCQ-NA3pTj})-`GN|~m(!~m^3p!qgMXF=3J~h}o zcFnugo27~mg|Y#dC^B7u#U`N{4#G_zBnS)@1mjbOIlybA!XoDb{vt7;g1_KrVxVAf z^&r)UK?WX4q#aHLQXyAgAYh60DenYApGbHG?usN$dO&Q>t^yweN&zzng?<1qW&jc* zF>r_m7`vVW3p(8GQM3c60;zDwM*!c4Lvg!~3-I`50s^^0Qp~igmlm(x%Tj%iLFI$J zy};|0Du$td=ANvBel(O1SOT=V3FJ|f0H+l#4c`px`1&~IdtS@AD7mX8tg;AFDIpY- z4EuSo%1aQLc*rvidR0%j&RiuR=OF<2{RCv40-p=-4-ZL$=wHFO5hV(038g?WKBk=bUA*E$u zjzYRPY+6KWi0t3_UP48&7MA3Vd5vn_PX}Ek)}JG`Gw;h8Tc+)GvBIwZ@6NsMA`A+E zjemi`Y=J>`AM*GBL~8+Mg+s%G>mYFHD-FrPAxpwe;qv`<^*+Ms@r5 z>1e5`gK6j`{kFnHc@pw*mTo-?`0?I#!5o}s=q`*Z8K3%Arpw~sUcx278t(u`P(ura zsYGs>UnPAKtl@zYG43YppeWss(Jq$mM;~sLk1`?NT)f4 z#CgCdDw0950qj`t#S0|Ru`W<+K$uZdx(@U&5I_&O1$SJxXRnNVpIFuHKxSj`mkFU} zk?9-Y&(q)xH^2vWK|;BX3+Q7lfU0=MT_;%nR>nt1Oe6q4nFh!Y!@&;b*OOlD*k0`t-KJ=_*Y3-gK)Q`TVwS ze)Y?P7v$sXE7Vz!yHb6tMQvBfl6#mKjaPHSg#|l*F>J1*x6@@UV8BmYT}y{jP|@W+ z7a~yV-_b~gk~L_>MtTQ%jTE7p1kpXgR1k7tc=@sIWcG_Dc;a;0D_2GPiSRe0T=%8D2X>b-$lQUReu64$&ii4-k!q}aJe-9@8P8d;}+D}F~$RRD5%mX@6|7k|2z&k2E^032`h@wL%%Nnpn$8AMJs(y z{^(OEDYW6Ffrfwbi3A@g9vF64A3kB8{zygWxI({EVimc!G0vL1EbQL&)VDkB#euL1 zL^r9-GUu#RD&3ua8S5h_v75x>D`|Z{Tv$NohA3acax7Hn&rz0HTUPBUn9s`-OL_8o zB{_0#*L`x=%uuY#gwXb+WQnW2U2Jc;!M8%U@~^0~)hL|)Lhp|}y$|Rwec^jfyveRh z;CVn{I}>1(cD5}$BsozfcCwH1c=O*q-?Y1z7L6)%UZxH0|G}B5I6b=kb>yDF9X{_- zvJbepSQqT_W|QmJdb5lPnpS!XtZ&r*4Z0#qDo6#L1!#8!%H+gZzl&ObMQx_4@D zf22Dr5%VV8p@lClVR-NO(i#0k5gg*|Fa;E?;c+-kL$b?+NOL7=d`wJHumy(Ozqrg1 z`?XbqB1@*8kK{EGbl@||;Ge7xarNc18;*|r#??siN8YYUge-X^yfT9KJN~eTlYPXA z-8VT*l#mYsKM0z{pG-68?;OO~&1j107H54Rv&F{2d-mW&iV6d$s-@}#TK&gh?($qq z+TOS(`wK6Vp!Zz-=kp{l113Hf)uYC)0nC|%yDlK8Q-e1N@e}{{KN4mTn`YOmLL8!F z=7E%_vAVk5?v%HgVjCh_wi9dL1!CR5uP_L2{Y}d0eK42sE&F+u40Xk@<2_?$J>6K^ z)vzGxGWV=z{&BFpesn6q9yVdoUG-ZTaQgBP7k*{DkP34d50XSXy9e5+s>>jkx=JCp z2yA#Vx;adXI`sn!|ALua+Q<%%j7#^l#>`Q;p}wy*u7ZNX<;$1LMyg*118h`p z-}2q3{d=`8urXORo5OK=myAwEV)#gY5M%^Wh$#JyWT8$a_r*_x%Mo*2ds#`EcS2+uffoPf`?amFWQVnC|kH!62wu8QVv$! zhRa4p;}6m0?yAdv7KTl5hpif{7cS?DSK_y2b(4KbP`KsOrFP#QxjZlyxESV6mM8xo z5HPYzHGSTU61Bej(=hOZ>ctYnnYNy+D>iD}2mSnbg0c-zDz z+1<%dOgEqM6P;|_YMzy!f0~-+lcr@AJIc^H)=cdPTq;WibQ~Oqi*~e+J zHM|o|D%sIRSuX2sYEJ(>TE%~l_B$Di_+R^1rf?g)Sia|)MU5XrE=Hr6y5l{jC1xs` zo=r9pLEW`Uvir?FJ}x#^4pmq3YE2zY{rHpR*7$+KIrH96guEE}HT zFZWYs8-52Fjy(CB%tnQhgZb48LVUQsL%;s{FhU>e&*2)9VSL9X96aMfc~BD7H`Z!KBYvf;hQntfa7~^%A6@klh zG@ZZqC>%4raH^gYMp{>f2@9Y2Jn)owE7!bMXd}Dgwc2>QtkqkNz!B|2bCD?A>E?lz zUlCz9@c`0U;S`)=3?sBRk~f1l%d14FQI<;(0bzDZ)xNH*;yJ`M4`O72UOE@V5a@`~Vq>BIUM zU4eFA)~&op0-6!z!`wtU}d(xH_3N<8ptyP<=9M8kl(F2?%U!;-8d zQ9>4N#uvrr#2GGY=5j&$(IFvc=+%)si`AY?D<0btKW3eWewXZttQ&eb4Na61Ep|Q@ zNgsS7ZhU^cN6;Mvcz_r}`#A^G@3ydooP85n;|aD!+?3;l1)Ymdet`VgpA&wvQT5=e z!#r`Lu_hsvjFR_8qEU?&S`D*@;GT(s{%q4>?lPoP&W@Yk#aoZjYUHc2zH?XB=rR_4 zPDIo!TVayddY&LyvJuvAEXqFy3K$)y#OUPRPi_Jf9FB~gw#9lb#;#u8OV4ZjI*d&vj60ruf>3`fYS%o1%mGTbDhJ*k#fg4_?TM1f9z1N&o4RJ zf8jRA9<3&1(POJUE^|=UI~%c?8ov$?d^-=SD8hpd*d0YPW8yQc5@8pXxi@>k;e>!UX^11U+c%>X&h9#E5;}*4HNjQ4t#s_OeT6I{U0(ip?*qICkHm5;P6-63uiA z<++uFV6{ugSmufUn%#NyY2-!vcejU9*U(nZ(-O^IJZ2GpY3XF|B(?UkF8F$)vel$J zOJ4aCa5qUf3Y77D*P-gx>;nnoa9uE#S)HdO>*OSTk5ce*g2JVB1_9RzOd_J15-Y&4 z((GE<(T;XLyO&*0HLPir~!{2C@s~^Cf!$N?7VzvZvdX z&V$tgk0%+Qu9xNN#4q$*f{=<_0`mbWD<&itN6w@ThknV19CxPFj8|@l=V;;H6}?74 zb}x5Xr~KJZ-Cy)!H0aIEPX%*OAfE6!%yc>lxOq=h9U6AhP=BZ`cP2lnDsvk?`^oXL zF@%(BtitTRR%x5sQTonOe>#{j=4V`dbFE%xY0#`5rDMSq$;Nenly-bk=GZ zJpQJG6DvI8>BmP%cu$csHs>Y@jm{eDmF0i`LV_clgk0}MvU+-2;;;WQD$u*+1p{cg zj*NiiN@w*E{nO=?hhkxKv(i@r3=Dh$ZB$(tsqL?Jr-~T8e>BOaiG6zb&GRi5Zd^&$ zKvunLGhDxuCicBA?n}=5VF&-lr%53?nH+w>5nT~QCNrns+@%BF_(>w4nf5(OqO!A( z#Kt4UCMJ?@Zw0+?N|BGJSJk*UQ?DePrctOL(`fUUMl!7$(bR75E>5s@DSm2Hb z6b0)1NUF-IS=!*HtZ9a)UBcJ98zE84PsG!{4o5OXw4b6k$W%4O(y^8YV$Aj}Cj+Uz zM<2&N1jfOonsM*ValDNTfrOg*z%{@`T|Q^;X5ioTX!#dkH}_fn?!!;LOW$!uT3bsB z-MYHAuv}&RPa4DKrZrWfqMlZ`bd(%SZrJFAc&%y?5{{HeOGp@{jG@ywze`>{`hC2-{9+rfPNxUg-wn7D>r}=FsK;46TH|u|jtTMqdiOyFK3ytKc;TatCL6V^s9d}py&+HX(5 z$@Q#`xxHQKDmnG;&_fmT!A?$p2M=4j@Cx!0+PYq@#gRLsqCRXZU0ln0mF8z6uC9ZW zqbJ9OER;k^cJ&m$4G8wkJ8MD!Bdb-=>7Qr_odu42@m@q13b4QmqVp!?8%>BZERyJ}3+&PHS{n3DsMSS=cfqw^h;G(&ucYn&MOW&x`-~0#p^AnDtEo9-kC#F= zHr_`d5NJRQLY@+0E*NklMsAney%M`^Z&`XKkpEz#^>C-kOMXEyk)Yx@>-6OC%q6pJ zXE*a}5{7*)|9UkU0qOIxa8&0_{&f^a~gLnW2B7;o9`b)s+yG3uyXD+p~B%kjM$J=vU3RyOK%^fD`kMJcj z>zbQ2)Y_v%JlS<&e^}(Qb|kglxMO~{ucIy3GR<$&?6=&JRJRnPH{1F}wJQtjj zVlY(i`Q)6kMi(U#-evqq3CVdM5g~0!yJ%MYzaRG+KRz7KSH^MOmy4)0!*G}UbD?Y` zEQ`4-qi+{U(8tcoqk;dMp&2)d9{ z@!K3IK3Ao@@SK-4&GG@)K8wmWh7#utWH$x~w_pni8@I#{91loJk+)9MsZEHaz#-=v zt7a!bF`$kxn7Z_@=;^g;t_e1-vD-GvW&I1A!$PRz=Y!oSN51y<`Iv&V77G~zUxof(v|_m5 zZ=Q|vFU=>mp>$TpbwC{bw3Z0Z*7b5NJ6JdpJJAaOvBj5U;m~{2fupT$^cE@2dAzz&%hYxuO>Nqv2 z$c@U0iH*hKIwmegjwVv}lr?u+$3WfJ*J7BMB)-V9CsjFpV#99Q{8N%R>eumn>a1D0 zi#6Va>k2~Vl!8XQuOj*E)IYyI&g(|4C#LTi*DrUU!={SPjX!;J8nsn1Rw>fDkQ8Z; z|J{dDgkc{#?f>?5Cei!~pIpA~;G9N=?Eac!?sgyviV0LKCSwj7i!rJkvKzvdN{e9{ zIjoOm?QiM~Y2{%l#Y5ZzP~w26O3a(es`g=n?xcZw&3^}^@8->c52ior9h#23H+EDE zw51HVSktdx^{pEdd2S-%+eVgVcK`Q!z3GL^7kz0!X%WTU^o#Ofj?My0O)0KlDboT2 zgOvtiwYvdSoCvS|-{r#JU4GPCm2?-){E(uDU2vNJU%G?cqYh+QM*=0Fo2lJ zX5{lk8nP$$O&=u$V1h@7$X5iq=SM*oMmwfny=tRfM8`Q*rl)(Q-~Gzsnv|bk+;(Huo7u(GP`za5>rItz0Jn`uCZ*YiRDcFf{cIGVNT(lFJ(pR|$F z;+mmUDARnmL$6n3H1whRsNV~|T>51SF)lSgx#izE)cIOL`C1>(?+R}PF_pLlhe0<8V_jRM!&2v8KF_mHeP^5v8(r z;%@Yl(?Y{`P&LJOma^5N+wt)a z^A@3kR)tCyVz^(-zPCP$Q77YH2z$@ZbouM%JGtzAUOUfR=tTvGkgxR13%*r*t(E&; z#n9`r=?E2n%&jM@Itg#7A$SoYLXx6*B$AUj4h~wIJS=Oy5^9Rvl-k6Db4@psk~-s> z9QQ!A7D)2PX)8moLV@$Qt7EZG;_cgZGYEYie!aq{C-W2D)KKp{5X)W}NcG0)OeWyf zWuGo@4vkJaHtSZHq5|87T809CIm4pwnH~#;)#YYGao=;a{09x=2VSHx8%@*@o;+)# zXJV@42kRNV7L#w{4uqnC7l4S%|In>HmeQ7@rnb}7Ta)>FGiKAg2+a5*$w zz)~ zD<4aHi{+wuiHAQw%G+V5d3jy5UX+>dA&LL`>O-{$)fnT&|rC#Rl6E~{)jsjlX??Ejn)k4ra_$5*%C6FZ1w@z0y&F)FtU5_nR z@X~CkbZlr2or|yc*0q@y5uWX~_UaA+4eXP?48_ekG@C+PJjr$SK-Dn|ta%iBL|M=>7W%TXXlk#8JQLY4HZldVU}6WUKU~G_DR8 zyKUt0?vi_=oBasSd{m_MDB0OaHJanwVSasDQnLT0 zp@Q==mM7V6K1@{e3uo}JoQ^aN9@s?3#H@9HxqtbmqiRzN7kzbJUUF7HTKnPE*^es= zPvhGO2%@QuD>|fMLa7iYrGNZGO7(2zvu&5mf>U#mTU^Ny%%ts7O`o|}f`2}>=$M#W~=J^vVa^y6d0c(ve#hvej#E5n#xr=_f`L7t|0ntYYDc8y+sd7&Brz3;ToCQAYY zi?{X`+%(3{nL;q+z*H8|(A30sr;Zh*p~Snh$`LNk1A~KAr{2372*3V6-|XJLRgx%V z3Q6W%8gPD*lM}Ezc@KoVgttVUw&%a0OgkP;zH)M`QF~ERwUp{h{6&{TT$qHu_enoH zgNU`mO*uc-rA%gaCtVb=<;wZ^frsMDm#vc$c(j5y#=4Wqgpuku z!L+d7#g}t@doS*#y|ichg*UeK*Z`>P(7|3k-GXUbbNLsip(o$Bl=_RLY7PrdWHU!c z7_ac*{B2eE7vo^R2)aP)^S<@sPb_h9TAej(rM!7L>Lo!S ziOHof%CzGn4DgNWh6_qW&vqz_?m=LG(3+feYrq@7MW_3xwqc7g-aJNn{nIcUUoYs0I9tTV{M-_0&qECte_TKMqQ;gs!e_>n6(Xq_qZ@ zdU(0~&DIX%1xy+K3z7mnZEcU)2SzJMfi=%BYLg~`@H%7zjnh@LF#9ArQ*(G8j;1am zAU1F%g6C^VYniP8+s~(xuH8;6oeMvTye8|mUga4w4b>$Z>svjs^dqLhbRt;#z$DFW zZ?!f?_9(-%+(yy##fBa8)dx#oi@BoJgW{=sKL)B~sVe3`4%raPv*jrM7X! zoZ9N|1&wD#nUxf0J38*{TlCMIqX)CjyJ4NU-3K@$Uq9M@DVn{_ zIit?oKaKfpor5J^1wh#D4l8ldhyRPsq@#DG+@D&t-GA;mn2*`m*nC%@Jp$rg=P2^D zWv8uxqUW(YFBO>Ow3M2=Fc!T|D%I6RHsTFU#G2yxpia9a=_<*mKr$8x1O`WDAJSsAMvF?QIo#=g^2FQw@52`Lpvk3lK#H%^X z)C-aI*74{z?c%0h;7~!}Q^yf*=$0!rDFZ%PL@p}2s1H==m{6O6&Z0q->FOgTN&qV) z_V9ae-6RzLHQiTLu9Y3NaMih`%t!jFL&jLDcr>1L>z`OYg3kABS04Br+<0reu-nih zt9-MPEd3oby0my+F6YH7SNv}U zcJfE9EvK$e3UoywuDTUmS0+P|GctkGbCQISJd`0we7pVCaT)J8n z-aLKQ)sC=O;40?U*OBmh`C4fy=rs{a!+TkC@yH+}$mvzR%e}bNe|oU0OqIxasDE%G z0f-gotT5HUr!aa`sshC>ZH`LFSxs3H+1L}giLAjq>R3Y+q&=ya0G{n>s`-ST zO^#N4FiB0jBCTH_Zf|Lhp7Qa&q0#pXif(k5xPS3rVz6QY%`J*l#^!HjaemMrE{3-{ z0)Cjx9xcT5v@-NRBwY~k0zzUvxBoY8wqu;T$y4}5*b+_+kqOnL419+I_>@K7q7U_N zWA$c+mZVYh^Pc+F*7kek2d(5i;`$vdFvC;rQL1Oyzl?g^_*p}}+xf%|a*@M*LFdop z&EfHKK4TTvC*08pe#0>B=O?#bikKsQ6AMo%C|%i6>|(+NAr85a7mp*;F~OuX&QyDNc(G0REf-R7fvL@MuR zLQGm!QNDv_Pd>cQ$`xItqNjpHB>lw%_2(ZHBq#mlo-uWG48>- ztl|atDJ*pHZX}8gb>?A|Hb%vt6!y9bU0oVR!h=9oH2#ay&awDx*WX{Ao#pz^6|tR* zKd}*yaz6(I$~(ARr=*v}aav-X?(y8ik~tI0-4EjIvS>VTbPo1=q*m(#yWB$m6$FBt|;Py`4>l{3%mTwQSHI*}4i z5ydM*H>y+vFYcbNtvWND5S|=4rijRN&L~d=z6}7gsCI-Yh0? zpE1o?J^?`+4OM%r70*3{e0aN-^{i3?0&0N9%N_wZa!qeltd!9k0|ELGrJtvjTjG8( z6c`>e<^U5P%FActejUUzXHvX`=09#W_s8>atT+7<&fS08dRZmu-G-xL?BkC28qc%A zHA>27Po?>bCGyxGv!T{gJsT7W+RZ&ApR{^t3P9oIlJmkvc82R@V#-TIn98Gaq}*F1Pg%ys-#} zV5k224P>CPcnB#ezmd{Vr042L5&GxTchG2bHzVJ|B{MU{UA-?f1wPWm>!EUlekX^f zW7*%-@E0bT;6xXno&;$65hpweXTO~*?$SW4MJLT7zwcJYHKWO5+zMZ&p;Bdb1e5|a zopW`)YCZbY@54CFe1cU!TY?xL9Q0Y{eSFbvRruwJ0i|D(mt;ovL;t2=BnL;fyFux5 zopn;R%()f9N7*d>5tki^RwsQ!-^{zL$EjV%C8p`92C=D)eg_2;4X5#+zl#Np|0hZ7 z_8Kpb(;fTnV<3KJqi}y4u?_efG>ZA{CEA)0N|1_EBolK!yqj6)&1O{Z@r$OQxP%TS zC<+&L1qUvQv>Z{LX}>kDG(U+vdBo3><)diRLH;yX+e+EzF;0#gEP+}5$UARacLsC? z@AIr?Vy`O3x)2ZoWcREAt+LJzgwf-Fg|R~*DrINr-ar)jsc4_)_bH`|etlPW3ie1@ z?2H|QBu0N0R3%B(1X(pl_{3<$9A2WvVajq^Lt&-^^}rA82FicgQLO0>Aj9V}z1g!Q zT{C!&p+0%lXIPNdSM@gS-KVJW7Xh>7Z~lEz`0p3({0ul+uz&lo7I+9>HS*Ihe-dlf zGZS*!PMPLr|2r!calfZzl!--&l6Unk+^hvKFSPklm^*{Tn97%j`}(=%!rvgPT;uEV zppKclO)uW}%rJ=a-muOHC`yeRy8CS4TP8qBHmRhz(3>iSgqqpfAguxJ<3;X!njH7r zje35HcvY0VtFFe>Ekm#=Wt_=ejJzeNHL^M;-tPxmKA_T7FrytP{=V9aX>c5uJ1?F1 zzSiusYQq0Lt6Xi(p_nLw{Pw!-v`0oL)195A=;oiV>I18zwkYS*0Y0N~38M|8G<7z- zrSoHwgEP-Gc@k!3IfL!F#D=f0)TLe^VdqzyYvNz~J03*SJ*9|Ri-#6ZtDFfA4$S}q zthVO4flJa};fV6vpTN8urgCUarj{AOK?3ooieF(#qGqskb{~WhWJ7<)Lv0Q?6TD{g z2z@Rt3#{+>z503?+7?GnfbaJqfqEpDquCHlt*&Xkre`q){v}AfSeJf`y$q#lY#b#E zQP=$vPZD@VF%IZ8wnCqFzR$F=@gaumv!3_>d94QsW0vz9x)Pyk?=oy4^&hRlTc=u+ z|KdebR8$3O+@LN7)+?2yay2XqQ~r>vYzkA*A#X4oki1I9%|oW1 z>?~LO%dAZ!%z@H5kn1AAB!An4Pqh5Iay2$?hwz;^mn%>(29LWiUdTPAeEIiR>C@<{ z%3Ctof_00&pV3C|cvzq&i{+2PY)0c8a(8auZcB@Gp%cU!DnM2^%9FM6>2YQY;ZtFy ze+)Gp*D1v)GK;rg4!~7@Q8ilLf20qmOC)OOg=*Z77mm!@$fNIX9KMR%=$#!{~khX3DGTUK3KAN0lg2)I>N@kM@3&B!Nj&gTiQm~Wp zk-F->bxysr8_VpysBUqmT+8ol+!fqK9L`5={n_uW6dSOlUr @m%I}_c|^M(I3Rv zi{@Z6AB1c7ZRN2gTlUIf_~5Ld*JU`YOZL5kZIh&?P&$rs0OqYDS;&Me8!Pvu5Q}ql zPT8!siPDmX`pe)RwJI|INGN(=u_Khw zZVtnn0{f9mA~DBgrJ*|+D7y_j`3hN_xh10oPonJjbw#)wu6b8s?MFshobtnEq~D7WeNww6 z(K6SL4aIoz_r}3N2pr-VdTtpRb<@LchJMpL{pfSZQ;Jg5KCf+^@n`A?2Y9ESEv#EhH<9g#VF=O4>ZVyeq8Y1m=?4g#P}B2ab8q^9yjsy#*OBR z?`r5dGjvT()>*0OA|_c9(36aNyF8AqY4_3m>$93&Is%e-TT64!2bm$PuY|G}?}9wp z0yW+og7i7Wb~|{Ws`soXPBR2*QqIPM{EMqUGu~jWlv-kblvj>zhd}Y*-bK>LTO)P) zcVpvtIFOrABe>+V^GS+{iv3Wn?nIrRQ7eai)!}$w`2k5Q=Pw~MKPDdpw-(NO(fFZ1 ziMFg^2tRBBFsK5uyZ9{Abp?r@?)Ro+@dEW&6W&@Q=k0N^gP=qVrp}teeTsyQpH>oQ zApob%I$OQZ+F{G2662YOg1`egerx31aW*SEH$Kn;s>G zJ~=2RLDz7Rkhbpru3|3VN=(2n3 z@qUQe$vRvWt-N05oI@xEJf0kL)cDa}>_9LOs(7^gW;;;FMr~1B(K)fs%Rlj26Sd~{ z7q4{aSF&^fjMMy}%u4&<_?RveP*k?VOSJ}7DT6s?UmRfB?##4DH8~BBRfbY~+D?iP zb(hYUf)<@!ir#G#qr%tl>jlRSv5`Bb&+Os7bIFkq#R8|p!uf|ey!PfvfQ#aXfrYlA zRQycQ*1VaJ>*L%Et8fq4h7I_TlSZnI_1UI5jQ23fidf&Nca%@*k9(77t>3Z5=$TNFFu6V!`8_KoW$V0Yc=$wcM1mf>x+2;% zMJjUC1ZzP_aql)_VQjda+H!o%_XrO>4F1f%2=Hf=o;fRc(u`b(L+Uv%*Q(38Oo7G2 zlRlgN%t8pn)b4(WNeZ(aVU4|ofuWL`uSsO*9D7ds-f`YUOe0xht3s6lnr)~Q=dKT3 zZgd?kYBqhEe@pkSE_9i);@JZaH>rU*dkSb;(lPV_`*h<8ZQ#NxABT-*ww`to6@w&u zmp}k+i{aduI9J}m7V77-gDHZ<{n((O6?vZ3y``M3gIQ$@jlrs>^>ItyRnVFgg#-qg zytVC>(-~R*8MzCScT@k!0T#~rSlaW%> z;mmt%7k!ucei!$cFfjS@E)RGN?5_*BKe!u?eUgpe0%%I0g_y02)lVZZ`__)nCpojy&I}BFQCmb zJBZ+V1@jIiedP+<@llO?vuScN%Jal?omOCAZ{f0HrZ5so76SBvD|!SJh`QtM$AtJ1 zj5Scbe!4VTjyknH-aB|R-FFG%?GUQ876vh!%e4l1Pmv-{wu4T~I3YAhdRczHMUBs` zC)5HaNrw=({77$z;}bDJGP9(Y!12N<&7%|0X z1Re?(K&IlPTgZx6tvy_%NWI788{=UG!FHuXTlwMd8x~5#W%uSFVyi;^pCi9{VE4BX z-tYS;e8%E9&&)8%grB;NvoU33USnjPnH zx$4^JSS^3 z5Ym}Ok*49|Dzm(Xqj}Jv*#7w1wT6hxcqAr3_WN)P^(Mtk_xA0CFgW;g$hKAzLVWr# z_98ACTZraj#-*mReuhwS=~pPNKcq{281VK~1Tma)Jv~RuqACa38yov5qAsFX10LAf zom`KE1-kf-XVqor(>0?(rE2R*esUw;)y&eOzkwp$YXy-*75ZzpOzpHS8)5 z!QP{>G1lLC4_h9Otfu;gAU)Ml;~1F!N4tL`5p_T`l-{e0;4W0VwBg;~TWQuLOq}Vm zoScR5;i02T+@*?Gp2Rqp{^y1N;ulQJL)$=DpdHX`$V6O2zAem6#CkM@&u zK2kW#dHss5E(L%X=|YY~OK;Pg0tPfKKDxANmgA!!0MgTsE+p~yj|vn0uv0COOwm9@ zsM35FE?3;AR9$<_U+@&$ZuOGgEPjDkWhak@(ivrn6dsgFcJMpm@4pS+`Fk)t)$THc zzh#S<2|(u1}Be;z8}2PHsZ}HO~Lew zk8ctHBIWmGIl*f1e*JmPEG%Q?*P=>~UrCzxo)vo#1jyBjpGp!3+I^<5?9QYfqa(JJ z=4+TcS@-?d#{Hq3l2aV&$V_4nmNKqeJiU~bNKVD>42Iv`NLs>Vo_G^i_gxKbTWD*<&qz!A z2D+_%n?`qAK%n(Fl$556l8RAf{GNIJYmCw_co4JG0p>h=j=Rsz5US>b{5YV7@~CCl zLuv4&-62@mTZ?^Z=e~UtbXsPTVJEZ_K~DBHYOfoh2&AmTXbA#|{!Brn`p9bUWri04 z&LEQt48V1UBi2lPq-#*?gN^>Hqg_f2Ov=w14_AK1hi#Pq^Ed<-FpF9O+7wkTTspqe zXQ3r;nPhl(RRJ0!BB!0vJr*tj5{5Zj#l6NQ0q- z%KPhF6DMd>A8^_%SjseRVxA(BDYByXTBqiy0;1TM(yfLAIknc1O0ganNW$M; zA2DW0|2_`Ts`t@O<3CBJf5}8LI6?mZ?E}Ak^B*+8EHcF`vnu4r97ZYkNuPzw`Zb4k z@spKfOG6JhkhL~}01Vx0EoVaWDHO>Ij9Z9nz<|r{o+edk%*W9}OnyGyn;Kt&7Ou$i zdUW;3F89{e5^T+DRk&Rnd7rWw^P=zD=3QD$a7^S|TzuRQN6GlIiMeULYmbv(RdDdl zU!VKF8r0W;)$Uu=IK6_0#000e<4j!e1Ct!*zAV^)^g+cZQyDkX~8mr)E0A zrz64)#0-6ZdM|^GlJ-cK8Y*x)R1imAazHQYlBP=A++VXn2dJVM)UskP;W8=MF)|Wk zVJr5P^XX>L)s)(dAsD58`-&-RYh#`^5ghg-Tv{gp*?}e_PU>~JkGQyIaTNS7@hP9A zNUJBF&M3l}h2T{C`p${}>P1fVmkCoK4a9H3@AdX(d+2F3F%i|73&ip6L=o&1SzM?q zFrL?&(uq4>YKe~LCsIkoDY52hoXt>F50bpkNE;yIas5F}1=dl_bso$e>(LpuSNO=% z=cwO4=w$rrD}s(4n7QxJOI45>E)u=9KiSY2;85>o-#-sIiE^u-o((ZU^l^8$!?63X zV0K`XKq}VZ!^{GzDip9~2J>P^Rg>LbK=alZ`oGx0-_xo6F}Ra zHKTlkWNV7sx5L^uVWaod#9GiTZ>QM-9xMhBeo0aE0s_B(X_;d9#S5^_=ZU=bo|IX9 zRN-B%;+L_Wt+h z#zyt4X8Se?P@ulU|JibUYIzVBjar~caTa2(6JYLa*ePDbE${@8Ci04%3l6td+~Vmz zIrl0%mk%)`R^7qZ$Ny!>oV(zRn4wLRW;@J+T2hY1;MP=mbqe4SOU`56kyU^WX>&^w zsY=jipISSFXo|&G<;?!x)lQ3^MR~0!AgKQiIziKe`qZFSMw+yTedu8LHpY&8cu3pU zaBVW|ucz(Fbmo%=>~gTQCT$6aqPbV8XgE>hdTw!ww@rl4oYebx&2LQB&_XiW9*^4| zcQ1Jy?jk)Vo{gY4{ncO0Xn-#TJpon#YGmtrfsl4V-v>*31sTsO6+Q3xH2R=z6(Q{9 zvVcQj*>Z33c;8?4EaDg%AfTs>u5z_TE?~gue^Y?R{>~L^LU7a^y46#mMA^2b1OP;W z7Cg&~05->y54Qx-ad{*uyv?zWcsZw%vHQ&bo}5ML0(!Kyq3*$^YAKD|NlaDkhzpqS zn(I=G1o&*-zP+gHpj2&vL}N*6cfTW&$+EB)7#W`}qrgfG(7w=1a&mIq>vZV3eE|(g zvK|QCeG@En<~4PjR#(I(sWWW67H}NeU>WT-=Qnt$tgLev+;iTcjJD&kR6Sfab~-O*mTT3izI*Jt!th(qWT zBPPT)@Dz6uVRtI=R|Bpj33)CNqm>TKsFAK%7aqfjf6%fx2KpAUo~MP=JR$5IAEQZv zeJyfY;d603JMk%e@x1gWf=li*C*1 zIIaf`*Np@Wq*nJ*g9LH^-Usq1hD&gc9^o(-lV_sS(9I0f3}6j_1R2CxP~(7h;UOGm z>~3sM2?O3hZs7h3CQs|x%67EFVbKmHT5oDJ(}@QtdxE5t)JhSa(iMA*9j=G0H0$HK zdHiNwmwZ(u{@#U>EibIQZ>PtH&_|1xyt+i!i21=s9Q4cGVik}xtR#CUB+q|suA6A4 z1C&e{kg8A%DA_?n4qz$uWd-%6iXlBzLReqsJpMtGhS{7Z#m-K&7YVo9+T9uJBI(3= zY0}4&cz-<}dfKUODpgljD~pSwqi5Y=#x$*Lmf=Q^JuDHc2p!$RJ9pbr&BB&`;IHex z?H9%nU0xn@G=;T5&e8tOv|~m@nQA)SN*sJY(?i<3h(2j3|7i>$fKIBcAdUXQzp4r1 zQa;_0IuaHKt1?`0qX)-JJlXX%;_J^@`+sHwtw6-~ZQlb7#VIIP>kg2x!4GwEe(19) z#M}dn6p?ll8}2LpCEOPWRZ>f=bhS#%8SBL~Ss&i=LS6Ja3lhv30?c72(p|?wl+RpL zYb4jr{vU*Ha$XZ%e}b_x!WIy@{7WdaIb-Jy-`{T8B8p$o)57jV%^+0lK$#r2hZv2wp>a7NTiB-v2H{tGiV< zAs?oIA=Wig+VF-vs*NE6%OUjAHM#pe0GYx9jbVXT3WgcH|2MW*YmTZx)cX2XX6!F! zsRx6$7@(oHfwL{PtG+T1iZYU2V*9W#(X%rB(UZKA(MexA%)MIANOOzw2Dvm<1{fEm zo}{SVr2t&EU6Ws*p@!b^JHfccugZCrdJ1aZzqln=xlwp7_V9LCl*nyt$h^>m+Hri4 z8ch$(cS98z96qAjo2y+hA7&!%CAL>;=jt?kQiBWY{I+ha#mCLDjBAIpX_nQJ5C)6Kg`% zheJqj9n7#>$q zypy0@7}Kt5czBe7y}-{ecwy=MH0r~`qk@-8bA7dool1#RzFqxMC)B)R3F3 zD}v@Ua>dW0q(~z&-b%VC9F<@bSb11-vAgpvuqm~o-khIByJ}VxEN(M0s=o;Bjc z%HJUyUg~C89ET>Wo2iL1`V!A!-{PAo^mGPp*{hF_8GJ}7SQ%b4clLaT%lf-*}p31A7JKD(A#^?jTE zMuJK_2BGdYsNj&u%>1_G(F47KFAh0f!L^;MqirLz6p^t09ZW&2e!PMw&WQ7OXG+j< zfQk-IJD+m3DK8`%!tPRFp9g;E*R+@QYG{CWEb*iTN`IR^O>Z4Yvkhg9MoNA%J-1(d zPrnYzioDkjvn%x^u+=IRGTyoyFXz|I|L@_VEBkB)^JqJ&wADxWu0GI_qE*T;1PhHD z&{&lyJbKiFk)Bt-Z!qtk$FNRmM(}Ygk6gC8pvWn@mQd0%QnC9oPSIS?(@HB3u|1Dz zIe-wgd8a9E=NLU*X=|uxH6K%hoIykh;neDh4};?txgn6&74c|Asb$1v%F@tW2sJW% z%BZ*=*sVpZ6e>z|3!n0?#!Va^9iiL)U1bxMJ3sTJWmf~hyMs}d-`_4z4-G?BUZtQk z)qB=Lj5ks0hEioPnpf@LT^YK(O}>40Ty#HP05jE#rRDkKcP|^tZI!djj&}Vwr%}%5 z8&85K9bQ=3-Z)?4;rbwAgxDCd1OpcJ-`(GCu~Yy&U+d}LpXGlefK?%D=heTh%mk%Z zX+mEp5+}y1(oAg0w-QJ~2dKIMUx!JL%?j~knm^VZ{x-T0W#Zpp=OFg6(n}j-#cFuw zD>1WaA8Z)UxEdfY-F?c@- zX)&%_agLe~tB)jv(_iCjdKOkLYPT3gp9-CMut6H8Le7pDEyo8VKktZ=) zRIjXm7P^xL@`AJF@$uQiH{|}U3bdE5S-o4VaPswqmWKZRm?%ma&=>z0Q2K&&;LX*+ z1_M7ZGlub>4Gr1b-TobLw_P&P71Hu}0ss1Q z5gf=FAmAFc6-1JK0!@^aY5qfw2`+B&G?1Gx*7cU>TU=$(g)_?^Q_(i-=^b$!vi`!4 zDrFv1 zAb7Xp=^aJyQkUGC*R3gMpmDf>Y&hCgmp=t3qeBOyHN9i&K)!{TtN)wAmjL5)z=DNl zgC*BoQ*OyIJYxy|8{-C$g?y#?JIy080q$~M=MP_>h#mW-)8KPbVM2l~KFXb)WFkEi z1oyIa?EsItaG!kB2iDYEVu1C{s zZr>hI0eq^smG)HbH#Q`TyuieCX@Bsq|L(n{2&?OR@@9-_q10@4Kw6Fed)tM9!X5KK0y>=Cr{VHNOJ+~8Z&JJ)E~^YXNG@FXQlm<{cw-Sbu}92GAkD7Ud~Pc zo-Mt|>HTBbABY=182{G)ZQ96E)c9Oiv}p+pU@y=xXj{H$&&}UYGPfEm!9Av+;(UDZ zU~lwbyZ%@;rTEv*qQh+xhUZDtq)0+~P77*pFX(50I#+xe6IJ2~s^F9q=&s?Q7(%vp zQn~rRn1?eO(4K!W%jMSBL;x#CHI0HOb0AksAnoxryjNAu(Pf=bk86wLnnrIPT(X`8 z_X&=^Xp?cCALW>+Bm8a!vR;@dXe@JPl;M^4ZF-xz9Y}-;RZPIU`-F%uvF=jrttz|e z|CP+}7*Anh_}NeUr7{2RqAZys9b2-b&%^_-CdQ^8DjaXfQ8}j- z_M7Fxrf)-{Q^l@PPS9wxv3{?+jPl0Vq2gnuNtHF^=Rg8G0ygWi(ll9b?)a>_Q>ud* z^68U;tG|!e{WWs@v2>HU+w6`~R`!jKxVVixn(b&<9nH+& z+>ehti-^F&+yP7#dYoTkly%?2LR@5E2>tZwlSysuP>J)fW3tQU0;wL7lZoke%Sd@3 zNist0+n^|pn%c_8=n1hE0Pcv(iUob+|Q8O<(kKNIwoBNai;{@tjPM!N5)H#jUzb(BHj7VO*M z$w_|dsF|;d{h52CVW${Qa{T1_)$H zcJ(BWZVe*diCAAkckHu00|P$r1P{AC;b-l#GW2BMnO(k2$n4^U-wCRL$)jbobEy&< zlyWz~l#gn(Okbt=^y7?u37~iUjFvGvZXk@9+PvGQmKmb5UW2JuJs0>N#OlZ{$tW9F z*XOw}0j=sK5KaptyS$$t9g-BPw)J=ZQ-bt$MzLiVGaO?rKoyJqrJ=9zxtB_a>2jry zei84=P~@EPH)y4Gi;ziXY(wlHmU;&|>7cPxUs9uq-y!&RawpitXLSViBmGYH^@Zk!=O} zM%eBxIG+)6^UIb+hEJY2Bwh(5pto>slOT2lx%1a742i2d11INsXJ0Pw8UtitZ#vS@9le&@WivikN=N_QR z^cZ*&ZERy^-izLxi39o}K3?-cPJD>a`EN``vH2zZl`$^uX(aG!7c~vD!VaBruoNQd z9J8)5laRy*d@r&&tyeY`F2rxmExBSU>3-3Yt z%fe2bIxo3Ikv8{1T3v7iDy~3>kfg(gD^{z<%?pLrbXQ%zFoJV7EUmaF5h+!dMB{i@ zJ@+wy8v@1*TKP(5)AZtg+!}r$Gs7_1dmFw&o)*u|#y5QDEdpFAPPbU@03k!AI(8KL z!S*Rl)=2|+zS}w9C8Q5!Yhyzz1dX%~Kg-T4&%FllZg zuHW7xC%@8oSYdy)Z6FVOHZF6QnufC;DzoJ#y6i32=i5R^7=%+ z=Dm?qu;o~a&XQ9URKk9St|?ZlQr8nRqlX5V(c#hhgL_*jCjnQ-Xq6Sh?tTFw(CyZa z_uRiri)IG{fN?s+(dluf7gg@=uE>96IcNg@s0}-dF2h);qT4#X;%7;JCjj79jK zLI4`PHW4a&-iYbmZ2&(xS#97#pi}$ms_jJdf1Pzg?9;fpl7CmWnv-zwbZSBZuu)YZO|DNKg zzWz+mo1PpK4B;U|_ny9TjJ@C?4G2?4S^x6ARLkB5o5T-~E|NYup(}!Joam2WC6tpL z4?YFuooM#AFv@JOF9{d*xWH&Ji6H>M(5t;9Tbr!PvF_JLlDkVEab@lNzX4A8 zQRUo_Xxk1}59l6dXQ$MU3o&RUsfNmXWJU|`CzPI@vPBp2(jLMnh1i;jJO<-)DB`mzW7K*oYq@$BLez1%4bd=g*Icw2P}hW}dyxO) zU?5}0NS0G@cO+5|)iJ!2HJp?6wRt}*UAfZ#!XPIuL^dm=5dz9VOxXNV{})@uBKcF8-3_599Fwa^kJ)yIMP?WEiiz6L{nGh&to)~n8Q0P0|8Gt_1N;jNxB)~8?})>`8;XH}xmr#H z(dgG#vm)F|663bx_%U3@S>x%~V-*M_s>}cGL~75rzmW(M*Xm3DKHWE+sPmSC-dcSq zb>}h0sMIFl-v6h8V6rg5K5WChy;JATeN; z7~#+Pc)j_5Z-pg5Io?k*cdEyCn&>#}tn5C+&bL7SWJ&)?-+11&iHXb}+cEQaKqjC3 zcYzy?FUYp21Z*VE0YMRm*XNf4wT!x2ea$<>zuU+wP5<|gq<2Fi_*bFZoAYvejrXz1 z$zhT>j3ewaY|1M|mmDtsH=zaH)}_Iz2w=(IElj2c34#qHrE<#yfB)A>t~qsm1Y56$ z^U933H+VN9p-X{WcpozCe`{LsM_H~4SDTFDRGvXB7*psfe}#@=CTAhE4Xu&?O~YN` zPO#Vb_ma9k%A;j+fBtNy5)ddKi0ck>$T10GeKOGBo9OQstGCvrRlL7QQ2p;9ApNtP z?=S6{VeF;{HivcvSc`j4QxVc)G@u}E=<0IviDZ#8|Ab!qLC|*o?^-K(f(h+PzV_@d zgKogKeieRyaM}OeyMt}pv8#*h_ZG4KC5=HrcAG2@(rLi~d~b?v6T^x-4pop}P0xGjfPWE>-;D+Xj$0fu#+VYp&;U z2rc@7(*czSzd6MJuF@(9G6%pq;S{A?o9oK#*Hoo8WK7oIG<8p6pbqKO23fpa- z!MGw_+@0(KAr>eIUSRw8$OP95fW`!++yTNj#AuoJ9^>anZ|Wxttw&h@-7W^UA329# zxC{o=Yo(K97{pu%TVp%;6Vo1TZLwXXWZOSyLf8A8CAQm0|2{&{l*b<7r$=}PXyT8> z0AYo5hghzG^^q6!6I|?X2x9=sG1<=ks-+jWzDPJx^Aplb<9nTn1MRoKJkmbl^w>X7 zpRGdHh0whJZsxT4uSz=e^|-7< zf~l3ew;X2urd#|4>aXK$InK4d@>Babvl+uhw&8m!Twru#>UgkD`l`qEjkDv1p+cZW z37+?{;U&WgmvAarm@WwN{+g>-=?7Ff{iR(OZ8j7spB&V__4JW6Evd!mawdGFAwd8m z(brti0C5hwn6UjZ$yRUhTt|{H(xk#UL30}_NPsX}T$gg|txyTT$;57Y@xsq>KEz%{ zA*hDGER8wA_6-OwFmW@KeITZpsFBMz*g9J5&-MDIh|cVaOdCFHz`9Z=%yTrexEFq^ zsD9LdW&d|o!~}s>`n^;NxS2!CGxJ@K_rjPXrI_F>LVhIAq!{d}5X5R$?Jap0WI;_0 zS~qv%h*3X8zp2B#h)le2&e-$qrve{yzmW-Bw#W3riBfLO(;v;Dj%Bm^Jk7=0;@o%p z9yAlEwtB6ORQ~e!dDU2;{X_sr%jg)P+s$Z63cr5HKF=crw(VvM&u z#qp7n?)iGXGPks?tx+Fqwap84n*YshPEu$q4J~?!&1!S+Y5f;oJ92DvsN ztj{i?BUo)YJ%Ijm?3(^v&!nG%c%k0+mG_9iq0JBIWHD|UIqe)-q2IH1{Qo;YaKI4d z+JgIb`?Q2JE0ws%&x+1eU!{>^ozjpF==REc8(ZOdi8?BTD8zXQA?fW1hFu1kL-Kxc36xt7#0?lfxdk#985Oo zPC64B>d%#E%dW_q=!Z4SAU#IQKu^#BW=wrPe{L$G631lK>x>BdH&1qw-Fa7O1qMbQ(vb!16IJ#d|RFAu}Q;`*8+xdgW)unm&5gW zz?`bhqRu?>r>S8*+T#{t?W%op2BMSAz?aoP+pb9zy~m@$5$_%KeZ2C@bPw0*e~0Su zjgNQz)bV72Jg=C41(=n2eq7T9uDRqBO@UvQ@kK${8~!&b4nEo z#uR8IkmH}9a)c|##k^fB6g*awh=k+uZ^a6#MwBaM<5y?epwk5SKWgs2s;a59rppfGNfVfh4IenOBib9UzTEwY?U1+00Jk`BSKQp`ZQ)^BAH1W33x2dKw3JRZ_)UF8lY^bYUj*Zung+!|M zW9>3^Z>pEN#|-IWc9xXmALTg+MwLlqdG94^_ON`-f5%FU{!Y!#GDp|DKf|tKDo*dO zHmVqy#UEks2-L^eRAujNi;kP*-B|cU*2}}4fr;CBS*I5X-+B3QvA;{uc5$)q$H!;x zqFVcV94Q6s;=6PK1_u0h_cfQ*PAvQUdK&{0#_P)8 zpntrujn$;%5_NBng!0jTJ?fhAbD4Vc$V!|KAC=@>LuGBphCHQjqHps8hngCD1PR?- zwb{@7;NyiKeTHXGpE6&XFOuI>6+c15P?CT~$I~|4t$9o&aI#m_q|HdZg z|Euji!L9&%4K(k zTyc#gO*=c>cw(w;T^;T+BZ4&Q4vQso0MBgS8FS%6&I8&CJ9|y7ge0$_>SU%L&QR^9 zcq;?iT|;U6eVYrem)c)k&LCB0?St{cc&6SS?0oIyJItLPg84R&Y1eL)_9+g=(lwo0 z_L+n9JG7`(2hDKkPCcqq3WxEwHwx)JvK>lJUH%n|V=_%!Yua}}!;28GY9>)E2X8$8 zoB-d|Ka>4_C+XW@YgBC0R-f=?JUVi#{K6W|Mz3igQ7`$Xd9P{71;bzH9KXy^vg;IP zW>}=DDk7?6+sv;>VSD(;vn%v+lqatJ@DV}CB-WFMn7h(-9lu?0Y(F*ih_&PI34Fbd z%t|Ibwn{)u#;Tu@{el&~2-23?+9jMzchc=)P@y}Zzkf#`_C#3hTG!6mjpnhi$fB+*|( zHCkvi61tIPDK9+uRyOnQ4y$yM3M69Ck=&a_(0QiKZeQ4@Iwa8aVhRge2mX3?fKl3T z-u2s=t#xd!)@EBg^46^=&d*=I^g-XOB6e(Nr!n+AnO+Uny`-!AbdFS9)C~qLvzFYs zsci5RBG%UvHJnOCESh?Lev~fd3=2E_Xyegu6|4Kr`u*SadSuqLUiDT5lUMg+4pDo} zl;9S}aXK=|<9$zkFIK0&e_gyG6M2N~HVr`RT;q+RvX1<9yY>#0Z|TZcy}oi=zFE$T zTo7a`8CbpEozI2?M^Na6v6kN8!G;nGw8WQZN}KxA`1%&D!s;yIV3pR?)KnW5YYG(> zXI2|doD&iSMD-SE5mst$WSim8jDiHJk+s5 z6{yiWE=`#43vh8Mz9|&7CMGJHz@w(7w*HF~fkL6a?<}y}+!Q&ZWPPl){U^))k=J%{ zG*$`&{O6`w-_gM2E?M1IHW>Xb_SU5T<;#2Shb2NC`?Q@#hDq3Rhvce=!xGjFh3WG6 z8OMI|cD#87Z*t$p=(Y(oK%XZK)fsLqsCUyaMz_U&U~lE|pltYe_+OuKYYVwi1BtWi zbU8N4jxB#x{7Swh_lr~EoK6y#mA@T+UdpHVH0Q{R`$ot!jT?nig3YJ`LP}>UT2JZu z)9BbzJ`tU^FA2~^aU41}U{=i~BFPCN_EPI#($U*ndgDXVmc}&DIw50J?V3F_RRgh@ zqJ+Ql`PZ#(g9fM8M`F#D1ld(uXgsbnpra>)&vCDP`$XRT>!pCXDh%G4Xx;7Fn5Ckr z9e3e^_C?}QzgMSFS<(uQyi&Bzkt&_MFcXtZ>$Vk8kr802<+w~rZN+c+)z zo7IJ1rU`EJGQ*}$iY)QzuR zP4KpxS4+k=a!aON|7&k9=Funf9CAh}ibKMUkYW>zE$7dwaThDOX0Wvu z!DQcudT;E- zK;uT|Xy2)uL_NCSihGJXE2Y3tkyzF|Qkhd`>3EaaYdS0Z)syug}lM*d_m~z=i;)aqgV^_(3BteS+Pe{pof3 zNzi?D<6@Xk2}9gemiQs|BNE|Z3L=xVD9U7hxC~#cm{=buM?O%DjPL)HVIkwpC*|(e zUUHO+mv^Gd(NN&brSb8Ms;$YNdoP|{NtogE&!Ib_-g*_2$`=Z;bt^Zn!X z(ChKu_GpM=6A-bSBohX@KSB{Z&{6`jX45^0h^MPcJL8Gf3I~*o+K)Tyq$GKqqDFWwKyyAeJ-~x-9>E{qyHRlgo2`Cl|xBFB#A4^fL$~W+-u0$2|R26+IlS8Cg&C*St z;2ZE{rF|xp)!M4{=c+r&N>%~mOaNJe$!wgA9_pX6_7>jhBm(}hhVnk zLgyr%#tXS03aNUcnzwtEN^L!XW2!84Wy@=J>Zg*&OOWxXoh@8;v}WjfWTk6rKFf>yxe7O-wNRalf$EbKU`KlMZ+=gD7= zy@FHo^{)PZ1?4B4LeWqTM%bOiI35O$Sy-wQUG(&wmP;{oex+)ap-Zfe!x!PuaTdX$ z6P>3#|GVUFfvt^xWOIo9l^U^c5VT<>Uy${tL3!-2sr!r_I?&?DBd$tBswfw96^DCR6UdT=ySYhf_B&fF|~T> z)Bd4bE6DI8xVCt{9Gl=O%9UU5?Sf$`%-9hL{*5o`NNfhOJ9mU2abcG7t{MwFv@5t# zU4O1(xd2!(V+XK{aC<{S;tD+k#uV=7zuP;pf2=BakT_-ig z`4OYcTvNRF^erU||00EV<}rO`iK2B^oO(2zMy*q%O9ITG)*%kpA%({vBANT=>QS?P zKRZR?T)~-M80%bg0+5)=Y&q0dQmsIvWFnBoDSL)p-rmPi^&qU#9YHAb2kHMAp-mfg z@59kRU>Gd6i=m;cx3p_a2zh9_UpM8}DF!cBU;MbNsijMT^2~q%ps;{Ngn*FN#?Yuj zf6!{OBr4xg&$>pJQwTuH1pE=fUGtDl&*`dix)!MY_&b`O5EPkac&UmFSc|vZxEUp9c5ECi&i)jb^2`Z zb{*Z0p0ex6Xkgh?p*wS+c~`~1GNAi~vfLnfvs-Uy@$WSa#{!4Jx3w3yP(emC_#uk6 zGK$a0n6FZX2rD}~yWW`$=>BTOk6GqoJL)LA`zBxK_7Bt&yOe=b~p00z%8Sy))m%pdNs zVl2J0{hkr0&goy1(Vt@~2Eublx?3qN=FHr;vEV4@Q7N~^YG)_be(TsFHwoLp8n<}S zhAuXX@=F0f>4==irrR^ZI9O*+3q*Gr+A*N^6w_LYP+I6tI^W$*46i$x6^?|SHeOvq7xK!ts$ogNulE(O*hc8N);g_d!QyXt3JZf*dfd4&r z6U*a48a}(VQdT{Dm|CAVt9$pTXEhz+ki07=hMgr4Qb|KKsVZCbqX_4|q~wA2_Rgf= z?=E3uutKIO3wVghH7_M#WlmJ#{j&LshVR^;T2=DQS?-j<&6K5@4GGmaje12Vi@HKV zhkBxRzIDY_%+i+=i96}O+OoV7o`D^II}&sylJR%8NW2ILEeGEOZ+YrCyuBZ1fs z2^;U2+M1EqO|A+T43evuu?B(K>{y>8c5 zpW9F0QH4g^U#JzgZFui{^W`!GV^4mi2)D>n06jB!`*^x}w|Y&%dXC@TbdY!&^!3ct zY=xfXw(9*3#seZ2DZKgghqc>-gEj@WJkm}E(gYx5B>i5A)Lf$K!QIo{qaE_5U$=LB zaIcd6D*L%(q{*oltIU7)@&++fFQ}6k>Ryex{SBwEGhL)(wk5vf4+e3!W5}tg{xY}h z*<%WOx|hltqOeNqT4=q($3A%US2=kH_bO)r)QbrvmoR)(Rf&sBGUahH5x_kN+y@x0}UIQvo&N9fuOnt)eD+!W6f(U|HDIN8x)n;Nt_$jwcNsWSnk=Fi_*um;5qHNyC$E|eVoYxnYMt+=+{V+Eyz<%+1 zb-H}#1?MB-I%*H~*yQb{AOFEYZ=Z47Z!f*ObizYOP&;qoAjf&=gGuSj*wB;-OS7B z332sb|2#^XE@~v@X^WRk7n%5FwezuZ*wb~&%GJEjKQit9P2e+17a_0-pxnUr|gjw%p)_63+E(AA{MXfWvZ8Aw6;dxGJq~P@hAuhXn zL|RM}cMy;zVn92bSYg;cUhLgDg*t#a6e436@wh2?BS~M$EB7>ht4*lM-+Ig5Lr*If z;}Z`~%F@O@{9z0CKLk%5VaPpIcRL34o&nkV)IMQtWu{YOODDC%X+cUrShDQ%=aJUf zSVe-5Xk>0850#yZPKlVOwbjVINK0cIBKlu2cNxfv@~*5%}42@JWB$4KtIi6a;X#SED-qUJ$jK73eLu#jVcSORquL#%Rd8r=CXHY<9G^ z@_pbEB);T_Y*%1&B1L0-h){U2&eAu1DrIM5M(WfHC;AO&kQ|qhQM$PqR8{4{vGw}( zh4Ej%^4&+9BA!02o@?T7Ul<9DU{ScnM935)x2xhF80Z7}ooQh#d(M?pk5^ zaUUo(c#6z?_uq-vOPryREYiuT5Msez_}n;t>ZYwukIU$YSFyoauMXx=+7+9Fif7)@ zE^&rdie*vp#2&9owoZj~HE9&Y8CpbqJ9xtBxIc98fO2o7*K0zd#>B~b-sWWuHK7O>92Bzure9WT^O;|_1eP!EDpf!n6Zt{$;r> zxuE)3zcA`Hwnv^OU%B*FGoTi#dVBc#go1%HMgpDTwjG%I61;RQ_lWuhpc+ zSA8%?#sn8lQ1GQnK8yIvjdE7^W&9GDixT!=WFqV}8-Bd++?aU$n9onlN^oUPXl~%f z)p2an4SOH=(GhK3Q*XO9*w<^`iQya<`bR_Rjf{A#g36b-$-QL32iYv%hUD=&O zFIL=iRrX#a#eA>W8;tgu;tXXsi!}>Jak{r;1I@QG$?ZLLvwiNzW#I}6UZzrg5klSg z@)B58Q=p%0TXRMlfwhlf9Wqi_vt+RC+OyWEc8YA6NdksB$~$HekrJ_QJJSTBI9v_C ze)j_V|M}So#XT>=QT-MA$v<)essp`LqduVfXf%W5ZEXe>?;`y<%DJ zqoP*+XoqG!PGAz}@hifoHs8g6I(ydp`|V=#9cc5^whO^-6o*jbr{Y+o7L`u1i^RwG z&Q$-7Z9DOSNtOq(uz-wHG(1Q{d7A005ChN=sqP6k6-&zG0*qLsG@S-}yk<*krdI%- zFr4@xzU!``qR9@S4*u}ZbgNrKxpmD0&fZraSoY{UuJhm@B7CVT`1{bIglm-Bhh-Tw zi%%YMm8#6@{ds>|IC}H0d-lAs8<=5o?5mSi0bgB+(Vxc za!IU$tAJg7%oTacKeI;Ianr9`X`r^eCog(=i!{C&Z8pw?o{@0hZj~Mj*#xu`-Ka2ZObw&;V2` zcP5|pG}bR~E=grV0WEO%OnqcV1F%bxj)%;KryMJmkb?-I1B~?LkwCs>kOhPwkMf?f z%%1Y>N}m!lgxr780d%C9J_IxYo0};M{*9h_9LC`W*$=?XJN32&PiFlz3JLnyX#c+S zFQdC{CQ07bU-3%d?M&iU+{g!y6!Pk$<>*k2df!0v!R9R!Ak#qG6_|=m z{ftC6ZyTGxdSl6tSRz1k9zORl;f$ zEM~r5Rz}-t#-vCUdHC(V@Y?vexcu7MfksYN)}n!d0Xcm3tF8t<{y7*so~0_4~g6+<<|a+Jq|-nRS?QB)E)n^74el z#lJS%IXE1|XfPZQnfy@*R)hD}?LOf$Ugk?nS=@{+a$dBe2^ z0i8Wcu5si2^O6f1by&SR8Dx^^eqMbl*1v0YSRCcVGq$1^^i3l^>^GBQ6lu7FE-XPfk)e{-8; zPwzvSZ9Jx?{l_22F)cMsz{NtgF5W#eIE+gLhBl^=`y=W7XqWH&E7sWI%0ITxy(83$ zY~Ux+RiWHB>^K9XmF^K%k=or{(vE{qP;t4>(0`NxNJU)xG1?io+nfDWB8w z(gf7L*yE>nKmS9Ys#0XYzq%LJhd+VWb<}Od)bY=)vY{IAe3OOTo$nt=4eR#ZCH0Ha*Tb;Qnq9K0Du3)*8X-8m`MFl|j?+d3TFep! z-$r*tt-PWt-O|5}Hd+Ks3kWFUX}=g`ca+PFDl7ya{Oj4omzCMpmW|aw+H4jYx%T2+ z^>OD=Q&`AK?+Dp2H_2qhxG3lOS#;=DyVv{^iH>zvcfiR4)3i4H(k7aS1xUc!|L0v+ z-V@6*HKEu-=h)?LVKDu_-cWZlZD09e83RpZ&8sdTmKWR6tsJqs@+E!kT3TAh=H}BQ zVgdrsd1TYUn;qY~lG@YeEhbMiOU;K$BF}!g44IgiB@1f_3P!~I((lf-TfBVi==JSl z_e1Xg34fifz+Zk>^wNF8E8+ITDDJ{^|8f-w)O#K+uZAIf;^R(k{YMhr|eGsrB+#y-CX+}RFr+R zK{ixAZQk`wR|eIc_MJys3IkS^auwi;CX)eYwDw$RbuSc&`cE$7qm@ z%E~sbL)D7C?j|~BX33tOo;@}0HfsIj@;$wG_eHn?KjpO(A|R>@zWj7~bs_0KB!aH_ z(ZhYsy)q9J|2raJ4xHWv1qHMy&cl$%DlU#Be3=NwX5glKaUIDxEwN-Q2y|YUKo~VNS&1y!_k0=CzORYWBO#LDa#s*QP)syAE|+gT}_4wC?X8`M+C#aT%8; zYv25;%LTk)fjQ{p1nc&M+gqNh2Os_A-I+Vumze_+@f`X(jF zY|(rlo+|ncX#1;=z=L(#y~!ncd7UsJXUgoC2rAT&e<`G!Pa?$XLhPFo8}~j#F~OL@ zN^$Pc#b3Y8>9_n;u!3vZXZW?oT8wROx-Q;Yl2isjp%>qq(7(RnyP?`57IT=uA8 z(qv9KA2NlW=t&TP(4FKvN^X`^?YpDjcoN1TDj228DKpUEU6m8Mu>Z#{3q~Wd#`pOC z)>96t6H|zJ1Qbq!PIpYsnk;WKXg>o4oe&_RZt{AFO%=Tp#@|b6{A|pVDwhw|f_Gg_e8o zTM&-$?ed~$cO!mEG92S8Q&y^PZ9Tv9a~E?0tbBn~!Lm4yKn#bq6}8pN@x3`eM*MuI zIxarh8oUzkuSj6qVcvb~`s^V8jp!!T)Ns|V6Z%)Ls%X+umMH&T*hp7=q80=tl3Mp| zY^>PVTs~M}RzVd{Px<=$L-=}b#MS-*)GsryN%%E2V(q^h8b!tR>d+)ZdQo5?c@=pp zhiBK*M@4&okjn>h_is@UyXDLwzdPGZ~AXZ0dKrDxDoV~`#SUzxg zP?%laJdzaH0jrtGgF3c3Pz9ajCjpf z59J_Y705a%ej|yAsdqAB&IGR}pDvXTsy)drqPSgK$EQ4MDd7|+8QK(=DufRxIz2wr z-0a?*DR#7r^}?P*mCErOE--Z3h~je95?f(&#(kjuof7o>Zly=|G9>$XzD}MDSiA*Z zLv*n)#AiWlgMgGVgnR@|K>U%Oa(sqApX5F{t6|pHn$(SzMjNXZ743iRI$(8;|8;#i zI!<9jCI-Z(cDD5}eKLc+W+>1cmpDy}ZoZM4tbv=>-6u3|nN&E++?#w!z5{Ze30NZett^UV> z6NAdz0}qx$w+%51SF!65Lw85if0dqIFGvR>2tQ8gUt%UbD$KdEF~z^sWUD^D)!r~S zf+sTzQFc#$WE87RAqe>SEkM(mTTt_X!k@Sf`aQ*ic@kXXW-wCX7OC|+9zfubdYB+xUxbDUVXUO@nPon`dANp6O?W|?orKuHp)i!?86P;IQ z#mh=PW&{K>Y~#xi8qZi{l%~!cV8GPM80|?|u0tK^&Iuaz(}gE&5)&P)Eo!98l9O?d z7;qzv8P1-b+H1OcB+J;;nc&PcHZO&f$GTVxft-20cVsrpUcRGUK6W-IUvsOb#zkD> zb(xir>kuDkHnU4}rp*xW*CDmFk<1m+t;2^Ewh{!p$V?sITNDCq_@Ld#i|`y`Q>?Y0 zYQPu+6yt9WHMW3#12+in7j@hTSz>&*qIH6@SZjmfoSFbhzYPgRJ{BiztipD zX`@L1$qFm={5dX=nB3o?Epd1F_m7d8+`L@Po%Lu(DdGrTxJEkA=eB4$pZI~sAB88o ztV#%uj>zn*cZDb>Q`m1@S>`RX-e@?FA~xGgnE)}(8`eJbTlyqdy5R+w#3sA$jp!R6 zo-8eAL%HvrX*Cu1e5c$0Lcibea;`u$o$6hGy*xQu$PHf^TF+bC&lT-U=Rr7R zim0jWf2B=X*04;N&h5j8dGZV+p7fZ?>&0Fn`B1(%w4ZkQQHzwSWxY?Eh5L5E9`|*0 z6C@;q#9lOz20XQ7>%IVk840`@RAvnu-+hL(lW;pPh4`{)S-lvru6v5jxajvLavH{* z@Kf0-6t+6P=Qrjug4dk_dXbp-H0F;K7KD2|w(|#a?j|Mpi|W#05RK~#>QldO$TAg_ z$+T*o*)@Yy@&TtRIVU9hC~&`Zfjt|;o3W%GtqFyu!SVg^Bck70XzrWW&p`78$&iK~ zOjXan>_gKQ$K5*(E1RKtR{1z2DC3-NJ;po9l$%lU^RCeZ)ca7pVS`mTFtotY({Fh; zcqvL&+5XA$d_C^nLrQQW1WtT^%ilz(bi`F)HN~3Ff&09tvY@BAnU2ix7!(Z-9n(Q% zJNA|&^A}~@d{v_?di~D-3@`l=3=x*SraE^LbLza%5?Dz>=z9A!sX`b+>ZZP`>vSdN zgl=Be)J*`H^XRXI@tOrOQigx$?GlvUfiN7gNM{OTkCKor0EQAiF^tl zLXJG^86R)lLvFf#akkj~&Ex;g?Z9At=fE-pt2UQ%K+h8ih>`^kv8_E8{4+T`#F^Mw zokL}hXZ$=DKZjmL`uJ2s+QqdwKR35h^UB*Ei=*Q_z{mHHIhY|6#awH{)7=??dwXA~ z(r-a;rAds1Lw=g|&IRxuFawT#ym26ut{PJf?7a%}i?{S&!bYl!=*A!^9@=h4{e7b) zmHc&}+}3+Em{dpdg}mnFWz@<%-U4K6)toFuB(#10Y%tms%*4)aRTijbXXjXE?lk)R ziY!}#TeG5}PU@hMzT_dFKAG=V{_~D~m}=+#(m!|PIC0i{-em-Gi=d1N5SLb=ji}iq zBcosV2q5y~VvtLXmaU{&@rqj0?G9N&kNJavfomUIS}>%@NC!(kA|RixDXhu2Ofsm}NdG#G|J6rygkW;Y5>~pB zvwmNsd`LC@1myPlJOa%wpl+nTSm_X8 z{ryDC>yt0yCeTj3f?eo6d3u;8AipTT%k<&rn4EbBQ`*||l;Oe*)l?Y0_wU~*{ON+g z$u?fI*%Ovb)QUaE8C<0YL(_NfTBw2IE|LrKg`|Hb zg)Bs>B<|AqcM1};x=*Xl!{@O*@+I@ z2%JU9GU90hN9eF+Y^HnZX(`PVWt+Cnc(+DlC%pOeD73Th7NuR*UmD%fl=pQ?MG4OA_EjQ0zH*vUYS^ z)oWb;A&dp5DK&f;bCrg?Tfxsqc(z~2~F!QUOMA}zaGY1JU>jYL+^)- zAvwgvcFKMR*CU~Hsnm-flUsXD&NIi_MuKbdCx;UyD6s#F_Mtq)yxUytN`8y;Yo73y zs!WH{T|t)WI$Uc2;@q3q+S1bJhi5YN8*#Xm^k$?yd%1-bIo8r7YIhrUXv!xIohHA6 z7BLN(6YtoGeQwt5EM*9s+GR;-B|_Q9Ybtx7d3v)Bg7cZ1pFxLV=(7NaJ|d#Q;wx!( z;fa|Z;yILBC3BRTjR@HodQX58H|N2FuFYd%qVwGO4bB)ohHv>Ea}xpVoc$pgls^_r zr>F%_Q^xO^g|hAKrzBWv9P}hu13_MI=IYo#34jP=Y)2dr!>jWvma(z6?|cI=gp@YY z9jh^ndOq;u5IBcGVvL$PJNm5kuRE>tCU$vJa3I$?h2LSQmEK$n@ND58(Ao1&zPJp| zwX^D)Bs@O^245n9_`bf?Zj%BDxeoW%bY!6FN%F!(w31VwuJ1}Ar<7*EyetK2Tev+} z+W3Tev4ahzAvMl`Q>X3BSu@Su2z&j(y6y)HkT3`tK%z|p!Y}$>qh)tGB#>7gz>x&? zlN`MDkXa!!`bpeKpx#DzruH58K_eFNOCXoMbbwPIvu)9U#^vA)s&ELOIPUyMdVb$W ze=2P)DElgI37c9X%`UGQ$(*^SlxW3QVqr@7xu3UX7t2u{rQJh+R6rQ-dK;)z!}d&O zm7`q$|6Fo6Uxk^=2>#QEIehrAOJiC0R1c7Nl|a6!sV($Vk5ZCp{u>WWv|TE7p(XFf zj`}=<+6&P*1mOx_O2(eIJSa>GF4<$RPO`26QG}1Ctq^? zr4Okf|A8~~``&0v`LN$RuL_s~hj(8L|K*MzP5v z4>EErkJYH0`vi$Z>x9g*wKcyg@OAGyc%&y+C$*teHefmbYBWblx30X7hld9SYJ*of zU^&X10SuNFm0~n?QX~zEOiI8{#@IH6+E^;$`qY^srFHuBX-y3c{Y#hbU67Edy7l=u z$$$EEkli%2H@e7%A&ms$Tl3vtX_=TLupJ5SPXINfq-S*>c>Vl-hyW%*_!ggbQkGcr zCK6xoYr3<&Rpm<@QDJ7_{?+y3^7Ke!eMac^Itx}WRaytDL@u@tT2Kq#UMDyWRu*iK zh-KO8(U`K+(k@9&>l3U1bSE20Bi;O&K`)2goAEX_)Z91M7spu?11e2Q%+U~11MGK! zO>>AGYVsL5MI7p~;C)AX-#w(S3R?G^8)>w-e~{59Q%p>(-`La&ZQJ^EssgLjJ-V~) z+nFk(2TRTP!SvEIpqHP*%q~@pxy5~5wDvoV^YY}^`K`r8&mx^vX%inGA1bYf z`h1@Q$a6J#G7}S%iKb@6%CA^GOf>vq2K;azR2s53OR$5D{Wa!RiFM;(aAyp!mT>s{ z8^AobyW6QxeyjH_WQ7g}~ zFzgQ>KD1sD78f^Y3|R5(uYidN3J4$w>Ao4{6!^`#GiNSkhHlr5wm<3e`2L0(fn1vC zk1>u+g-*T)mh8w0$nyf&K;$gfQIYQaMrf>*;>Uq1^%!lq-iM8Cp8(XqPE3W!$U z0rqb-bL17}I(Y6pIKz{jGNV2J96MVXw7#gqOwZ5(J>5}QMbbHbe)T98slzCb zt~XX5ADQM!a9*c-ixTC0X7go6{4N7CcI5i!quKxsxJ1k=^>5v}Rh4|21OgVGgev|p zLsXGydVU7r9HZ2vt|^ogoX{S%p2;ur#GXK6V_vlK_BGgeUYvRe#Mg4$R*>?)AUOBm z=Z6*Psq=DJnf+$??b|oXakl@GhETj;LfI&dQ1)ur3u_FKSkRFGrtYaoo~?+8h(LOJ zURYsJij9lQvDy5|JlNnbu~YLlDvX0mTwHwmTScCymlwWOP*5-q;^jIzI;ax9lSwFJ`v^=rF(7k!9 zT4`hQEIKzgAe{&!gTJM5dI%(9WiZ*NY@_~m$51M>04C07=UD6Z)V`Qn}HTh6S?;4O+-{w z6>J~}%K61?tqzrdcrHsmeK*q(iM&~2QS-&T#x0%qbHK(_UWxZipBa=MyKiTfAmu%6 zBqSj48M2^vTuW@4M=%p9&c!`FMl+wDpPdi<>+kb#roU!~uYhE?$PC#i=tXNWJ5P4K zxVxcw2pI|}qWHsyE6(3u+nK1U-VKxwT6;xKG047Z#twBQD9`T~WI zGIO6%>6LI~z=6?1g~)n4gVF1mWMcEEd9_P&d}gM5$+hx#)7^Q|y-*p=nK;szU}w;O z{b<*|*|N~BqTUym4+`<|wP3#Aqc1itGTD#OI3&&)x>?R!FerWV!=d)q9Y|-WyH*hs z8(RVve-WsOK8og=Ul@y4HoqKxr0VC-pT!Rz(9ST1uH83AB9Di;-@k5Rs2F>zGhMzv zxDzVO70b`pzIW;?PVUV?oN(^SQl%_Me=uY>*i%l235;I?@t4;~qoK{lCMFXE7{RAq zq~;pCyiXCYp3v<}EKH*;NFEifO6hcp0)>+T3m3|9&ch!_DU@UVupp8}jOZK1& zS%lkPvw^(5>sY@Fx{U>SS%H;`YJlQTc_W~KKzO)6e*748x^?R*;cHnESOr56ERY1B zV(s^1Kgl7QT|Sp`qF^0Nvad$J6i{$NRp#B4!r4a~(CP)ggkOg|3 z3HtmyU0vY%AZYQjMCf)<6sNK^h`h9b<;fRtbf&6@+zh*Ob);bPP~=JgoKG-e-1A|p z43^u5LvSfK0%UKMIdsve^CCFC38Rj9@ds8%W;Yw~uJzDU-dn0p(s|YHJiY$!Z}0OWzymy3>yd38FvT17 zxA>)@8h6t~Q7hEKN9Oh)ck%&O%wwxvz9D1s>^2F1vCA1ffBsy~^VdJ{{5{|iwerP# zdkeaQ+M~dobdQ$PF*%gAjpfrR>{f*5-TF!iY-5Gfs{umhE64yQW@f?&N8qfu>$lfx zF{q_Z86hz-J*#@3UH~{Hj7n?Y<1$Gd64-O_saArpK|lb;9-C1D>)SuY0npAP+za7^ z$5gG(;{)3$ey_Yol#m`5)bH=A2wb~ZGhmtk|8y^JQ)SYy7o6rYUaf@5_l(Lt-u+g2 zpuQ;@sCa1!L@-6*d(RJ>!M5s+H?=OHIA7pENBncX`MpKLcvDkxaq*xcMbNIY10-|+ zz95tm`w19u|vH*!r#=wELf`q&PP?RehGi5V2I~$3s(699~?Zo2Z zqMR}r3B?MX#PKyGGKav fq4WPnR&9npcT*G8TiDGvp+czXUManF{oelpjm(VJ literal 0 HcmV?d00001 diff --git a/pkg/newlog/testdata/perf/fssaggsig_timing_results.csv b/pkg/newlog/testdata/perf/fssaggsig_timing_results.csv new file mode 100644 index 0000000000..73044b5173 --- /dev/null +++ b/pkg/newlog/testdata/perf/fssaggsig_timing_results.csv @@ -0,0 +1,9 @@ +Test Run,Average Secure Time (us),Average Non-Secure Time (us),Performance Cost (us),Performance Overhead (%) +10,22588,17526,5062,28.88 +20,33573,25075,8498,33.89 +30,57371,39083,18288,46.79 +40,65602,45449,20153,44.34 +50,76776,53785,22991,42.75 +100,75143,51382,23761,46.24 +200,67506,46271,21235,45.89 +500,53891,37241,16650,44.71 diff --git a/pkg/newlog/testdata/perf/fssaggver_average_secure_non_secure_time.png b/pkg/newlog/testdata/perf/fssaggver_average_secure_non_secure_time.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5caa1c1d3232f1efbf84d6fbafef8ac6e10ec7 GIT binary patch literal 44903 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

;ZdRRD+DIi@p+664U3J%tIPlhrw9}FKp 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

1YQSk8GkN{y-HJ%6YAgm)&eWR_uok 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

U9fH;>0a|kjMhJgx<9B4RNdwXjCgqu9 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 HN@xNABwJk6 literal 0 HcmV?d00001 diff --git a/pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_average_secure_non_secure_time.png b/pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_average_secure_non_secure_time.png new file mode 100644 index 0000000000000000000000000000000000000000..c20fb77d315c25879918ae8dc0b3db4c03ca188b GIT binary patch literal 48746 zcmb5W2RN4D-#>gKqsYoiwnDNhGh0?NGLn^9k&>CcN7<5u%#`c@0&6?-nFy8Z~f>pj|k5tE+z{H2OIk< zyu4Qb^#UGiJ9A!URh&M!$Z;D*U3(0M#034u%8*RIkHM7pT$7d7a!yzna&nI99>8C* z){b&W;~u(^vcP=?3oE)4o5jtV)F4pUhL8e3#hc)eRQ(+V8Ls-Xo3bz0K5sMN`WNPR zh<|_g&E<&TxJo?FtLKHgo}Vt|C zTVLrJSy}CiaDz>aZnN2kz zFoc@7ztoL*q9N?eGsUy;t2f8wYSQ}UdoA9wEY;<1+Y23{Ogucq*_DS^esyQ!7wDZd zGBV14G(@{xvCpHSsk!(){d>OMl+yb0n-u-cU)_sCH#2z*%K|T&HKf4D?Huke=Q_-N z*RX1L@R)WA2?{#jy~QZk=4DSFbWGztg`uJ0>~Og#F@u=J@)DUkE>jVjilz@MD>ho$ zhV)NK7#q4XZ>eW$bGtdcZ9Q5uW?+ z&7O$O^(AIXf zWM%Iv-nn!3@b|XS!@*)Q-ijTTn%dfn9(x;&{rG;>-XA}5WoUh9?0;kuPAB5atzS5r z*Dg_u&**M!yA*F-A#G}!>TyLoFh8HaxVRXWLt5(nu6M#NYiB+87lk(Fd)kMGurOTu zg+xVN|ib`~SDam{+Uyu8T*IuEzx| ze^dpMv97(~eQ;E0W@d)fE6As+ruH;1&)(-Q9uW=3+S)q4U{{#mdU$Z$ssHs=e23*> z`Vr54Zg|#*jY(wcE{*4xVDb4seOlYqbxPcAtIit>hm?Wgkwkje-00L)K(1Niw2Psg z-6btf%3;ratM%NL7G>pR3Hk!dZeNY}vNvv!4!g|I-??{BPpsz!^=Sr%@FyqF$h_Aw z-QQZoc$e7Eq~0!d%+PvI{=-s0FWt(Whum-VEmNJu`E#z)j?N$17I@~1EY((tixpC=d@ z8Owfe4Zy+-D71w~|9a<=*zRPMOIt~4>CACe68bCt9UV6;_-TbjMc-(qtM0%Eu8D28 zC5qBWdWvD=;Jnu2B%`AXjWO~(t*fhxVW`+HiF=nkQfyo6{?T>wm-AA|OpaM2asISV)+;UZxNk9UTB$!3S)4TdrW`;J6aRh8z71IH(W5?@w@ za14gx1n%C}Vu(t-V4NRz6nta8eEHPXCq!7r2WG3gGs%sECH9?}w|Keq@(Ez~SKl)7 z2&neMpSka}y)@)J5hldvykd;X%(THx&5G@oxXb8WS9xO0Myq^w*4rhylO*r8(4e=A zyKYn^h}frSXLjb9w~H+fmb+1_N$j45tsekAAuc^XoKcd2kcx|ArTo2i)~j9drnWYo zoQLWIo%5S$`bep$o=|b?84s7aIKwAKzIfpe7ozHw_xzlfM@CML4fVbyQIz`k{x&`a zt?Sq;k2(8`tRtW$(4rOV>?|xJBa_lKcjDt^78dNDY@^2BT(ew@P8OommyXT<%(@!E zApQ}r!4L1GjFQp`XbJ(+et0HRP0<8|gn1n6HH5sz)xNm1KeNu}FUxyN(g&k@mIp@0%pj~eMa zm3S6$ar(q7k855DJm9nZ!NFxvOu9Hw)VRM~86h;{z8=|sJ{+dB)|k(DYoX7g>)lC- z-y51-Iyo4)h8#TnMe{bgA0KWK!qW+EEe@D_8rs5Y*Ml+wONX#Zc)d�d|2!3!jyJTOcO5-v7#SnrA9V-q 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�G!QA}|BI2NYtaBm*j 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 S-^GcCB>jF!JA2=;3;zUAiB#VJ literal 0 HcmV?d00001 diff --git a/pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_overhead_and_cost.png b/pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_overhead_and_cost.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e21807e982b1975b6c4a5426c676e711b4aeef GIT binary patch literal 51872 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

suqU=?XA|vmZofCC|Nn?Qhzx^il(c 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 X5t~-4azLRtN;j{k*(8zzX literal 0 HcmV?d00001 diff --git a/pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_timing_results.csv b/pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_timing_results.csv new file mode 100644 index 0000000000..ed41e5794a --- /dev/null +++ b/pkg/newlog/testdata/perf/fssaggver_cached_keys_10000_timing_results.csv @@ -0,0 +1,9 @@ +Test Run,Average Secure Time (us),Average Non-Secure Time (us),Performance Cost (us),Performance Overhead (%) +10,2561,1908,653,34.22 +20,3960,2892,1068,36.93 +30,5488,3892,1596,41.01 +40,7053,4765,2288,48.02 +50,10219,6904,3315,48.02 +100,8483,5542,2941,53.07 +200,8512,5603,2909,51.92 +500,7414,4856,2558,52.68 diff --git a/pkg/newlog/testdata/perf/fssaggver_overhead_and_cost.png b/pkg/newlog/testdata/perf/fssaggver_overhead_and_cost.png new file mode 100644 index 0000000000000000000000000000000000000000..8212c3ee854355b3229bfd4b2e9de5c074c3d940 GIT binary patch literal 60674 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