From bc2f1fc1655665b4ce94fba892fa8b53b1a8e972 Mon Sep 17 00:00:00 2001 From: Ari Archer Date: Tue, 23 Jan 2024 19:18:10 +0200 Subject: [PATCH] [docx] split commit for file 5200 Signed-off-by: Ari Archer --- ...video_tweet_fav_engagement_generation.docx | Bin 0 -> 37531 bytes ..._video_tweet_fav_engagement_generation.sql | 69 - .../scio/bq_generation/tweets_ann/BUILD | 110 -- .../scio/bq_generation/tweets_ann/BUILD.docx | Bin 0 -> 37261 bytes .../scio/bq_generation/tweets_ann/Config.docx | Bin 0 -> 37064 bytes .../bq_generation/tweets_ann/Config.scala | 33 - .../scio/bq_generation/tweets_ann/README | 95 -- .../scio/bq_generation/tweets_ann/README.docx | Bin 0 -> 37188 bytes .../tweets_ann/TweetsANNFromBQ.docx | Bin 0 -> 38274 bytes .../tweets_ann/TweetsANNFromBQ.scala | 120 -- .../tweets_ann/TweetsANNJob.docx | Bin 0 -> 39318 bytes .../tweets_ann/TweetsANNJob.scala | 297 ---- .../iikf-hl-0-el-15-tweets-ann-batch-job.d6w | 39 - .../iikf-hl-0-el-15-tweets-ann-batch-job.docx | Bin 0 -> 37262 bytes .../iikf-hl-2-el-15-tweets-ann-batch-job.d6w | 39 - .../iikf-hl-2-el-15-tweets-ann-batch-job.docx | Bin 0 -> 37262 bytes .../iikf-hl-2-el-50-tweets-ann-batch-job.d6w | 39 - .../iikf-hl-2-el-50-tweets-ann-batch-job.docx | Bin 0 -> 37262 bytes .../iikf-hl-8-el-50-tweets-ann-adhoc-job.d6w | 39 - .../iikf-hl-8-el-50-tweets-ann-adhoc-job.docx | Bin 0 -> 37262 bytes .../iikf-hl-8-el-50-tweets-ann-batch-job.d6w | 39 - .../iikf-hl-8-el-50-tweets-ann-batch-job.docx | Bin 0 -> 37262 bytes .../tweets_ann/iikf-tweets-ann-adhoc-job.d6w | 34 - .../tweets_ann/iikf-tweets-ann-adhoc-job.docx | Bin 0 -> 37209 bytes .../tweets_ann/iikf-tweets-ann-batch-job.d6w | 39 - .../tweets_ann/iikf-tweets-ann-batch-job.docx | Bin 0 -> 37253 bytes ...nsumer-embeddings-tweets-ann-adhoc-job.d6w | 34 - ...sumer-embeddings-tweets-ann-adhoc-job.docx | Bin 0 -> 37221 bytes ...nsumer-embeddings-tweets-ann-batch-job.d6w | 39 - ...sumer-embeddings-tweets-ann-batch-job.docx | Bin 0 -> 37265 bytes .../twitter/simclusters_v2/scio/common/BUILD | 21 - .../simclusters_v2/scio/common/BUILD.docx | Bin 0 -> 36980 bytes .../scio/common/ExternalDataSources.docx | Bin 0 -> 39174 bytes .../scio/common/ExternalDataSources.scala | 301 ---- .../AssembleMultiTypeGraphScioApp.docx | Bin 0 -> 37143 bytes .../AssembleMultiTypeGraphScioApp.scala | 39 - .../AssembleMultiTypeGraphScioBaseApp.docx | Bin 0 -> 41897 bytes .../AssembleMultiTypeGraphScioBaseApp.scala | 574 ------- .../assemble_multi_type_graph/BUILD | 73 - .../assemble_multi_type_graph/BUILD.docx | Bin 0 -> 37273 bytes .../assemble_multi_type_graph/Config.docx | Bin 0 -> 37288 bytes .../assemble_multi_type_graph/Config.scala | 37 - .../assemble_multi_type_graph/README.docx | Bin 0 -> 37344 bytes .../assemble_multi_type_graph/README.md | 49 - .../assemble-multi-type-graph-scio-adhoc.d6w | 36 - .../assemble-multi-type-graph-scio-adhoc.docx | Bin 0 -> 37237 bytes .../assemble-multi-type-graph-scio-batch.d6w | 41 - .../assemble-multi-type-graph-scio-batch.docx | Bin 0 -> 37282 bytes .../scio/multi_type_graph/common/BUILD | 13 - .../scio/multi_type_graph/common/BUILD.docx | Bin 0 -> 36813 bytes .../common/MultiTypeGraphUtil.docx | Bin 0 -> 37721 bytes .../common/MultiTypeGraphUtil.scala | 69 - .../multi_type_graph_sims/BUILD | 92 -- .../multi_type_graph_sims/BUILD.docx | Bin 0 -> 37351 bytes .../multi_type_graph_sims/Config.docx | Bin 0 -> 37032 bytes .../multi_type_graph_sims/Config.scala | 18 - .../RightNodeCosineSimilarityScioApp.docx | Bin 0 -> 37395 bytes .../RightNodeCosineSimilarityScioApp.scala | 55 - .../RightNodeCosineSimilarityScioBaseApp.docx | Bin 0 -> 38008 bytes ...RightNodeCosineSimilarityScioBaseApp.scala | 96 -- .../RightNodeSimHashScioApp.docx | Bin 0 -> 37210 bytes .../RightNodeSimHashScioApp.scala | 43 - .../RightNodeSimHashScioBaseApp.docx | Bin 0 -> 37682 bytes .../RightNodeSimHashScioBaseApp.scala | 65 - .../cosine-similarity-scio-adhoc.d6w | 33 - .../cosine-similarity-scio-adhoc.docx | Bin 0 -> 37198 bytes .../cosine-similarity-scio-batch.d6w | 39 - .../cosine-similarity-scio-batch.docx | Bin 0 -> 37245 bytes .../sim-hash-scio-adhoc.d6w | 33 - .../sim-hash-scio-adhoc.docx | Bin 0 -> 37192 bytes .../sim-hash-scio-batch.d6w | 38 - .../sim-hash-scio-batch.docx | Bin 0 -> 37236 bytes .../score/AggregatedScoreStore.docx | Bin 0 -> 37096 bytes .../score/AggregatedScoreStore.scala | 24 - .../com/twitter/simclusters_v2/score/BUILD | 9 - .../twitter/simclusters_v2/score/BUILD.docx | Bin 0 -> 36784 bytes .../twitter/simclusters_v2/score/Score.docx | Bin 0 -> 36907 bytes .../twitter/simclusters_v2/score/Score.scala | 22 - .../score/ScoreFacadeStore.docx | Bin 0 -> 38089 bytes .../score/ScoreFacadeStore.scala | 103 -- .../twitter/simclusters_v2/score/ScoreId.docx | Bin 0 -> 37749 bytes .../simclusters_v2/score/ScoreId.scala | 129 -- .../simclusters_v2/score/ScoreStore.docx | Bin 0 -> 37543 bytes .../simclusters_v2/score/ScoreStore.scala | 72 - .../SimClustersEmbeddingPairScoreStore.docx | Bin 0 -> 37494 bytes .../SimClustersEmbeddingPairScoreStore.scala | 201 --- .../WeightedSumAggregatedScoreStore.docx | Bin 0 -> 37788 bytes .../WeightedSumAggregatedScoreStore.scala | 84 - .../com/twitter/simclusters_v2/stores/BUILD | 14 - .../twitter/simclusters_v2/stores/BUILD.docx | Bin 0 -> 36879 bytes ...ageFilteredLocaleEntityEmbeddingStore.docx | Bin 0 -> 37807 bytes ...geFilteredLocaleEntityEmbeddingStore.scala | 96 -- .../stores/MultiTypeGraphStore.docx | Bin 0 -> 38072 bytes .../stores/MultiTypeGraphStore.scala | 287 ---- .../stores/SimClustersEmbeddingStore.docx | Bin 0 -> 38109 bytes .../stores/SimClustersEmbeddingStore.scala | 120 -- .../SimClustersMultiEmbeddingStore.docx | Bin 0 -> 37507 bytes .../SimClustersMultiEmbeddingStore.scala | 74 - .../stores/TopicTopProducersStore.docx | Bin 0 -> 37283 bytes .../stores/TopicTopProducersStore.scala | 87 - .../simclusters_v2/stores/WtfMbcgStore.docx | Bin 0 -> 37126 bytes .../simclusters_v2/stores/WtfMbcgStore.scala | 34 - .../twitter/simclusters_v2/summingbird/BUILD | 118 -- .../simclusters_v2/summingbird/BUILD.docx | Bin 0 -> 37202 bytes .../simclusters_v2/summingbird/README.docx | Bin 0 -> 36749 bytes .../simclusters_v2/summingbird/README.md | 4 - .../simclusters_v2/summingbird/common/BUILD | 62 - .../summingbird/common/BUILD.docx | Bin 0 -> 37220 bytes .../summingbird/common/ClientConfigs.docx | Bin 0 -> 37497 bytes .../summingbird/common/ClientConfigs.scala | 81 - .../summingbird/common/Configs.docx | Bin 0 -> 37489 bytes .../summingbird/common/Configs.scala | 70 - .../summingbird/common/EntityUtil.docx | Bin 0 -> 37288 bytes .../summingbird/common/EntityUtil.scala | 46 - .../summingbird/common/Implicits.docx | Bin 0 -> 37774 bytes .../summingbird/common/Implicits.scala | 140 -- .../common/ModelVersionProfile.docx | Bin 0 -> 37188 bytes .../common/ModelVersionProfile.scala | 40 - .../summingbird/common/Monoids.docx | Bin 0 -> 40580 bytes .../summingbird/common/Monoids.scala | 478 ------ ...imClustersEmbeddingWithMetadataMonoid.docx | Bin 0 -> 37447 bytes ...mClustersEmbeddingWithMetadataMonoid.scala | 59 - .../common/SimClustersHashUtil.docx | Bin 0 -> 36850 bytes .../common/SimClustersHashUtil.scala | 14 - .../common/SimClustersInterestedInUtil.docx | Bin 0 -> 37446 bytes .../common/SimClustersInterestedInUtil.scala | 72 - .../common/SimClustersProfile.docx | Bin 0 -> 38473 bytes .../common/SimClustersProfile.scala | 212 --- .../summingbird/common/StatsUtil.docx | Bin 0 -> 36991 bytes .../summingbird/common/StatsUtil.scala | 22 - .../common/SummerWithSumValues.docx | Bin 0 -> 37232 bytes .../common/SummerWithSumValues.scala | 40 - .../common/ThriftDecayedValueMonoid.docx | Bin 0 -> 37288 bytes .../common/ThriftDecayedValueMonoid.scala | 57 - .../common/TweetEntityExtractor.docx | Bin 0 -> 37484 bytes .../common/TweetEntityExtractor.scala | 65 - .../stores/ApeTopicEmbeddingStore.docx | Bin 0 -> 37179 bytes .../stores/ApeTopicEmbeddingStore.scala | 43 - .../simclusters_v2/summingbird/stores/BUILD | 32 - .../summingbird/stores/BUILD.docx | Bin 0 -> 37041 bytes .../stores/ClusterDetailsReadableStore.docx | Bin 0 -> 37572 bytes .../stores/ClusterDetailsReadableStore.scala | 67 - .../EntityClusterScoreReadableStore.docx | Bin 0 -> 37387 bytes .../EntityClusterScoreReadableStore.scala | 62 - .../stores/ManhattanFromStratoStore.docx | Bin 0 -> 38047 bytes .../stores/ManhattanFromStratoStore.scala | 108 -- .../stores/PersistentTweetEmbeddingStore.docx | Bin 0 -> 37760 bytes .../PersistentTweetEmbeddingStore.scala | 104 -- ...roducerClusterEmbeddingReadableStores.docx | Bin 0 -> 37389 bytes ...oducerClusterEmbeddingReadableStores.scala | 101 -- .../SemanticCoreEntityEmbeddingStore.docx | Bin 0 -> 37310 bytes .../SemanticCoreEntityEmbeddingStore.scala | 49 - ...attanReadableStoreForReadWriteDataset.docx | Bin 0 -> 37776 bytes ...ttanReadableStoreForReadWriteDataset.scala | 65 - .../stores/TfgTopicEmbeddingsStore.docx | Bin 0 -> 37231 bytes .../stores/TfgTopicEmbeddingsStore.scala | 46 - .../TopKClustersForEntityReadableStore.docx | Bin 0 -> 37103 bytes .../TopKClustersForEntityReadableStore.scala | 36 - .../TopKClustersForTweetReadableStore.docx | Bin 0 -> 38605 bytes .../TopKClustersForTweetReadableStore.scala | 176 -- .../TopKTweetsForClusterReadableStore.docx | Bin 0 -> 39332 bytes .../TopKTweetsForClusterReadableStore.scala | 298 ---- .../stores/TweetStatusCountsStore.docx | Bin 0 -> 37052 bytes .../stores/TweetStatusCountsStore.scala | 29 - .../stores/UserInterestedInReadableStore.docx | Bin 0 -> 39034 bytes .../UserInterestedInReadableStore.scala | 263 --- .../stores/UserKnownForReadableStore.docx | Bin 0 -> 37673 bytes .../stores/UserKnownForReadableStore.scala | 75 - .../simclusters_v2/summingbird/storm/BUILD | 27 - .../summingbird/storm/BUILD.docx | Bin 0 -> 36963 bytes .../summingbird/storm/PersistentTweetJob.docx | Bin 0 -> 38686 bytes .../storm/PersistentTweetJob.scala | 151 -- .../storm/PersistentTweetJobRunner.docx | Bin 0 -> 39565 bytes .../storm/PersistentTweetJobRunner.scala | 227 --- .../summingbird/storm/TweetJob.docx | Bin 0 -> 39006 bytes .../summingbird/storm/TweetJob.scala | 232 --- .../summingbird/storm/TweetJobRunner.docx | Bin 0 -> 39796 bytes .../summingbird/storm/TweetJobRunner.scala | 242 --- .../storm/persistent_tweet_job_deploy.docx | Bin 0 -> 37598 bytes .../storm/persistent_tweet_job_deploy.sh | 77 - .../storm/tweet_alt_job_deploy.docx | Bin 0 -> 37604 bytes .../summingbird/storm/tweet_alt_job_deploy.sh | 78 - .../summingbird/storm/tweet_job_deploy.docx | Bin 0 -> 37581 bytes .../summingbird/storm/tweet_job_deploy.sh | 77 - .../simclusters_v2/tweet_similarity/BUILD | 11 - .../tweet_similarity/BUILD.docx | Bin 0 -> 36807 bytes ...SimilaritySimClustersEmbeddingAdapter.docx | Bin 0 -> 37077 bytes ...imilaritySimClustersEmbeddingAdapter.scala | 37 - .../TweetSimilarityFeatures.docx | Bin 0 -> 37387 bytes .../TweetSimilarityFeatures.scala | 54 - .../BCELabelTransformFromUUADataRecord.docx | Bin 0 -> 37772 bytes .../BCELabelTransformFromUUADataRecord.scala | 68 - .../prediction/common/aggregates/BUILD | 353 ---- .../prediction/common/aggregates/BUILD.docx | Bin 0 -> 38233 bytes .../aggregates/FeatureSelectorConfig.docx | Bin 0 -> 37840 bytes .../aggregates/FeatureSelectorConfig.scala | 121 -- .../prediction/common/aggregates/README.docx | Bin 0 -> 36924 bytes .../prediction/common/aggregates/README.md | 6 - .../RecapUserFeatureAggregation.docx | Bin 0 -> 39003 bytes .../RecapUserFeatureAggregation.scala | 415 ----- .../RectweetUserFeatureAggregation.docx | Bin 0 -> 37265 bytes .../RectweetUserFeatureAggregation.scala | 52 - .../TimelinesAggregationConfig.docx | Bin 0 -> 37767 bytes .../TimelinesAggregationConfig.scala | 80 - .../TimelinesAggregationConfigDetails.docx | Bin 0 -> 40199 bytes .../TimelinesAggregationConfigDetails.scala | 579 ------- .../TimelinesAggregationConfigTrait.docx | Bin 0 -> 37431 bytes .../TimelinesAggregationConfigTrait.scala | 50 - .../TimelinesAggregationKeyValInjections.docx | Bin 0 -> 37447 bytes ...TimelinesAggregationKeyValInjections.scala | 48 - .../TimelinesAggregationSources.docx | Bin 0 -> 37291 bytes .../TimelinesAggregationSources.scala | 45 - .../real_time/AuthorFeaturesAdapter.docx | Bin 0 -> 37683 bytes .../real_time/AuthorFeaturesAdapter.scala | 70 - .../common/aggregates/real_time/BUILD | 199 --- .../common/aggregates/real_time/BUILD.docx | Bin 0 -> 38259 bytes .../common/aggregates/real_time/Event.docx | Bin 0 -> 36773 bytes .../common/aggregates/real_time/Event.scala | 11 - .../real_time/FeatureStoreUtils.docx | Bin 0 -> 37393 bytes .../real_time/FeatureStoreUtils.scala | 53 - .../real_time/LocallyReplicatedStore.docx | Bin 0 -> 37851 bytes .../real_time/LocallyReplicatedStore.scala | 79 - .../real_time/StormAggregateSourceUtils.docx | Bin 0 -> 39164 bytes .../real_time/StormAggregateSourceUtils.scala | 254 --- .../TimelinesOnlineAggregationConfig.docx | Bin 0 -> 37091 bytes .../TimelinesOnlineAggregationConfig.scala | 34 - .../TimelinesOnlineAggregationConfigBase.docx | Bin 0 -> 42658 bytes ...TimelinesOnlineAggregationConfigBase.scala | 1112 ------------- .../TimelinesOnlineAggregationSources.docx | Bin 0 -> 36742 bytes .../TimelinesOnlineAggregationSources.scala | 5 - .../TimelinesRealTimeAggregatesJob.docx | Bin 0 -> 39371 bytes .../TimelinesRealTimeAggregatesJob.scala | 182 --- .../TimelinesStormAggregateSource.docx | Bin 0 -> 38661 bytes .../TimelinesStormAggregateSource.scala | 185 --- .../real_time/TweetFeaturesAdapter.docx | Bin 0 -> 37158 bytes .../real_time/TweetFeaturesAdapter.scala | 35 - .../real_time/TweetFeaturesReadableStore.docx | Bin 0 -> 37368 bytes .../TweetFeaturesReadableStore.scala | 53 - .../aggregates/real_time/TypeSafeRunner.docx | Bin 0 -> 36807 bytes .../aggregates/real_time/TypeSafeRunner.scala | 7 - .../real_time/UserFeaturesAdapter.docx | Bin 0 -> 38074 bytes .../real_time/UserFeaturesAdapter.scala | 108 -- .../real_time/UserFeaturesReadableStore.docx | Bin 0 -> 37250 bytes .../real_time/UserFeaturesReadableStore.scala | 37 - .../timelines/prediction/features/README.docx | Bin 0 -> 36918 bytes .../timelines/prediction/features/README.md | 6 - .../features/client_log_event/BUILD | 11 - .../features/client_log_event/BUILD.docx | Bin 0 -> 36829 bytes .../ClientLogEventDataRecordFeatures.docx | Bin 0 -> 38308 bytes .../ClientLogEventDataRecordFeatures.scala | 169 -- .../prediction/features/common/BUILD | 11 - .../prediction/features/common/BUILD.docx | Bin 0 -> 36828 bytes .../features/common/CombinedFeatures.docx | Bin 0 -> 40350 bytes .../features/common/CombinedFeatures.scala | 536 ------- .../features/common/NonHomeLabelFeatures.docx | Bin 0 -> 37509 bytes .../common/NonHomeLabelFeatures.scala | 97 -- .../common/TimelinesSharedFeatures.docx | Bin 0 -> 44064 bytes .../common/TimelinesSharedFeatures.scala | 759 --------- .../features/engagement_features/BUILD | 12 - .../features/engagement_features/BUILD.docx | Bin 0 -> 36870 bytes .../EngagementFeatures.docx | Bin 0 -> 38821 bytes .../EngagementFeatures.scala | 246 --- .../prediction/features/escherbird/BUILD | 19 - .../prediction/features/escherbird/BUILD.docx | Bin 0 -> 36847 bytes .../escherbird/EscherbirdFeatures.docx | Bin 0 -> 36980 bytes .../escherbird/EscherbirdFeatures.scala | 19 - .../EscherbirdFeaturesConverter.docx | Bin 0 -> 37059 bytes .../EscherbirdFeaturesConverter.scala | 19 - .../features/followsource/BUILD.bazel | 7 - .../features/followsource/BUILD.docx | Bin 0 -> 36751 bytes .../followsource/FollowSourceFeatures.docx | Bin 0 -> 37707 bytes .../followsource/FollowSourceFeatures.scala | 53 - .../timelines/prediction/features/itl/BUILD | 9 - .../prediction/features/itl/BUILD.docx | Bin 0 -> 36780 bytes .../prediction/features/itl/ITLFeatures.docx | Bin 0 -> 41232 bytes .../prediction/features/itl/ITLFeatures.scala | 575 ------- .../prediction/features/list_features/BUILD | 9 - .../features/list_features/BUILD.docx | Bin 0 -> 36780 bytes .../features/list_features/ListFeatures.docx | Bin 0 -> 37050 bytes .../features/list_features/ListFeatures.scala | 24 - .../prediction/features/p_home_latest/BUILD | 9 - .../features/p_home_latest/BUILD.docx | Bin 0 -> 36780 bytes .../p_home_latest/HomeLatestUserFeatures.docx | Bin 0 -> 37287 bytes .../HomeLatestUserFeatures.scala | 49 - .../timelines/prediction/features/ppmi/BUILD | 8 - .../prediction/features/ppmi/BUILD.docx | Bin 0 -> 36751 bytes .../features/ppmi/PpmiFeatures.docx | Bin 0 -> 36778 bytes .../features/ppmi/PpmiFeatures.scala | 7 - .../prediction/features/real_graph/BUILD | 15 - .../prediction/features/real_graph/BUILD.docx | Bin 0 -> 36864 bytes ...alGraphDataRecordFeatureStoreFeatures.docx | Bin 0 -> 38308 bytes ...lGraphDataRecordFeatureStoreFeatures.scala | 232 --- .../RealGraphDataRecordFeatures.docx | Bin 0 -> 39652 bytes .../RealGraphDataRecordFeatures.scala | 534 ------- .../timelines/prediction/features/recap/BUILD | 9 - .../prediction/features/recap/BUILD.docx | Bin 0 -> 36780 bytes .../features/recap/RecapFeatures.docx | Bin 0 -> 44421 bytes .../features/recap/RecapFeatures.scala | 967 ----------- .../features/recap/RecapFeaturesUtils.docx | Bin 0 -> 37105 bytes .../features/recap/RecapFeaturesUtils.scala | 29 - .../prediction/features/request_context/BUILD | 9 - .../features/request_context/BUILD.docx | Bin 0 -> 36780 bytes .../RequestContextFeatures.docx | Bin 0 -> 37639 bytes .../RequestContextFeatures.scala | 57 - .../prediction/features/simcluster/BUILD | 13 - .../prediction/features/simcluster/BUILD.docx | Bin 0 -> 36877 bytes .../simcluster/SimclusterFeatures.docx | Bin 0 -> 37648 bytes .../simcluster/SimclusterFeatures.scala | 61 - .../simcluster/SimclusterTweetFeatures.docx | Bin 0 -> 38645 bytes .../simcluster/SimclusterTweetFeatures.scala | 150 -- .../simcluster/SimclustersScoresFeatures.docx | Bin 0 -> 37246 bytes .../SimclustersScoresFeatures.scala | 43 - .../prediction/features/socialproof/BUILD | 15 - .../features/socialproof/BUILD.docx | Bin 0 -> 36864 bytes .../socialproof/SocialProofFeatures.docx | Bin 0 -> 38222 bytes .../socialproof/SocialProofFeatures.scala | 172 -- .../prediction/features/time_features/BUILD | 10 - .../features/time_features/BUILD.docx | Bin 0 -> 36803 bytes .../time_features/TimeDataRecordFeatures.docx | Bin 0 -> 37991 bytes .../TimeDataRecordFeatures.scala | 111 -- .../features/two_hop_features/BUILD | 10 - .../features/two_hop_features/BUILD.docx | Bin 0 -> 36821 bytes .../two_hop_features/TwoHopFeatures.docx | Bin 0 -> 37506 bytes .../two_hop_features/TwoHopFeatures.scala | 93 -- .../TwoHopFeaturesConfig.docx | Bin 0 -> 37097 bytes .../TwoHopFeaturesConfig.scala | 30 - .../prediction/features/user_health/BUILD | 10 - .../features/user_health/BUILD.docx | Bin 0 -> 36814 bytes .../user_health/UserHealthFeatures.docx | Bin 0 -> 37097 bytes .../user_health/UserHealthFeatures.scala | 23 - .../com/twitter/interaction_graph/BUILD | 15 - .../com/twitter/interaction_graph/BUILD.docx | Bin 0 -> 36822 bytes .../interaction_graph/interaction_graph.docx | Bin 0 -> 38062 bytes .../interaction_graph.thrift | 98 -- src/thrift/com/twitter/recos/recos.docx | Bin 0 -> 38762 bytes src/thrift/com/twitter/recos/recos.thrift | 176 -- .../com/twitter/recos/recos_common.docx | Bin 0 -> 37218 bytes .../com/twitter/recos/recos_common.thrift | 54 - .../com/twitter/recos/recos_injector.docx | Bin 0 -> 36940 bytes .../com/twitter/recos/recos_injector.thrift | 22 - .../recos/user_tweet_entity_graph/BUILD | 19 - .../recos/user_tweet_entity_graph/BUILD.docx | Bin 0 -> 36897 bytes .../recos/user_tweet_entity_graph/CONFIG.docx | Bin 0 -> 36679 bytes .../recos/user_tweet_entity_graph/CONFIG.ini | 7 - .../user_tweet_entity_graph.docx | Bin 0 -> 39063 bytes .../user_tweet_entity_graph.thrift | 187 --- .../com/twitter/recos/user_tweet_graph/BUILD | 22 - .../twitter/recos/user_tweet_graph/BUILD.docx | Bin 0 -> 36902 bytes .../recos/user_tweet_graph/CONFIG.docx | Bin 0 -> 36679 bytes .../twitter/recos/user_tweet_graph/CONFIG.ini | 7 - .../user_tweet_graph/user_tweet_graph.docx | Bin 0 -> 38779 bytes .../user_tweet_graph/user_tweet_graph.thrift | 172 -- .../com/twitter/recos/user_user_graph/BUILD | 19 - .../twitter/recos/user_user_graph/BUILD.docx | Bin 0 -> 36889 bytes .../twitter/recos/user_user_graph/CONFIG.docx | Bin 0 -> 36679 bytes .../twitter/recos/user_user_graph/CONFIG.ini | 7 - .../user_user_graph/user_user_graph.docx | Bin 0 -> 37507 bytes .../user_user_graph/user_user_graph.thrift | 45 - .../com/twitter/recos/user_video_graph/BUILD | 22 - .../twitter/recos/user_video_graph/BUILD.docx | Bin 0 -> 36903 bytes .../recos/user_video_graph/CONFIG.docx | Bin 0 -> 36679 bytes .../twitter/recos/user_video_graph/CONFIG.ini | 7 - .../user_video_graph/user_video_graph.docx | Bin 0 -> 37445 bytes .../user_video_graph/user_video_graph.thrift | 64 - .../search/common/ranking/ranking.docx | Bin 0 -> 42444 bytes .../search/common/ranking/ranking.thrift | 366 ----- .../search/earlybird/thrift/earlybird.docx | Bin 0 -> 56861 bytes .../search/earlybird/thrift/earlybird.thrift | 1416 ----------------- src/thrift/com/twitter/simclusters_v2/BUILD | 23 - .../com/twitter/simclusters_v2/BUILD.docx | Bin 0 -> 36882 bytes .../com/twitter/simclusters_v2/abuse.docx | Bin 0 -> 37613 bytes .../com/twitter/simclusters_v2/abuse.thrift | 53 - .../twitter/simclusters_v2/clustering.docx | Bin 0 -> 36980 bytes .../twitter/simclusters_v2/clustering.thrift | 18 - .../com/twitter/simclusters_v2/embedding.docx | Bin 0 -> 37778 bytes .../twitter/simclusters_v2/embedding.thrift | 137 -- .../com/twitter/simclusters_v2/entity.docx | Bin 0 -> 37142 bytes .../com/twitter/simclusters_v2/entity.thrift | 51 - .../twitter/simclusters_v2/evaluation.docx | Bin 0 -> 37354 bytes .../twitter/simclusters_v2/evaluation.thrift | 65 - .../com/twitter/simclusters_v2/graph.docx | Bin 0 -> 37426 bytes .../com/twitter/simclusters_v2/graph.thrift | 61 - .../twitter/simclusters_v2/identifier.docx | Bin 0 -> 39099 bytes .../twitter/simclusters_v2/identifier.thrift | 205 --- .../simclusters_v2/inferred_entities.docx | Bin 0 -> 37219 bytes .../simclusters_v2/inferred_entities.thrift | 38 - .../com/twitter/simclusters_v2/interests.docx | Bin 0 -> 39525 bytes .../twitter/simclusters_v2/interests.thrift | 259 --- .../simclusters_v2/multi_type_graph.docx | Bin 0 -> 37683 bytes .../simclusters_v2/multi_type_graph.thrift | 110 -- .../simclusters_v2/offline_job_internal.docx | Bin 0 -> 37316 bytes .../offline_job_internal.thrift | 63 - .../twitter/simclusters_v2/online_store.docx | Bin 0 -> 37588 bytes .../simclusters_v2/online_store.thrift | 92 -- .../simclusters_v2/online_store_internal.docx | Bin 0 -> 37111 bytes .../online_store_internal.thrift | 30 - .../com/twitter/simclusters_v2/score.docx | Bin 0 -> 37530 bytes .../com/twitter/simclusters_v2/score.thrift | 71 - .../simclusters_v2/simclusters_presto.docx | Bin 0 -> 37248 bytes .../simclusters_v2/simclusters_presto.thrift | 59 - 400 files changed, 22081 deletions(-) create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/sql/user_video_tweet_fav_engagement_generation.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/sql/user_video_tweet_fav_engagement_generation.sql delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/Config.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/Config.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/README create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/README.docx create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNFromBQ.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNFromBQ.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNJob.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNJob.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-0-el-15-tweets-ann-batch-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-0-el-15-tweets-ann-batch-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-2-el-15-tweets-ann-batch-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-2-el-15-tweets-ann-batch-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-2-el-50-tweets-ann-batch-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-2-el-50-tweets-ann-batch-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-adhoc-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-adhoc-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-batch-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-batch-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-adhoc-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-adhoc-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-batch-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-batch-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-adhoc-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-adhoc-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-batch-job.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-batch-job.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/common/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/scio/common/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/scio/common/ExternalDataSources.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/common/ExternalDataSources.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioApp.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioApp.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioBaseApp.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioBaseApp.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/Config.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/Config.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/README.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/README.md delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-batch.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-batch.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/MultiTypeGraphUtil.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/MultiTypeGraphUtil.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/Config.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/Config.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioApp.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioApp.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioBaseApp.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioBaseApp.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioApp.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioApp.scala create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioBaseApp.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioBaseApp.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-adhoc.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-adhoc.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-batch.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-batch.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-adhoc.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-adhoc.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.d6w create mode 100644 src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.docx create mode 100644 src/scala/com/twitter/simclusters_v2/score/AggregatedScoreStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/score/AggregatedScoreStore.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/score/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/score/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/score/Score.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/score/Score.scala create mode 100644 src/scala/com/twitter/simclusters_v2/score/ScoreFacadeStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/score/ScoreFacadeStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/score/ScoreId.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/score/ScoreId.scala create mode 100644 src/scala/com/twitter/simclusters_v2/score/ScoreStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/score/ScoreStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/score/SimClustersEmbeddingPairScoreStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/score/SimClustersEmbeddingPairScoreStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/score/WeightedSumAggregatedScoreStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/score/WeightedSumAggregatedScoreStore.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/stores/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/stores/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/stores/LanguageFilteredLocaleEntityEmbeddingStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/stores/LanguageFilteredLocaleEntityEmbeddingStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/stores/MultiTypeGraphStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/stores/MultiTypeGraphStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/stores/SimClustersEmbeddingStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/stores/SimClustersEmbeddingStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/stores/SimClustersMultiEmbeddingStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/stores/SimClustersMultiEmbeddingStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/stores/TopicTopProducersStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/stores/TopicTopProducersStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/stores/WtfMbcgStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/stores/WtfMbcgStore.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/README.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/README.md delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/ClientConfigs.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/ClientConfigs.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/Configs.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/Configs.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/EntityUtil.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/EntityUtil.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/Implicits.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/Implicits.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/ModelVersionProfile.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/ModelVersionProfile.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/Monoids.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/Monoids.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersEmbeddingWithMetadataMonoid.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersEmbeddingWithMetadataMonoid.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersHashUtil.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersHashUtil.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersInterestedInUtil.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersInterestedInUtil.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersProfile.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersProfile.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/StatsUtil.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/StatsUtil.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SummerWithSumValues.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/SummerWithSumValues.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/ThriftDecayedValueMonoid.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/ThriftDecayedValueMonoid.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/TweetEntityExtractor.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/common/TweetEntityExtractor.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ApeTopicEmbeddingStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ApeTopicEmbeddingStore.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ClusterDetailsReadableStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ClusterDetailsReadableStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/EntityClusterScoreReadableStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/EntityClusterScoreReadableStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ManhattanFromStratoStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ManhattanFromStratoStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/PersistentTweetEmbeddingStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/PersistentTweetEmbeddingStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ProducerClusterEmbeddingReadableStores.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/ProducerClusterEmbeddingReadableStores.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/SemanticCoreEntityEmbeddingStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/SemanticCoreEntityEmbeddingStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/SimClustersManhattanReadableStoreForReadWriteDataset.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/SimClustersManhattanReadableStoreForReadWriteDataset.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TfgTopicEmbeddingsStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TfgTopicEmbeddingsStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForEntityReadableStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForEntityReadableStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForTweetReadableStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForTweetReadableStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKTweetsForClusterReadableStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKTweetsForClusterReadableStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TweetStatusCountsStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/TweetStatusCountsStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/UserInterestedInReadableStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/UserInterestedInReadableStore.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/UserKnownForReadableStore.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/stores/UserKnownForReadableStore.scala delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJob.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJob.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJobRunner.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJobRunner.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJob.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJob.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJobRunner.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJobRunner.scala create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/persistent_tweet_job_deploy.docx delete mode 100755 src/scala/com/twitter/simclusters_v2/summingbird/storm/persistent_tweet_job_deploy.sh create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_alt_job_deploy.docx delete mode 100755 src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_alt_job_deploy.sh create mode 100644 src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_job_deploy.docx delete mode 100755 src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_job_deploy.sh delete mode 100644 src/scala/com/twitter/simclusters_v2/tweet_similarity/BUILD create mode 100644 src/scala/com/twitter/simclusters_v2/tweet_similarity/BUILD.docx create mode 100644 src/scala/com/twitter/simclusters_v2/tweet_similarity/ModelBasedTweetSimilaritySimClustersEmbeddingAdapter.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/tweet_similarity/ModelBasedTweetSimilaritySimClustersEmbeddingAdapter.scala create mode 100644 src/scala/com/twitter/simclusters_v2/tweet_similarity/TweetSimilarityFeatures.docx delete mode 100644 src/scala/com/twitter/simclusters_v2/tweet_similarity/TweetSimilarityFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/BCELabelTransformFromUUADataRecord.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/BCELabelTransformFromUUADataRecord.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/FeatureSelectorConfig.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/FeatureSelectorConfig.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/README.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/README.md create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/RecapUserFeatureAggregation.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/RecapUserFeatureAggregation.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/RectweetUserFeatureAggregation.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/RectweetUserFeatureAggregation.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfig.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfig.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigDetails.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigDetails.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigTrait.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigTrait.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationKeyValInjections.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationKeyValInjections.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationSources.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationSources.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/AuthorFeaturesAdapter.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/AuthorFeaturesAdapter.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/Event.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/Event.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/FeatureStoreUtils.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/FeatureStoreUtils.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/LocallyReplicatedStore.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/LocallyReplicatedStore.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/StormAggregateSourceUtils.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/StormAggregateSourceUtils.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationConfig.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationConfig.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationConfigBase.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationConfigBase.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationSources.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationSources.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesRealTimeAggregatesJob.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesRealTimeAggregatesJob.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesStormAggregateSource.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesStormAggregateSource.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TweetFeaturesAdapter.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TweetFeaturesAdapter.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TweetFeaturesReadableStore.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TweetFeaturesReadableStore.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TypeSafeRunner.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TypeSafeRunner.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesAdapter.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesAdapter.scala create mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesReadableStore.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesReadableStore.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/README.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/README.md delete mode 100644 src/scala/com/twitter/timelines/prediction/features/client_log_event/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/client_log_event/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/client_log_event/ClientLogEventDataRecordFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/client_log_event/ClientLogEventDataRecordFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/common/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/common/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/common/CombinedFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/common/CombinedFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/common/NonHomeLabelFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/common/NonHomeLabelFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/common/TimelinesSharedFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/common/TimelinesSharedFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/engagement_features/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/engagement_features/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/engagement_features/EngagementFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/engagement_features/EngagementFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/escherbird/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/escherbird/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeaturesConverter.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeaturesConverter.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/followsource/BUILD.bazel create mode 100644 src/scala/com/twitter/timelines/prediction/features/followsource/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/followsource/FollowSourceFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/followsource/FollowSourceFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/itl/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/itl/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/itl/ITLFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/itl/ITLFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/list_features/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/list_features/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/list_features/ListFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/list_features/ListFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/p_home_latest/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/p_home_latest/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/p_home_latest/HomeLatestUserFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/p_home_latest/HomeLatestUserFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/ppmi/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/ppmi/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/ppmi/PpmiFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/ppmi/PpmiFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/real_graph/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/real_graph/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatureStoreFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatureStoreFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/recap/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/recap/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/recap/RecapFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/recap/RecapFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/recap/RecapFeaturesUtils.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/recap/RecapFeaturesUtils.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/request_context/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/request_context/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/request_context/RequestContextFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/request_context/RequestContextFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterTweetFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterTweetFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/SimclustersScoresFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/simcluster/SimclustersScoresFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/socialproof/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/socialproof/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/socialproof/SocialProofFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/socialproof/SocialProofFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/time_features/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/time_features/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/time_features/TimeDataRecordFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/time_features/TimeDataRecordFeatures.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/two_hop_features/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/two_hop_features/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeatures.scala create mode 100644 src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeaturesConfig.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeaturesConfig.scala delete mode 100644 src/scala/com/twitter/timelines/prediction/features/user_health/BUILD create mode 100644 src/scala/com/twitter/timelines/prediction/features/user_health/BUILD.docx create mode 100644 src/scala/com/twitter/timelines/prediction/features/user_health/UserHealthFeatures.docx delete mode 100644 src/scala/com/twitter/timelines/prediction/features/user_health/UserHealthFeatures.scala delete mode 100644 src/thrift/com/twitter/interaction_graph/BUILD create mode 100644 src/thrift/com/twitter/interaction_graph/BUILD.docx create mode 100644 src/thrift/com/twitter/interaction_graph/interaction_graph.docx delete mode 100644 src/thrift/com/twitter/interaction_graph/interaction_graph.thrift create mode 100644 src/thrift/com/twitter/recos/recos.docx delete mode 100644 src/thrift/com/twitter/recos/recos.thrift create mode 100644 src/thrift/com/twitter/recos/recos_common.docx delete mode 100644 src/thrift/com/twitter/recos/recos_common.thrift create mode 100644 src/thrift/com/twitter/recos/recos_injector.docx delete mode 100644 src/thrift/com/twitter/recos/recos_injector.thrift delete mode 100644 src/thrift/com/twitter/recos/user_tweet_entity_graph/BUILD create mode 100644 src/thrift/com/twitter/recos/user_tweet_entity_graph/BUILD.docx create mode 100644 src/thrift/com/twitter/recos/user_tweet_entity_graph/CONFIG.docx delete mode 100644 src/thrift/com/twitter/recos/user_tweet_entity_graph/CONFIG.ini create mode 100644 src/thrift/com/twitter/recos/user_tweet_entity_graph/user_tweet_entity_graph.docx delete mode 100644 src/thrift/com/twitter/recos/user_tweet_entity_graph/user_tweet_entity_graph.thrift delete mode 100644 src/thrift/com/twitter/recos/user_tweet_graph/BUILD create mode 100644 src/thrift/com/twitter/recos/user_tweet_graph/BUILD.docx create mode 100644 src/thrift/com/twitter/recos/user_tweet_graph/CONFIG.docx delete mode 100644 src/thrift/com/twitter/recos/user_tweet_graph/CONFIG.ini create mode 100644 src/thrift/com/twitter/recos/user_tweet_graph/user_tweet_graph.docx delete mode 100644 src/thrift/com/twitter/recos/user_tweet_graph/user_tweet_graph.thrift delete mode 100644 src/thrift/com/twitter/recos/user_user_graph/BUILD create mode 100644 src/thrift/com/twitter/recos/user_user_graph/BUILD.docx create mode 100644 src/thrift/com/twitter/recos/user_user_graph/CONFIG.docx delete mode 100644 src/thrift/com/twitter/recos/user_user_graph/CONFIG.ini create mode 100644 src/thrift/com/twitter/recos/user_user_graph/user_user_graph.docx delete mode 100644 src/thrift/com/twitter/recos/user_user_graph/user_user_graph.thrift delete mode 100644 src/thrift/com/twitter/recos/user_video_graph/BUILD create mode 100644 src/thrift/com/twitter/recos/user_video_graph/BUILD.docx create mode 100644 src/thrift/com/twitter/recos/user_video_graph/CONFIG.docx delete mode 100644 src/thrift/com/twitter/recos/user_video_graph/CONFIG.ini create mode 100644 src/thrift/com/twitter/recos/user_video_graph/user_video_graph.docx delete mode 100644 src/thrift/com/twitter/recos/user_video_graph/user_video_graph.thrift create mode 100644 src/thrift/com/twitter/search/common/ranking/ranking.docx delete mode 100644 src/thrift/com/twitter/search/common/ranking/ranking.thrift create mode 100644 src/thrift/com/twitter/search/earlybird/thrift/earlybird.docx delete mode 100644 src/thrift/com/twitter/search/earlybird/thrift/earlybird.thrift delete mode 100644 src/thrift/com/twitter/simclusters_v2/BUILD create mode 100644 src/thrift/com/twitter/simclusters_v2/BUILD.docx create mode 100644 src/thrift/com/twitter/simclusters_v2/abuse.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/abuse.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/clustering.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/clustering.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/embedding.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/embedding.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/entity.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/entity.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/evaluation.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/evaluation.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/graph.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/graph.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/identifier.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/identifier.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/inferred_entities.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/inferred_entities.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/interests.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/interests.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/multi_type_graph.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/multi_type_graph.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/offline_job_internal.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/offline_job_internal.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/online_store.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/online_store.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/online_store_internal.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/online_store_internal.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/score.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/score.thrift create mode 100644 src/thrift/com/twitter/simclusters_v2/simclusters_presto.docx delete mode 100644 src/thrift/com/twitter/simclusters_v2/simclusters_presto.thrift diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/sql/user_video_tweet_fav_engagement_generation.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/sql/user_video_tweet_fav_engagement_generation.docx new file mode 100644 index 0000000000000000000000000000000000000000..fc15d94911ecf684a657074e9b4105018ec95c6c GIT binary patch literal 37531 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
    _pDfMTw1Fw6hR)Jrs*X1b(NffbdK!}hM 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 iqqheU`i(k}vKVUXFu= DATE(vars.start_date) AND DATE(dateHour) <= DATE(vars.end_date)) - AND eventMetadata.sourceTimestampMs >= UNIX_MILLIS(vars.start_date) - AND eventMetadata.sourceTimestampMs <= UNIX_MILLIS(vars.end_date) - AND (actionType IN ({CONTRIBUTING_ACTION_TYPES_STR}) - OR actionType IN ({UNDO_ACTION_TYPES_STR})) - ), - - -- Get video tweet ids - video_tweet_ids AS ( - WITH vars AS ( - SELECT - TIMESTAMP("{START_TIME}") AS start_date, - TIMESTAMP("{END_TIME}") AS end_date - ), - - -- Get raw user-tweet interaction events from UUA - video_view_engagements AS ( - SELECT item.tweetInfo.actionTweetId AS tweetId - FROM `twttr-bql-unified-prod.unified_user_actions_engagements.streaming_unified_user_actions_engagements`, vars - WHERE (DATE(dateHour) >= DATE(vars.start_date) AND DATE(dateHour) <= DATE(vars.end_date)) - AND eventMetadata.sourceTimestampMs >= UNIX_MILLIS(start_date) - AND eventMetadata.sourceTimestampMs <= UNIX_MILLIS(end_date) - AND (actionType IN ("ClientTweetVideoPlayback50") - OR actionType IN ("ClientTweetVideoPlayback95")) - ) - - SELECT DISTINCT(tweetId) - FROM video_view_engagements - ), - - -- Join video tweet ids - video_tweets_engagements AS ( - SELECT raw_engagements.* - FROM raw_engagements JOIN video_tweet_ids USING(tweetId) - ), - - -- Group by userId and tweetId - user_tweet_engagement_pairs AS ( - SELECT userId, tweetId, ARRAY_AGG(STRUCT(doOrUndo, tsMillis) ORDER BY tsMillis DESC LIMIT 1) AS details, COUNT(*) AS cnt - FROM video_tweets_engagements - GROUP BY userId, tweetId - ) - --- Remove undo events -SELECT userId, tweetId, CAST(dt.tsMillis AS FLOAT64) AS tsMillis -FROM user_tweet_engagement_pairs, vars -CROSS JOIN UNNEST(details) AS dt -WHERE dt.doOrUndo = 1 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/BUILD b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/BUILD deleted file mode 100644 index 43135fdf9..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/BUILD +++ /dev/null @@ -1,110 +0,0 @@ -scala_library( - name = "bq_generation", - sources = [ - "**/*.scala", - ], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "beam-internal/src/main/scala/com/twitter/beam/io/dal", - "beam-internal/src/main/scala/com/twitter/scio_internal/job", - "beam-internal/src/main/scala/com/twitter/scio_internal/runner/dataflow", - "src/scala/com/twitter/simclusters_v2/hdfs_sources:offline_tweet_recommendations_from_interested_in_20M_145K_2020-scala", - "src/scala/com/twitter/simclusters_v2/hdfs_sources:offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_0_EL_15-scala", - "src/scala/com/twitter/simclusters_v2/hdfs_sources:offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_2_EL_15-scala", - "src/scala/com/twitter/simclusters_v2/hdfs_sources:offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_2_EL_50-scala", - "src/scala/com/twitter/simclusters_v2/hdfs_sources:offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_8_EL_50-scala", - "src/scala/com/twitter/simclusters_v2/hdfs_sources:offline_tweet_recommendations_from_mts_consumer_embeddings-scala", - "src/scala/com/twitter/simclusters_v2/scio/bq_generation/common", - "src/scala/com/twitter/simclusters_v2/scio/bq_generation/sql", - "src/scala/com/twitter/wtf/beam/bq_embedding_export:bq_embedding_export_lib", - "tcdc/bq_blaster/src/main/scala/com/twitter/tcdc/bqblaster/beam", - ], -) - -jvm_binary( - name = "iikf-tweets-ann-adhoc-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.IIKF2020TweetsANNBQAdhocJob", - platform = "java8", - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "iikf-hl-8-el-50-tweets-ann-adhoc-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.IIKF2020Hl8El50TweetsANNBQAdhocJob", - platform = "java8", - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "iikf-tweets-ann-batch-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.IIKF2020TweetsANNBQBatchJob", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "iikf-hl-0-el-15-tweets-ann-batch-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.IIKF2020Hl0El15TweetsANNBQBatchJob", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "iikf-hl-2-el-15-tweets-ann-batch-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.IIKF2020Hl2El15TweetsANNBQBatchJob", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "iikf-hl-2-el-50-tweets-ann-batch-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.IIKF2020Hl2El50TweetsANNBQBatchJob", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "iikf-hl-8-el-50-tweets-ann-batch-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.IIKF2020Hl8El50TweetsANNBQBatchJob", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "mts-consumer-embeddings-tweets-ann-adhoc-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.MTSConsumerEmbeddingsTweetsANNBQAdhocJob", - platform = "java8", - dependencies = [ - ":bq_generation", - ], -) - -jvm_binary( - name = "mts-consumer-embeddings-tweets-ann-batch-job", - main = "com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.MTSConsumerEmbeddingsTweetsANNBQBatchJob", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":bq_generation", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/BUILD.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..6592db6933b7bfe75a32bfb02a3167017b4591b3 GIT binary patch literal 37261 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 D%TJ%U literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/Config.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/Config.docx new file mode 100644 index 0000000000000000000000000000000000000000..083f5a2c407f40419bf61c5080c7a6f12f2252ba GIT binary patch literal 37064 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 UvjTGvC|3zGBm%R?*&YxN05b|}3jhEB literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNFromBQ.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNFromBQ.docx new file mode 100644 index 0000000000000000000000000000000000000000..002b8808ee3fb342fdec11bbe26df2ce07fb06a1 GIT binary patch literal 38274 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 Ps)PVL&^+LjZ+HI!p=gkm literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNFromBQ.scala b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNFromBQ.scala deleted file mode 100644 index 23663ab9a..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNFromBQ.scala +++ /dev/null @@ -1,120 +0,0 @@ -package com.twitter.simclusters_v2.scio.bq_generation -package tweets_ann - -import com.spotify.scio.ScioContext -import com.spotify.scio.values.SCollection -import com.twitter.simclusters_v2.thriftscala.CandidateTweet -import com.twitter.wtf.beam.bq_embedding_export.BQQueryUtils -import org.apache.avro.generic.GenericData -import org.apache.avro.generic.GenericRecord -import org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO -import org.apache.beam.sdk.io.gcp.bigquery.SchemaAndRecord -import org.apache.beam.sdk.transforms.SerializableFunction -import org.joda.time.DateTime -import scala.collection.mutable.ListBuffer - -object TweetsANNFromBQ { - // Default ANN config variables - val topNClustersPerSourceEmbedding = Config.SimClustersANNTopNClustersPerSourceEmbedding - val topMTweetsPerCluster = Config.SimClustersANNTopMTweetsPerCluster - val topKTweetsPerUserRequest = Config.SimClustersANNTopKTweetsPerUserRequest - - // SQL file paths - val tweetsANNSQLPath = - s"/com/twitter/simclusters_v2/scio/bq_generation/sql/tweets_ann.sql" - val tweetsEmbeddingGenerationSQLPath = - s"/com/twitter/simclusters_v2/scio/bq_generation/sql/tweet_embeddings_generation.sql" - - // Function that parses the GenericRecord results we read from BQ - val parseUserToTweetRecommendationsFunc = - new SerializableFunction[SchemaAndRecord, UserToTweetRecommendations] { - override def apply(record: SchemaAndRecord): UserToTweetRecommendations = { - val genericRecord: GenericRecord = record.getRecord() - UserToTweetRecommendations( - userId = genericRecord.get("userId").toString.toLong, - tweetCandidates = parseTweetIdColumn(genericRecord, "tweets"), - ) - } - } - - // Parse tweetId candidates column - def parseTweetIdColumn( - genericRecord: GenericRecord, - columnName: String - ): List[CandidateTweet] = { - val tweetIds: GenericData.Array[GenericRecord] = - genericRecord.get(columnName).asInstanceOf[GenericData.Array[GenericRecord]] - val results: ListBuffer[CandidateTweet] = new ListBuffer[CandidateTweet]() - tweetIds.forEach((sc: GenericRecord) => { - results += CandidateTweet( - tweetId = sc.get("tweetId").toString.toLong, - score = Some(sc.get("logCosineSimilarityScore").toString.toDouble) - ) - }) - results.toList - } - - def getTweetEmbeddingsSQL( - queryDate: DateTime, - consumerEmbeddingsSQL: String, - tweetEmbeddingsSQLPath: String, - tweetEmbeddingsHalfLife: Int, - tweetEmbeddingsLength: Int - ): String = { - // We read one day of fav events to construct our tweet embeddings - val templateVariables = - Map( - "CONSUMER_EMBEDDINGS_SQL" -> consumerEmbeddingsSQL, - "QUERY_DATE" -> queryDate.toString(), - "START_TIME" -> queryDate.minusDays(1).toString(), - "END_TIME" -> queryDate.toString(), - "MIN_SCORE_THRESHOLD" -> 0.0.toString, - "HALF_LIFE" -> tweetEmbeddingsHalfLife.toString, - "TWEET_EMBEDDING_LENGTH" -> tweetEmbeddingsLength.toString, - "NO_OLDER_TWEETS_THAN_DATE" -> queryDate.minusDays(1).toString(), - ) - BQQueryUtils.getBQQueryFromSqlFile(tweetEmbeddingsSQLPath, templateVariables) - } - - def getTweetRecommendationsBQ( - sc: ScioContext, - queryTimestamp: DateTime, - consumerEmbeddingsSQL: String, - tweetEmbeddingsHalfLife: Int, - tweetEmbeddingsLength: Int - ): SCollection[UserToTweetRecommendations] = { - // Get the tweet embeddings SQL string based on the provided consumerEmbeddingsSQL - val tweetEmbeddingsSQL = - getTweetEmbeddingsSQL( - queryTimestamp, - consumerEmbeddingsSQL, - tweetsEmbeddingGenerationSQLPath, - tweetEmbeddingsHalfLife, - tweetEmbeddingsLength - ) - - // Define template variables which we would like to be replaced in the corresponding sql file - val templateVariables = - Map( - "CONSUMER_EMBEDDINGS_SQL" -> consumerEmbeddingsSQL, - "TWEET_EMBEDDINGS_SQL" -> tweetEmbeddingsSQL, - "TOP_N_CLUSTER_PER_SOURCE_EMBEDDING" -> topNClustersPerSourceEmbedding.toString, - "TOP_M_TWEETS_PER_CLUSTER" -> topMTweetsPerCluster.toString, - "TOP_K_TWEETS_PER_USER_REQUEST" -> topKTweetsPerUserRequest.toString - ) - val query = BQQueryUtils.getBQQueryFromSqlFile(tweetsANNSQLPath, templateVariables) - - // Run SimClusters ANN on BQ and parse the results - sc.customInput( - s"SimClusters BQ ANN", - BigQueryIO - .read(parseUserToTweetRecommendationsFunc) - .fromQuery(query) - .usingStandardSql() - ) - } - - case class UserToTweetRecommendations( - userId: Long, - tweetCandidates: List[CandidateTweet]) -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNJob.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNJob.docx new file mode 100644 index 0000000000000000000000000000000000000000..39d74ccebada5e60ffc19c6e5b1e5b17d0722f92 GIT binary patch literal 39318 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 U9+*KtW)&yM9+)17(|(-&56YOFH2?qr literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNJob.scala b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNJob.scala deleted file mode 100644 index 81a89f3ff..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/TweetsANNJob.scala +++ /dev/null @@ -1,297 +0,0 @@ -package com.twitter.simclusters_v2.scio.bq_generation -package tweets_ann - -import com.google.api.services.bigquery.model.TimePartitioning -import com.spotify.scio.ScioContext -import com.spotify.scio.coders.Coder -import com.twitter.beam.io.dal.DAL -import com.twitter.beam.io.fs.multiformat.PathLayout -import com.twitter.beam.job.DateRangeOptions -import com.twitter.conversions.DurationOps.richDurationFromInt -import com.twitter.dal.client.dataset.KeyValDALDataset -import com.twitter.scalding_internal.multiformat.format.keyval.KeyVal -import com.twitter.scio_internal.coders.ThriftStructLazyBinaryScroogeCoder -import com.twitter.scio_internal.job.ScioBeamJob -import com.twitter.scrooge.ThriftStruct -import com.twitter.simclusters_v2.scio.bq_generation.common.BQGenerationUtil.getMTSConsumerEmbeddingsFav90P20MSQL -import com.twitter.simclusters_v2.scio.bq_generation.common.BQGenerationUtil.getInterestedIn2020SQL -import com.twitter.simclusters_v2.scio.bq_generation.tweets_ann.TweetsANNFromBQ.getTweetRecommendationsBQ -import com.twitter.simclusters_v2.hdfs_sources.OfflineTweetRecommendationsFromInterestedIn20M145K2020ScalaDataset -import com.twitter.simclusters_v2.hdfs_sources.OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl0El15ScalaDataset -import com.twitter.simclusters_v2.hdfs_sources.OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl2El15ScalaDataset -import com.twitter.simclusters_v2.hdfs_sources.OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl2El50ScalaDataset -import com.twitter.simclusters_v2.hdfs_sources.OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl8El50ScalaDataset -import com.twitter.simclusters_v2.hdfs_sources.OfflineTweetRecommendationsFromMtsConsumerEmbeddingsScalaDataset -import com.twitter.simclusters_v2.scio.bq_generation.common.BQTableDetails -import com.twitter.simclusters_v2.thriftscala.CandidateTweets -import com.twitter.simclusters_v2.thriftscala.CandidateTweetsList -import com.twitter.tcdc.bqblaster.beam.syntax.BigQueryIOHelpers -import com.twitter.tcdc.bqblaster.beam.BQBlasterIO.AvroConverter -import com.twitter.tcdc.bqblaster.core.avro.TypedProjection -import com.twitter.tcdc.bqblaster.core.transform.RootTransform -import java.time.Instant -import org.apache.beam.sdk.io.gcp.bigquery.BigQueryIO -import org.joda.time.DateTime - -trait TweetsANNJob extends ScioBeamJob[DateRangeOptions] { - // Configs to set for different type of embeddings and jobs - val isAdhoc: Boolean - val getConsumerEmbeddingsSQLFunc: (DateTime, Int) => String - val outputTable: BQTableDetails - val keyValDatasetOutputPath: String - val tweetRecommentationsSnapshotDataset: KeyValDALDataset[KeyVal[Long, CandidateTweetsList]] - val tweetEmbeddingsGenerationHalfLife: Int = Config.SimClustersTweetEmbeddingsGenerationHalfLife - val tweetEmbeddingsGenerationEmbeddingLength: Int = - Config.SimClustersTweetEmbeddingsGenerationEmbeddingLength - - // Base configs - val projectId = "twttr-recos-ml-prod" - val environment: DAL.Env = if (isAdhoc) DAL.Environment.Dev else DAL.Environment.Prod - - override implicit def scroogeCoder[T <: ThriftStruct: Manifest]: Coder[T] = - ThriftStructLazyBinaryScroogeCoder.scroogeCoder - - override def configurePipeline(sc: ScioContext, opts: DateRangeOptions): Unit = { - // The time when the job is scheduled - val queryTimestamp = opts.interval.getEnd - - // Read consumer embeddings SQL - val consumerEmbeddingsSQL = getConsumerEmbeddingsSQLFunc(queryTimestamp, 14) - - // Generate tweet embeddings and tweet ANN results - val tweetRecommendations = - getTweetRecommendationsBQ( - sc, - queryTimestamp, - consumerEmbeddingsSQL, - tweetEmbeddingsGenerationHalfLife, - tweetEmbeddingsGenerationEmbeddingLength - ) - - // Setup BQ writer - val ingestionTime = opts.getDate().value.getEnd.toDate - val bqFieldsTransform = RootTransform - .Builder() - .withPrependedFields("ingestionTime" -> TypedProjection.fromConstant(ingestionTime)) - val timePartitioning = new TimePartitioning() - .setType("HOUR").setField("ingestionTime").setExpirationMs(3.days.inMilliseconds) - val bqWriter = BigQueryIO - .write[CandidateTweets] - .to(outputTable.toString) - .withExtendedErrorInfo() - .withTimePartitioning(timePartitioning) - .withLoadJobProjectId(projectId) - .withThriftSupport(bqFieldsTransform.build(), AvroConverter.Legacy) - .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED) - .withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND) - - // Save Tweet ANN results to BQ - tweetRecommendations - .map { userToTweetRecommendations => - { - CandidateTweets( - targetUserId = userToTweetRecommendations.userId, - recommendedTweets = userToTweetRecommendations.tweetCandidates) - } - } - .saveAsCustomOutput(s"WriteToBQTable - ${outputTable}", bqWriter) - - // Save Tweet ANN results as KeyValSnapshotDataset - tweetRecommendations - .map { userToTweetRecommendations => - KeyVal( - userToTweetRecommendations.userId, - CandidateTweetsList(userToTweetRecommendations.tweetCandidates)) - }.saveAsCustomOutput( - name = "WriteTweetRecommendationsToKeyValDataset", - DAL.writeVersionedKeyVal( - tweetRecommentationsSnapshotDataset, - PathLayout.VersionedPath(prefix = - ((if (!isAdhoc) - Config.RootMHPath - else - Config.AdhocRootPath) - + keyValDatasetOutputPath)), - instant = Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - environmentOverride = environment, - ) - ) - } - -} - -/** - * Scio job for adhoc run for tweet recommendations from IIKF 2020 - */ -object IIKF2020TweetsANNBQAdhocJob extends TweetsANNJob { - override val isAdhoc = true - override val getConsumerEmbeddingsSQLFunc = getInterestedIn2020SQL - override val outputTable = BQTableDetails( - "twttr-recos-ml-prod", - "multi_type_simclusters", - "offline_tweet_recommendations_from_interested_in_20M_145K_2020_adhoc") - override val keyValDatasetOutputPath = Config.IIKFANNOutputPath - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromInterestedIn20M145K2020ScalaDataset -} - -/** - * Scio job for adhoc run for tweet recommendations from IIKF 2020 with - * - Half life = 8hrs - * - Embedding Length = 50 - */ -object IIKF2020Hl8El50TweetsANNBQAdhocJob extends TweetsANNJob { - override val isAdhoc = true - override val getConsumerEmbeddingsSQLFunc = getInterestedIn2020SQL - override val outputTable = BQTableDetails( - "twttr-recos-ml-prod", - "multi_type_simclusters", - "offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_8_EL_50_adhoc") - override val keyValDatasetOutputPath = Config.IIKFHL8EL50ANNOutputPath - override val tweetEmbeddingsGenerationEmbeddingLength: Int = 50 - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = { - OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl8El50ScalaDataset - } -} - -/** - * Scio job for adhoc run for tweet recommendations from MTS Consumer Embeddings - */ -object MTSConsumerEmbeddingsTweetsANNBQAdhocJob extends TweetsANNJob { - override val isAdhoc = true - override val getConsumerEmbeddingsSQLFunc = getMTSConsumerEmbeddingsFav90P20MSQL - override val outputTable = BQTableDetails( - "twttr-recos-ml-prod", - "multi_type_simclusters", - "offline_tweet_recommendations_from_mts_consumer_embeddings_adhoc") - override val keyValDatasetOutputPath = Config.MTSConsumerEmbeddingsANNOutputPath - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromMtsConsumerEmbeddingsScalaDataset -} - -/** -Scio job for batch run for tweet recommendations from IIKF 2020 -The schedule cmd needs to be run only if there is any change in the config - */ -object IIKF2020TweetsANNBQBatchJob extends TweetsANNJob { - override val isAdhoc = false - override val getConsumerEmbeddingsSQLFunc = getInterestedIn2020SQL - override val outputTable = BQTableDetails( - "twttr-bq-cassowary-prod", - "user", - "offline_tweet_recommendations_from_interested_in_20M_145K_2020") - override val keyValDatasetOutputPath = Config.IIKFANNOutputPath - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromInterestedIn20M145K2020ScalaDataset -} - -/** -Scio job for batch run for tweet recommendations from IIKF 2020 with parameter setup: - - Half Life: None, no decay, direct sum - - Embedding Length: 15 -The schedule cmd needs to be run only if there is any change in the config - */ -object IIKF2020Hl0El15TweetsANNBQBatchJob extends TweetsANNJob { - override val isAdhoc = false - override val getConsumerEmbeddingsSQLFunc = getInterestedIn2020SQL - override val outputTable = BQTableDetails( - "twttr-bq-cassowary-prod", - "user", - "offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_0_EL_15") - override val keyValDatasetOutputPath = Config.IIKFHL0EL15ANNOutputPath - override val tweetEmbeddingsGenerationHalfLife: Int = -1 - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl0El15ScalaDataset -} - -/** -Scio job for batch run for tweet recommendations from IIKF 2020 with parameter setup: - - Half Life: 2hrs - - Embedding Length: 15 -The schedule cmd needs to be run only if there is any change in the config - */ -object IIKF2020Hl2El15TweetsANNBQBatchJob extends TweetsANNJob { - override val isAdhoc = false - override val getConsumerEmbeddingsSQLFunc = getInterestedIn2020SQL - override val outputTable = BQTableDetails( - "twttr-bq-cassowary-prod", - "user", - "offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_2_EL_15") - override val keyValDatasetOutputPath = Config.IIKFHL2EL15ANNOutputPath - override val tweetEmbeddingsGenerationHalfLife: Int = 7200000 // 2hrs in ms - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl2El15ScalaDataset -} - -/** -Scio job for batch run for tweet recommendations from IIKF 2020 with parameter setup: - - Half Life: 2hrs - - Embedding Length: 50 -The schedule cmd needs to be run only if there is any change in the config - */ -object IIKF2020Hl2El50TweetsANNBQBatchJob extends TweetsANNJob { - override val isAdhoc = false - override val getConsumerEmbeddingsSQLFunc = getInterestedIn2020SQL - override val outputTable = BQTableDetails( - "twttr-bq-cassowary-prod", - "user", - "offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_2_EL_50") - override val keyValDatasetOutputPath = Config.IIKFHL2EL50ANNOutputPath - override val tweetEmbeddingsGenerationHalfLife: Int = 7200000 // 2hrs in ms - override val tweetEmbeddingsGenerationEmbeddingLength: Int = 50 - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl2El50ScalaDataset -} - -/** -Scio job for batch run for tweet recommendations from IIKF 2020 with parameter setup: - - Half Life: 8hrs - - Embedding Length: 50 -The schedule cmd needs to be run only if there is any change in the config - */ -object IIKF2020Hl8El50TweetsANNBQBatchJob extends TweetsANNJob { - override val isAdhoc = false - override val getConsumerEmbeddingsSQLFunc = getInterestedIn2020SQL - override val outputTable = BQTableDetails( - "twttr-bq-cassowary-prod", - "user", - "offline_tweet_recommendations_from_interested_in_20M_145K_2020_HL_8_EL_50") - override val keyValDatasetOutputPath = Config.IIKFHL8EL50ANNOutputPath - override val tweetEmbeddingsGenerationEmbeddingLength: Int = 50 - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromInterestedIn20M145K2020Hl8El50ScalaDataset -} - -/** -Scio job for batch run for tweet recommendations from MTS Consumer Embeddings -The schedule cmd needs to be run only if there is any change in the config - */ -object MTSConsumerEmbeddingsTweetsANNBQBatchJob extends TweetsANNJob { - override val isAdhoc = false - override val getConsumerEmbeddingsSQLFunc = getMTSConsumerEmbeddingsFav90P20MSQL - override val outputTable = BQTableDetails( - "twttr-bq-cassowary-prod", - "user", - "offline_tweet_recommendations_from_mts_consumer_embeddings") - override val keyValDatasetOutputPath = Config.MTSConsumerEmbeddingsANNOutputPath - override val tweetRecommentationsSnapshotDataset: KeyValDALDataset[ - KeyVal[Long, CandidateTweetsList] - ] = - OfflineTweetRecommendationsFromMtsConsumerEmbeddingsScalaDataset -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-0-el-15-tweets-ann-batch-job.d6w b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-0-el-15-tweets-ann-batch-job.d6w deleted file mode 100644 index b86af2653..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-0-el-15-tweets-ann-batch-job.d6w +++ /dev/null @@ -1,39 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - job_name = Default(String, 'iikf-hl-0-el-15-tweets-ann-batch-job') - machine = Default(String, 'n2-highmem-4') - -job = Job( - name='{{profile.job_name}}', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "date": '{{profile.date}}' - }, - service_identifier='twtr:svc:{{profile.user_name}}:{{profile.job_name}}:{{profile.environment}}:{{profile.cluster}}', - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - environment='prod', - build_target='src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann:iikf-hl-0-el-15-tweets-ann-batch-job', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT4H', - first_time='{{profile.date}}', - ), - workflow_config=WorkflowConfig( - play=True, - ), - timeout='PT24H' - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-0-el-15-tweets-ann-batch-job.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-0-el-15-tweets-ann-batch-job.docx new file mode 100644 index 0000000000000000000000000000000000000000..39c6d2a755c93bd6a41fd8041007ba2067ff40d7 GIT binary patch literal 37262 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

    yGT7hhLE}wxpem}q$#qrLo1LL4V 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 S%t4@BCCHEn%pT&sARYi<(Vuky literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-adhoc-job.d6w b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-adhoc-job.d6w deleted file mode 100644 index beb0dbc93..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-adhoc-job.d6w +++ /dev/null @@ -1,39 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - job_name = Default(String, 'iikf-hl-8-el-50-tweets-ann-batch-job') - machine = Default(String, 'n2-highmem-4') - -job = Job( - name='{{profile.job_name}}', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "date": '{{profile.date}}' - }, - service_identifier='twtr:svc:{{profile.user_name}}:{{profile.job_name}}:{{profile.environment}}:{{profile.cluster}}', - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - environment='prod', - build_target='src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann:iikf-hl-8-el-50-tweets-ann-batch-job', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT4H', - first_time='{{profile.date}}', - ), - workflow_config=WorkflowConfig( - play=True, - ), - timeout='PT24H' - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-adhoc-job.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-adhoc-job.docx new file mode 100644 index 0000000000000000000000000000000000000000..34da366e909cc03df38c2898d36e45f7752e38d0 GIT binary patch literal 37262 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 PR|zsC0<(vBFNg;K<6WS* literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-batch-job.d6w b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-batch-job.d6w deleted file mode 100644 index beb0dbc93..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-batch-job.d6w +++ /dev/null @@ -1,39 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - job_name = Default(String, 'iikf-hl-8-el-50-tweets-ann-batch-job') - machine = Default(String, 'n2-highmem-4') - -job = Job( - name='{{profile.job_name}}', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "date": '{{profile.date}}' - }, - service_identifier='twtr:svc:{{profile.user_name}}:{{profile.job_name}}:{{profile.environment}}:{{profile.cluster}}', - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - environment='prod', - build_target='src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann:iikf-hl-8-el-50-tweets-ann-batch-job', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT4H', - first_time='{{profile.date}}', - ), - workflow_config=WorkflowConfig( - play=True, - ), - timeout='PT24H' - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-batch-job.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-hl-8-el-50-tweets-ann-batch-job.docx new file mode 100644 index 0000000000000000000000000000000000000000..34da366e909cc03df38c2898d36e45f7752e38d0 GIT binary patch literal 37262 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 PR|zsC0<(vBFNg;K<6WS* literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-adhoc-job.d6w b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-adhoc-job.d6w deleted file mode 100644 index 6cc067816..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-adhoc-job.d6w +++ /dev/null @@ -1,34 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - job_name = Default(String, 'iikf-tweets-ann-adhoc-job') - machine = Default(String, 'n2-highmem-4') - -job = Job( - name='{{profile.job_name}}', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "date": '{{profile.date}}' - }, - service_identifier='twtr:svc:{{profile.user_name}}:{{profile.job_name}}:{{profile.environment}}:{{profile.cluster}}', - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - build_target='src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann:iikf-tweets-ann-adhoc-job', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT2H', - first_time='{{profile.date}}', - ), - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-adhoc-job.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-adhoc-job.docx new file mode 100644 index 0000000000000000000000000000000000000000..91d9443434031e7411cf1e11330d13505a03e830 GIT binary patch literal 37209 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 F9sq>QfdT*k literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-batch-job.d6w b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-batch-job.d6w deleted file mode 100644 index 065a83eec..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-batch-job.d6w +++ /dev/null @@ -1,39 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - job_name = Default(String, 'iikf-tweets-ann-batch-job') - machine = Default(String, 'n2-highmem-4') - -job = Job( - name='{{profile.job_name}}', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "date": '{{profile.date}}' - }, - service_identifier='twtr:svc:{{profile.user_name}}:{{profile.job_name}}:{{profile.environment}}:{{profile.cluster}}', - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - environment='prod', - build_target='src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann:iikf-tweets-ann-batch-job', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT4H', - first_time='{{profile.date}}', - ), - workflow_config=WorkflowConfig( - play=True, - ), - timeout='PT24H' - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-batch-job.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/iikf-tweets-ann-batch-job.docx new file mode 100644 index 0000000000000000000000000000000000000000..29c103027a2a27c60383d996169d4e65c24f3ea4 GIT binary patch literal 37253 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

    ~?!p+P$O0 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 G1@Qn&M4R^j literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-adhoc-job.d6w b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-adhoc-job.d6w deleted file mode 100644 index c7f921708..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-adhoc-job.d6w +++ /dev/null @@ -1,34 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - job_name = Default(String, 'mts-consumer-embeddings-tweets-ann-adhoc-job') - machine = Default(String, 'n2-highmem-4') - -job = Job( - name='{{profile.job_name}}', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "date": '{{profile.date}}' - }, - service_identifier='twtr:svc:{{profile.user_name}}:{{profile.job_name}}:{{profile.environment}}:{{profile.cluster}}', - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - build_target='src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann:mts-consumer-embeddings-tweets-ann-adhoc-job', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT2H', - first_time='{{profile.date}}', - ), - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-adhoc-job.docx b/src/scala/com/twitter/simclusters_v2/scio/bq_generation/tweets_ann/mts-consumer-embeddings-tweets-ann-adhoc-job.docx new file mode 100644 index 0000000000000000000000000000000000000000..5d33846308919032cd088090bee2c4979f68afd8 GIT binary patch literal 37221 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 z zZnSb)I1MFX?HYb69LUsrTNdRdYBDor`vcN2x`D)ERLNv_Dya}G&n}|OTvM{L}mJ3!Z@PTdA-c2zjI;`em2HMHmhjj@3u=1t?oFi z%C5QU(m^cKmvKX9&(4OJ^YRG@@g|L*ck){J19q}UUdomJ->NfJf-f)BT)$l}JU%n6 z+vcL58*Jy__gn5JyIQ^{p0^J8NWtA?Z1*sli>+;aZ>M`!RP|x1wa8lN0APAZv61V6mX>(x@?d-Lx`1{HW(bf{vF

    pVX6!v|O^`+Eqx*7o zyUXlxnLVct*>?hY1O3_@+B*oACNTF2lwnA5r)@qK798ijW%K%nw4yF_Q;MIXE?W*0 z!_A&Y`x;ie_uWb9^1aBe^oL#?Au-bNx|Zi94QZ#7(P(nth7pR-n(fB`$tf`e=FZW^ zx^#cdPowLYRQ2S8>kxMG^xE$GYXpltEzb{37}LRGe_2sDExRJ+OC*NEWJepn{uWl4 z)sodJKG#8>2)L?_vE|)OO#uXmYk4al^bjwV_~Rn{>**zzZ>#iP8-=~sh$lKM3!N-K zbhsQHcDEHp)$yA#I>9H)C^zv9>+BE)y3aUkV}MVjGSJdW(Kv}6=&pCgf!WMlkPAfk zSwgmF$i10aFXXn#>&5Npb-67UNP;6j`69m6y=O~&jkt;LJZ4>(V*J$*w>iiQ9HAvz zq>cOSc-aRdn4GHii;Lvmwk98tTQv3Vwkdn;mxXTJ;cZs|lOIs4d4P}2%<;aT<^ZkU zvQF--tHEx6FHs~dyQRORrZ_tMCG}^?Y8PMBpfrckoi+1UjO*y)LE+u)D2UBWTdqYw z2lut(zC8Goy`!7r?~`r!ep|tx|Nra&9Fh0AUpJjO+qkii!Tr4s;M=&@;gqsn9mrO5 zk!1?FSLF+QujK`DUi8PAv>3?f8{u7Akbgp5Bl4OyE6LXL*F|X$bb~@|jF4<*>ffL9 zM0M4r)l~vVVjDOT%Gc8hm0LX%rMy`hKTR5}R-&YT*|(!i09j|C{_8^%r*#7#$GOE6-cgDnMUJ@0{|Y zPNiI5_TvgogF~v9&AlOTy^Dc*vvTTU5~(00%H}W$_(bs((z;UAs@|s~h)dhmOx4Bt zT(ruktj(Rpk?A=f+-hFj8p3OMN?^I61J0ri6;jcvo~|HpQLRLQ9@?7HU3IIvv%feS zC$`_9g6uJ|SIv1=jd_zYTMg$>4eKB;7}^?xu!VR6QmXH|SFLqcZG?ow2mSqN1tcoP zKmWX1tweIx(*~n`ey`e$*+#&n{nrCK1#`#clIV9gcN=+68{pn4mEi#$n*p6f1?d{{ zJ@-M{>2hp6cN=w2n>6r{8UL1UPLM(~!!l2sl11qe1&zUVHQIQ)>lTeR`d$B_cV-pml^G_o2R$f=RHUWS2}bX@XS<(|SF|k3bdQ-TMq-t= zYXDFJn0H2i5r*O*LdXO18L?~MNOO@2DF}!tJIfHp;vC`uO~=~AYV|bH6@Uc(=ND_wG^H~Q13=^*0eU5 zI2*K&(I_I3DrwAOhO-zW2=+!$00hH;AWZk6s3;8bWQiq4R#$nRAH{s376XB>&gYGG#-SJ9HV*?K zX(c}F5QQM$M(Kwk1w$8w&}Ye)hP`=5MdL?Mi+T$yyVAtm0M5lI7L z5+bq4iBczZcOV8gx;rY zcr_|G^Ko=FarCrtbazQjga*sPl-=*%82IxM|1d}=$HzotQA-+)x_pgVq8)1`3tz-f zR%L8YZGR?t8`V8-7>&a0ms_LLJ`?>MU7S5$eLR$_|8(GbJX`zPU&*~tNetcC-&N#X z4ArYYo;9UjYpQ5msnI}vv^A+6Jpe(L0ADy4~f@hENk5hZx_# z=rFQ4x_LRh88o`nF-qKFL?BKHum42j?Q`#ms_*-KFeYs^_e}~}zn4}2Lx2eSAi-D_ za0Er!d`6$1xPF(6AY=PW=BcR5M=SE?W$%%D|8Y_wd;~ikD<%CH8_(o)!rE-ky$UcMkopO(cBe}}Xf^k#j{f-3;?o!Rw-NU@fBswr znRD5;Wc;M1l3G)M`J@ILP5mDIdg9%S8RNi3=;}_`DzgwJo`I>hrg?^eWmLYyA_n?RBi6y#oxkKcY0QT0Iy&=t(ykPy~oT|Ak#&nr=hO*Dp{o39h_QUJOy)+ zaE2>2dqw5Uo&?@>MuYLZp^#crg^7#QW|&%HeP43@-q$2c?|3VtbSs~H){q`dI=mBE ztHBG0f&WD5SS23WqsT~Na9=OHd6~WtcYhmY`}|q|qxc-9%O|nx{nk_v=F<}tXT@e- z5!W|L7iHqda-5{+B8B0c&983>SbL8^yrGNKT(oFrHbw^aX=aX*xz^9|1Kw_O?r%WX z(lWc#GjCote!f)Kde{xL82KuhMRva@EOeXc3yFgoxWBDWTEhJT1opR?2Hw$g)0E2_ zjAyBSL&6MXJK|Hl9LEGrY5KqDIY&Bz*YE$Q9tU4sS@IUdiwg?v)5m+W+d`@B)W`k3 zLwMfj!3IQH1r6)3$}?YfMFs*X9!c77y+j4IWNAPL;6W<1s+GX2QNvD1yni38c+>hN z1$G{3WRXkBVrOA(VxnV9uSkJvL^Jsif~XQ2dkW1YZ2Ok}=Fcknpj)}POkaZ6E$OwA zZ((_FUzuF$&jZD=Y|`Izd28lTPnK)?mIH!8lP4@sh+g4%rl{T)q?^)>;Ea37HfHvw zyElwu7%Kz&nWYiC1Z9dOZN2@~4MaIR&ha6JLyX;Jh%(Il5d=Iv#1aYvhcd&dM_WRR z1gk*ni7m_=Wtt@8(Ipt$#P3tZ5bXSve%fb_KuhzJyH!vrx6cFf{0k`4Q>dvV8Oz`Z zrg#OoiiSy+BN_(l`Bk+D^9)|NV(fn~UfKsDS^J1E8-gv(ndL|`L^v8V&50w-XO@u^R^gfs&b zQX<^EC(ZH;?N=b5Kk=bBNHdIrSBoT~N_$41C||**NHfCsF$!>T{}$u?e-&e?!SUOw zxso4N=i+USVMbFll0Kl1h)4 z+TB({Vp^}u)n(6*_wDHEuVT%g;=po`=pcO$o0HsjMI7O=Gb9}0-FOtfIjV%Ic=qqx z5>sGPw4&zuAJefBT>G@xQi!;L21%USpN2SLu!8Hipy@})76Cje;oFaCnZ+?R6t@S0 zOO&=hV^(iA?4u~^&pe5Ehdsus-M8&>t=TlsZpp?Ff^}xl>kE1U+KZwZuDOG_9Lqq$dJBINuZmxk|D{7E?*yph-R0jp-p4l^*vS4LB-{$LvV4ahUldc6 z^}qdP1$x>aE1s194e?Y4v;zJAVa15iVes%F)JbSV;+?fOg~!C??KH%C*$7%_dd^vam4xrZ70HZgL zUECU(KwBl#z9AG7JG`?m${+Y_vo?~^MCxxiE+LZZV{sRNAE8$Ie1~K6z8e=Uhhh{; zQmin=>u0oTNLT0{)K0(mK@yZFF z@Q^GeXb#@rA(+irgmI$SNZrW;pF%0xpf#CbLopem`3JRLf`PFXv#H_2_z!B8zvjPC zhw+k&&i_KK4~g$z$PjqQ#8I1&=H~UWLgPB#2vy5J4La1bl78WSl7KH)^kH#{5G+CO)vQd>`F|J5O;v2#X zkuj8Cp0JPPoJIy8!b5^-rdV-Y;&P+0$@~m7O;lM!E$aeDxmhhmw~&Tm2oDgH62WPF zL|vVitcPtg6oO!kIE2U8cRpH{$+%L6fjpwhOz0ZM8KvJ^vhDo8$>L$yy!YsRQrGa8 zsU@L(=djnyJj*KBLtOB+RXg#%;rSZK1IA7jpTw64WhN z@d^34S<*#sc%Xu*n(G_G!>0GBdUBF0tX5%%STyPLWx~3gKN&79V`cW~M|;hKy*NiHcZbc`kzFI-qgf&-!zGKLZ|rBE`8@u$L*Mz=U1L3*Z6LljdwATL)LK94ZzzJ#O{Rz?NPY0X{ z+$uD)qdzHN(l*ow(wQ?C((+*c$<%r;)tCd6A$3)!q?3zOSZP#Lq=x^AS_Jz~R1%~R zO5&wDsx(B^e_5bg2ecp_9_x<<)148C&m<3Pk-KG{s7an0O2b)8oe^|UX4`72_0&IW z3OdB+zhYAU#rFX65As%L#GMO*>bz714}NfA*jos+O~AS^CZ}KmpIX(7SZZkmM*68R zW@GC7p+hEApwl?nsRocTuogTeZRQT7oLC_FKPZ!d{gX0J+N`;){&0pNm!f!dEQJCl zub@T#uL!dRK6bGfV-sE`N#d*wEb69LyU99@_Z7-AI^P53F4ZOv5wwYA0UQfx=PM~j zYv(AXL&*6V4@2kw#c^cv73221Pe*!PqDm z+#@zM@B6fVrQdF*kUwsnK{W_v$K2ErCuP8{(Jyn8F?8oaKuPe4g=CfK=ug>R)6WPd zrd(01NtTkRm!hc$^EkYcDpbiAI#iv_{GZGkXyG}SQw6ow{49G+1;J75_~PGYq}HjT zveVw`p@Q&XxL*Y5V7NaEU)29V+=JSUuf-q~D@@>?vP-tV92b(I+jdNJ@^}u({ZR?t z7_4*|9W;0!foL|ODa8}#IB}nbBmrJ)s^kP0B|^4bEqtMzZU^~2Roaw(u1j}Y+X%eC z%K8~Wc;HM-T^pS;%N;FPX>7|N&XHtKH)Pv!lmHDW4h**R$F9==3Bs>uKS;EgPagf! zlmzx{Ow4;X_us(m>Yx9L89%<2KXr%%3ylWwSQrB?G$?5wHo;8d#^~whI#ltL{wNKB z11hCZ1u6w73WCQu^2IZ5OTk)TD9CJU8$V)G5J>T)=5uedh6aHb0V(miFEGTC@{9E! zf@4YXJS|<2Bs;c^w{-;#&i;h$xv=rU@FL%HRMm8%p|27i@DEZsKTv?`NtK37)=}*O zGeJpp6w^+PcNF`c8s{jMk(%H*ga{+UlLbYx=UNaE8IKl&KFrFGGjz`U$0;UJhc*)+ zeJTH-MVA|~LYA1d9JWMcO_IGe70F1|fjz2&J2WJr9Svx6_`)@O*wDhebWyEm1T-Xy ztUFWMKZV@&$ceH(917<>m?oxVc*(qP>AE~%)00O7s9Yo&@S(FH6j=aO4R)o0@PW11 z(#12HgK0 zmaJS7~NCU^#_iQK|awBfb1g$r-?ihn8iDSOcdC{sJ>QB0_N2 zxfLb|vKl6s#@f4dfE*+Ix~DvZdkZ~8jN+Te5%4Pz^fr_RX)ErHl(4c)U>|wcB21`B zuI4y!zR%?M4w6u8#X=a11*&gfRM|4pa1;x?z!S$qBx<6mIJzFpGH1M{{sJoyN}G6SP8rhA`{{3@hVUu zLq3oNr0=ql!~0h}u3d~jUdWBo>?7x4d?zIs>SrNv1bX&gQpo*(4Z{5GnDA?UsY-9k@kc^xzSA-3kH@<$R2VIfeq z@@ee{3!Ee>f6&N3wRrpg3XJ`alKEevz@nFQ9?$FzP_U5bYd?%LX6&COT<v zqd%j;Ycu;t&Mh>)BXBhKkxNW~aung-P>_xr6BOJv?YZ}n`#ATJ&8L`wfNg6&&sNPF zje$sK>z#vEM?8b>alBiAEK-G(LraYqS6r-4KliLmv%o>$V67H|_xf4H67%FX%7hs{ zgXVMu&MT^tga=RCvi5k$K1&j|AaW`w0vp1{2-aDm-#1O}x(jjIDK}eJt%M2jR*<$#(i~T+@%>* zY8g^`+8<{z)Tj!nM9{#kX<%@y+6pC{jsEuJmFk#+d$49@vHmD|o0JU!aqT?2dBjx* z651{c4x753a_g@5FQe34Tf;fl*EsK|?q38hiEOVaeZ)@S-MsEpPO~w5d zH82E*0B%obo|9E^ra>gI)Y^b(?HcEt8p&9j+M@rkj&ReJ7Q;F;##1;*S|3{uMX^0O`^kv&2)K-vEX{K(RN}f)rgX3EHrLmI=hwJ6(L*~YZGDL^iuS2#%HV7?@xO|0R5xiV#pLs zUNGJ?8Se+)Byhz(-Ey?dKVOfWo$i=eKB~R#Uez(g0_f|~`#3sA>->0=@_*$Ok-AYt~)6lqf@sI%pNm^nv7UF0K;i#ynOE=y5 zvyvIog!JA(4lOlV^&}1TpODnRki2K9&S(k+EOeC??wzoodHtQij>Hfg%;~5P>e;`p z{Xk^5Ar;|m&*DgFZ3SK_q-cTof!lB`ZVEkFso(o@gVq(NLlh%tni1v;aR zG~PzNdC*+M=VhhkXC*D+FsJ}%WDq~|(&}1fIV;n!$B`rI+k2!c0pOB9oU1#7SIm;o z(M;8k+J-t&%Loq}3p2<+eGVqasCZa!I_`%{!*# zd2)j*w$+z1V7e%Q3``fEd;5Nb#BqdH-sU#=ZC;~bPvLN2ai0fcKHKLLHlLc0CBG8#5vHv*Zj0T;LUFVYDfRlna zAx$u4!QSFL;7LJ4ZAVKjRQ=^QUi+bAc!yYmd=^}IkUE+Fq_uRpipiQ-awnfF!mV&g zJip6&<|p=VtKRlGU$xvr2#$KB3pBhzu6oSR6z^B!TSQoPo#;Hosgzp-w#z8gf@hVU z0l$E^NZPa8R4M7*d^ml6#s2iyeTP;y%FhZ$Sd^u$#0f~jVuE12GEw72QTh9&Cm|xo ziSp+bW*%Vrpds^GlQ z`$0Jk2B3y^G+c3uYp{VVyS_!{<5qgSF$}!LWy7G(+HEL@O|i|W!T@mzHZAOeaN!vm z^l_^_T<60FDi{1Q+OhHkr8pJB!==~)$D!{0HDN%ZmH@&!7}EV;1Uz;d50l7X1^z{V z>IjM#6L;K+Bijp1TtSYaG}vM+elc@Fl%$lTR7OGs;1=|F;HaD+9on3)DFTo*(oGQa zdzP9`SnN>k)N+=Ix4=GZawHwIBEHWF$ckvkHTlY75<_u6Y4I1SihE?gtbi;!Tu9z! z5kR)8<>9uXElKGfLxgea--fIs{Na-fMEJ{)k`!h+fj?$-C$*Rm;5sE~?U(ibt<$rLv^Z3Dsl5!IDWf+o zF0z3t<9c(38iDM}`K>E;YJMJsJtd$2m6(|jIM>=n$b~I2C<~&2eP+vLP(5ua2|9n$efF1F*KDlRMn&htvNh9-mA1S9G8fawIWKWV= zJjQxz9~lrs{3%#m#-gJxTU?^h5G|^mn1Ep+4$zb$4*0bCbv-IGy}ELip&=TGLpJEn zl~dnKWHyb7uURxANoE-DW|h#ukU%DnrfItOxo)hdPUa4naQNx{Hhyk$Y7L+elgVG#F2x87eISOx*Z(n_7BnIxmV!}S*jp3RY$h>=Ot zghu?4S+ggB2^zgx$VgaLQqm65Rent|7x1$V&>{W7?Pccusy2QMDp6Tsz85&h! z&O-c>hnQ?E2*(^S4gdS3ty#S|F`TxwFT6bt4kEy&oVWg0IX61s!KHen_%K3KTT$Z52n|w%?Q(PMxo(B* zN;is^v6;i!E?b&z)kgdC&jZE>UMHQzVg?(e0WMT(Je*^a;B{rQF79`OZql|#z?UDG z^#@ZISA)Az&OenkYOzj=P7sn(C~*R@htd_|A_N^@0}EHzuyH!+>z#s+jpnjmrV#n5 zqh6>ei7yukMNS}bGL`tVct9fKFE-KOVelcN zcs-G1p&+ua7Ne;M(vK*k=imtqr$6J5U?oxn?M@Lr(H)FOS^R zf!%bJRAj7}<==V$?)nvMmg+S}AeI{3lE5DNWpf<{J+y`|I_~`o8FxqMi>n3S*Q#Jl zr3y3ede{?D32q&HKK4ih%$~|=$@*|U2J5=A;S6Nu4r8TG{)dLK$(V-{eXc9B`qbg> z%Y{iMFRgvE@I*VOSI(MCi!4!J*Sls@x$FFw%28hwx5-WUpYnFa2IE^$Tvz7XXpoa% zcF2j%fIYiF*w>10jO(W{1*yRcEr-Y9^{r8+v+eJI2Xw^yEOAE|%6I2dNqgX#Du;CDPCW*8lI}%W`HUl?9O~3qP*W$wIe4rvdBQ4+d#hYf@mCpaO z-<}OheLwGV$&~m<=$6R{4Gcd_G*-qXT+-D>k$wf_3)1JX=pi!Wa<&HP6BOX1lE-nQ z@(2jmGzsSMQH{^3?Sq7}w*UoBWM%qRm^H68G(-#0x2-fhF){<}6OEwwD<0P(lBkT+ z6Z5exn+1%g&?ib@N?oI;4zn<3zUg=G#HL9PQam97M2&V$%1&JjD`TfgxLVx+tnO1z z4y&LAE+YmXMa$^PjoV;{XFo}V?6y91Hz!0y=webVoA;9qyF18#I`*44&&34T0rWQ< z2ngE09Ww_uyj3+aw*9LO=vGR<{dX3Eksse8Xi~FeY!jO?Q0YcOnkJF(y+F_j>aaHA zuY}tde$VjR#sdz~H)yN`aH|e#|}_e>}VqYPWu6XrL0Kqig%o zhv&#J0M1(EeaKJz(mfesLL2>zA{l_bla6|{*}|;7Xin3np3U_w?AVhU*Mxq(TNjMjFo*oI(*5HEg5f%v}iWjFrCWW)d*S(WW z!4?xx$r`;pVdojPp*m*7ATFH5rem&jJj!xpgMWI3!-^-BFIHw_&i)*sOz*-EaTX@t zG8}N6iHePeOt!xwXwrGH-j5?I z{@}?)XGv<#kx@;NWvPT>QW1D7lW8cOTFG!45fhbB2D(<&KSMXyy7vY0YO35pBVeht zUe7<6_bgDyexw9JC6}$Bs@2rG8y(^Ptt;+X-=EJNRN!9J{7~%%taSJB`z4HlzPh7 zNK|~g{T~fblSIhcMu5GSJLy0`F#ml@x>}mqnKA!$Wc{ndnYO&c1{Y4xPYslg!=;xE zw}=k$%eAYO5=69C(by(29a|bDk~4}P#4D#hKclU>LAcA7!MbW;_{)X2412;Bq*DVN z+Vuz;CFkQ|`R|m_qh!wl-n|COH_I2HM4-RJoaEk~w2zcM5J`4Qke)`bn!N(whga}+ z!CsIkmL#v5Y4>ebYxUaTYGJTFV5Hh+Yx`P`;81mGliL_WNqfb>4=3AE&4@7W;-h7e z0-+OD$cwGpHyJ!oeq-I_hkjq#nupndLBJ?>y8;7oc_)e|?%B0wAZUi&XdcW?l%mf- z*5L6%4PE||=ps#>yhY)LU4|tdZicy_{KuVV zqkWMTm8EXLTemkFX7icwA_*Ex!J#>;tZYM*@_cRKl2q0gC$g9_W-QYJXkz7+)QhGq zSd2AjW4t`nCdwLkSRyuW3XwLr{-K1Wtm*rcBu&2!1n2_0Zv?_x#xW~B-<}UPQfK=s zC7Ja(0L;m#^ ztbL6FcFo_hSFy^TF32-c_!y6Av*?0MKG}|}5H2P@7DCa*6*-^m6+DXb!`3KM2_Ok3 z(3c19R8I=+PBV3yxt17{gEhe;U?c&QzMbrAcg5x&g7AQ;; zuif-cA%{JUcH{#D_r2IuNY+XUGzBY8>O50og5USUI%4BB8$NFhnyeB;S(^{QxnL@F zhsce?6byZ-AT{^QJpZ~Tq~3dP+9|tXoBRf7iC^6jeCy-e3TZMjYAF4^@maW|(v8;T zCUky@Yj0>rg3W){>$`^n{|_sRvQow>naUrgo~sepzW1G5^KP>`t{eD9pT7(z)tyzj zQaFx+RIJQFn&;uKD}yuC=%N9+?3crIg%l}T`9?e|>P9rQ!!j0m$Y+79S?4GX=PV-B zjyaK0t<*Z7;x8?QWh~{Xb3dC3s=H{u4+J=rZAGkbW4Z1J2DUVBmvJ!|4(8cK9}-IX zJc6|oYgD5q)bF&|_Aks^UqX)ljJN;o=2B1!UTv$LV)K+$gT4S26)8Wq6~?2R+`@E= zSW>}tK0#U8tY)>Wy`-J|Q!Vmz9A(dv<8up(goiO*vm1vAU8gG<%7$AuI12@O3wW{H zxe^~=+9bG^+k2m>fB7t%8uQIDSc=aNhccJF&r)F6GjIU<-fc10^{B8T1+V_RyLrb6 ziOL4OE5h$gr43md*AI5wm4suGoYW>TI{E+{hzg!2#)%+Vvrc$j+n?!Oi)pG!>L3ki zwBR70-)@9Nf0vK&rc&?E+R7fP$zATU8ftPG?Xd;53{P!;*ssbgyXV2cuh}Nb1y6nd ztVP3;W)b#;id$y9t!m%k$L|1G@2K2!0psGVT3y*|`{?aPTiH1(S5(RONeJEboL8fB zLeUXov{Trh%2h1#lxtPPhZMi=B{~MD(ajS)^nhc}B%v?t;j2YHjhW&{F;MfXqQcf` zTp&V5Dvs9Hs$SZ*j{Nz9%vy2ew4m`hg$&h(_vemnRdx^=eOPk{=@P>8w=O9alM)|P zeL(lnq!ee|vsoG+C?c^8EcZMNKx+TQSRhU`JZC7-PF+R-xtx7j5+>GD%Q?yd$!cgv zgxoJ%RFtf!!02hQ{PM{3M5tnAvsvd5D1q0-# zkN9}PcnMz^#-cI`HEKRwjr7ZRsD!SBBIA$ku-;wwua2X~cJl9F#2kEpR&i+;M>wx5 z2>|iW`(xpIl;DeC5$LQM6iXEgNiDZFcSuqNaBRBqaf}09R;(om^&l_{$8yBe>M+>1 zF-M%H0Q8FCfJj@76fde~4m?TbV=KzubzgNt97WU@rWz<7qpNDhoGr@W+BUdMQ|F-N z_5YzuaN=mW8>ojGsEgz z?j`M{Rw0lezc;ci!Xbj)u6N4l3MA~X@f%~NYwAQZ;R$_AtLKR5KgL~?nnih6msgW3 z?^G9hTYUrj=YTeM%E|8m1sel}fxG>2);tJH zj4&w>TAO7VJwkUsN?Y;`vFM6-FL^#rlhLm=uGh=_1VTqa_J&n+bky@y6fmll{P`hS zUA>$f}Q@SI{a4b8ua`65$^_1%Jr!wq18rsZUo3F6d$KHGF>~GYK1xPfy+EN-#zVFnx zYu}~Pqip%3xx)q?QuZ}(l4=j_rpl)^=n2TZW``HP5bm04gzvJ-s0_0Q+d`{U<`urO zalswjEx2VVZkeb%b=8JZhn4R}z{3@HVA=$u)NUL~I8iC?LsDrHacC&cUyiJ(*D3Wo zsVwKSlB@MuN=m0sT{z!=j?5PelZ}`nWhZi=HD;rq#R@A6;Faa(;XPkTl85A`l)eg4 z;ObQH+nISt_w(W;fMurjO%J3Qr?0hun1PJ3jDT~JhILqFpy&Pe>uI`(7xU{DU_%IU zhf0!bGv+G1TV1yT{S`@LZ~km$;mfdqgJA&@O0=Yc%?P9}idwvKS81-)g?=-2n^du1 z{cA^YH}_YC$@(KxT83d+%ncE?mV!(6H0_p{ImY;3@ZU-AoTU`g3$dwaGG`Vk`nK1@6GLq`W^n z%p8ML{>?DLCRuG%ei1}JEON@jwAsTu0yV>}{@uzVoRsBiya14<@K0>#&q%rmEop42R@2+ZUO^>wu z>car6P50d1b@z>&zF2hk&F3BHemxDnk;7mwab_s{Y)roI-RM32;V2wmz!3UO&*in7 z@`h7TC}!#2?tl2ce;_pxhZ~3SB$lglM%TY!-FoN21K3W*tX|B)*voV4F;ydg*>14Y zSE_@}_6y{8@KJ85N-8JiR|Ay&-qB7_{u6BYtR^qrg70&Sfw1eAu z+pK2s3R8n5R}&Jgm(82l_igI;8m57}hW8HPH@=gKm@gka@bVG}`1pHB(4dO?xO>G3SO&ZB z*7^`!Yz*^pp{xx>*{67e*Qr19w?E+jIb#)!typwJf`9~(fPi2FXDndj?!Trf;K~bl zecBsY*)mx>nps?_+c=`DVF-45anssOqtGy7Ko4}X^%XIGrU&D)`d*U6Rm5296e67{ zkDftg^mQ=>kRAU5@)#=M{ZWsh>YC-GI3K{LEG{ewjRKE>GeTy4%PD|i0Dil(|i1kgKY zMD|~~c*M1m=BlTf)++27kG~o^@oL0;FN6$8dtS+U)kmd8Jl>0DAi< z^M;M_(~6;uqAoJ|n4F%DLc!0CKW&bJ+{vB$S7X#P|HNw;E zi%@oSB|?po1`qyXkQ5ecqIcIx92{FJM%-tX_~%1Gwpfh9=C~=`v$pwn51tiV3Qlm< zs6IuknFY98QU^6Br_$wr(;l!Ew0>XTG}*S@wtm0OU_$;*X^-9-_}gz|{OW)0ksZ76 z_SvtW***CNti9i>?p-bYzQ3`2{T1o;)2i5BZ)IR?K5B5w;9x+GMD~o76&^>7QzVOc zQ`{+an*Gn0&u-f1RC8~_}3)Zb-nQZ%Fp5fUiTr56a-bS5GDjmK}>1-F? zFQ{^fFVVVhuJ+mCkeWWrjNjbzBH4wvJr!)YuG+9>CTBF?yiVmfmKU?0_I3DfG@hTh zk72@|pOvrHmvGPXUB2jIcSYPwbEcSk0=@t4O7_OxYx?NV^oGynx5KurKlUZ-c_E{e$MyIdg0scOVZMM zWv1F@ews38_p)<)s;|9iI#j*p=(b6hjH)Y3ecwJ({ZVyS?qKx$&+Df=@dz$H{pwn~ zT-}q4TVKmn*F0Xfd|utNo6qOfFDyQNZF*c?>h0C*_x`+g+xlMR_Uz~D`t9z0K6$V9 zxBcHYrw_+}m9eZ^^S$E!%lvaSzwdtkn_h2G|M1cJ{jtCP_S^qoRBCvDcZyv`>UO|D15k{CA=()@7@V3{5+71okXjrIYMr4Q zP^sqa@B^sy9&j9)8>SmbH!vOp8UbnJgPZo~8avv!gEN6jE&??QqG)^$6oJ=0$@xX# zk!W=7UvA$Pe+|^0!@|HIfTFz~C<51>SWtk?)h~T-FD(SBGZjO(d#*obTZ zwr(%FS?GO7gjrrq$Y!DTB+*Sl?`k1TNonCgNuByGels-a2VS#~x!GQ^+@n}`56vicigMp2~fPrCxT6HA=cFtyY&W36p z_GV7{%x8ctdWp;_?24QMi zGQ8hSbAz+)*7WlmVg#Rw=ja3^X+3~N(^ST2V2}(2!>I_3L5Ei7&+z1SP}r-f9F5TI zGJM_}Q*wQo@O2}9knoerdRbzo*2uI@M`-is{TgO;t}gw>s3Cs9sn&Ipq2AF#-Jx!^ zw-CjB2oZqx{fBK2v)i~P#}Q0jY2>x4&IX26@Q)LKbr5yU>>*^9=9`^B&he@S!{-hi z?PxV0%cDRUe9t=xl#Jt^06Lm_GW|rDH1>{|O7Eb%{<}N6!Wc^7how-1ySZ6;+X;2Q z5!5eS>LRr&?P4*>qa1uZZw^NiRG{-Oh3_ZKKn`=6j!@a~cP ztL|i;JB#*QRs-@(Hvm)m zM-@G&KZ@Ris<#0F28IawG;}nxabjWqeXWe2`~b;@=65D6H9}Qv*Q734uxucCC|@Al z^L661$POq|w9?h7EUB-B(@T7CwrgU(ke*Ml#86}tsA;S{ACSA)tF=jY(a>(V2A2%q z;ZNqSwiBdnlNND9fg)-~eaCICK`P9!fjOv4SARMqRwXWJNN+2HQW8{}fPRhWOsnbQ z!!!$k0Z7X=afKIGw*Ihj3%?g>a+Wdj6FrKxM^{Z%FlEE#EkKcVz`T}_J(!Lzi*3!o zX?tu}`m9@i!F(7fp{Q!$PI(P8*?}>@YtbNBJkzrKexHewVp7v{%G_lmP}$dhn)nxM zZOWNWW6Y8d+~|xh_t`%a6#4~G)e>}@&wvty4oZ+Iz(mOrVDH3Y0&q0@eUoR#k1O=E zqDkF(OU=n^gk7P*Ny*ZKABBIA!SY{fz2)SRw;9jkp4{9mu+_<7a3$Up7{0O>Ugv3S zhBOI|4<-qTJM%XUN7TlCT{Xs8d&-ic=c`N#>O1RsoV}#B;5QlTiBQHzLa51tluc*T zms<$srx>W?;+*?3MV8s3Qj~iru8JP8z@)&Djmh0!wp?F{M9DpRp*+vN0Uo7Um%eVa?r2$ zgGMU*8D_LKFzkdUt`E>isNfu;%Bd=DEgI}w;U`Xx4x7`ikox6F%^^rA$?tM!PD(07 z19IWkbX_+91BJE2b8|auOiomOBF?5Q95t9PP2;>YDW8BD>$xbyZbB9z@R^Bs*B6#- z>4~yf#bOyyvTZWo8M`L)4(om2-oL(EB4oJdxq!kuvOqDQn{|_TeeSy?_-9?NS66Y5 zL3Oc#0s}+)dtE-++y7A(wQ;*uRM1}J^!a7$P*WxV)+1+f{4b^Mz6jOMv9@(*!P zt!z6$pNCLvzAr2{VFL96PYq*Fi(=-m4GN#tvBw|sMwA@Z5gMz*hxb<}56GRM%AiZJ zH3rf39So<(D(7LC;GI)7m8!;3M{k#=$tGKw_Brxy;WagTCK+T~DbTzOIg zHlxn-iO*10h+fV&b*4Yjb1ZCiaRp~7M30FX?JsAM?gtQl;F=U{i2}dfNZXfZp3<&@ z;f6OH*ORK&m1>4wMxDfVYl#i#@Nq%DNYF-(ey2#X`UL2`M$gvrUvr3Uxvei1h(-B$ zivsm1AingBBT2s^0jon4o6wYs>03JnxcbGzi4l{KF1&1({IQ5DjHA(UUO=0fPzMspi3f#G;PAf^HOcHWxm+E7f)|uoZj{ zKm(m@qK4UI?FQ)@i~0@!xh2X{LL?tf8H3EC*T;FpqoMm z@6R8s8^F<&1@x~zozweBBZCgMAH`?olq5r)&IT2#J?41hMZJD_XOA>u0bLnGl zS!^vbFCw=^`d*XrtJiSPDF#>6rQ=lT1K8~naQ`Awh{I-T)2H%-g+!ro!0?7Mh9}CN z7TVC&($mXPr|&-B2MPrxI^L*GCiRW>LDU0VNhmw|u|`NZJt^BLljd)2(E*~{0U9#$ z^j`{<$Y(Jb%S27z^>cm>rtD?R_@ZB)453;mx(>ZVP_PDGg%KlBj<&&N@yQ*=XXp;^ z&79I|>=P?yoj86QdkD7U`kb)Qf=qp4k{kee!5g(cY+d^DbIUi?e^p3!Br0jVW?5VR(AIjXA{Gd>cIKrAee;EIi|qN3scb)h6v2Z~=z zuHvJV`Z9+vo&&yc9|eqY_YND@>Cqb7JCd$jkD_-3Jie*6A~G{`u$;H-4T|2K!vUh_ zSQWkRcPmR%;#wJ%ka0`;W{NWq!@gtS`418~k*`Bb7OTZpdMvJ+P)#1=3)nV@nf)q) zK=G>KMZGmymte6EOLWvwF|8(qQ4I5`_PIYpsPfh1`yi=9Mp#7qc# z>nvaEYJ9-)@|{&SYz9GBu&E@GRNhdNVvm3t`s`Bb7o+8uG!<0OO*>V^QV9&9LypR@FZ1EwN-$H^*q;u%kL-&@YX2k2#GsGxW69Di_h8+j1EU;2MFE-j&P5FzWQO0mD1f)7!d(6Ee^20G&MCHz=A86`p9z3rNr!C_shpFx5ZZ z$iSFFo8kMkIG<4hVTNF?p2|p1rrYLq9t&>gVV?RSxIUGn{eYYx<@8@;ww1lAva#KQ zkT8ua$yiZ`)BcRS@Ao;bR`50dSl^kboTu;kqUeL?4SkmOdV$l@AzBZ8 zR`gf2q6ML-jiZl;hGKUkPc3?$!y1-LQpJYbThuc9^j)>qa*IEFcpRmpIWf-j9{;bx?N0H8K0s8xmSlFzmO{AKXDIN|P8p&?!xZ>s-cbWp+FQkXvK`iHY{ zrdzkd{KMWR>&nonGq(Wps&;&#uAj5c=P<3 z0CI@I*eBP8UJLO)@#ulb^RMAzoRRAZ9=v!Z&C-j% zeC-fX-mtZvA^$m-+4&J*u!9!4anO852wLR+n9Kg$qWyhF`*XXND5e<5iudL06`?OU z0jtO^;@z)2>UMhR>O${e>6Q3fiM>tTbyG%(9sk`sZl7!#+u6xm)rAcKJcfo30lbkA zs93YXN@f^>7N{x5J@qo`V%C+U@ccEs+?`8;;_@>mwMm~V4n8ExKO@w(QVrB0P&Ve; ziMC=_MHL)MtHyt+}I<+8KFdP`(I&8c@wp_nre`B@ViNCUaRYw!~stQcxNwI2$5ak$YR1BJ|Zn^ z<#EmT$3lJQUoreiX>4(vR!TJXjn+Q$u3XPlL-9QXerNe-uA|Cv1R_|#zzo!(!BGE| zYbR$98#AZhs|M&%BwO_hiz;S*zlAcSiCFYC$G+|+A|J$j@e(|zTtk3 zIWhF5A`>N1S5epaP!?Y&(3gdyM7O7znV@F&@{;Y_VRHsFB#BOcIbG-J??&!w)jiXA zDxN&OY6k#c@Vo^c_D|h)PP39%U+i8^(?u4C0k01+Zx2t4XVJwX&Bwd?_YdnA?J4u^ zPY1I>I7eH-`X~US%51f2Fb&3ieLCbBkSI-E$el>p5|A_J>9}Z-t4si{pfe?yI1=+?(a^@M?M?gg%mIL0~>{j z`z?UWS;Jo1cCL$`z9@XkNtryV5jhpfe8mx#b9{fHv^^XWcyGwE`UDc?w&}ZZf;v8Y z^0@B9`|U+Ud{XE{a|5)Kwe{kc_9X@iQ~FZ-4!$AYw$EOi9=nb2TGc<`eL#kFUk)zXPxpYq>;u*h=06H>xzVLZcTqTt6(z$qad9197NQ%e!2D7|&t#!3GSBxhO zviaJ!ulaQ8>7I4H+(JYKRfG$ z0MXN^@SWS?JI^=p+fzh<9uaEo-U26>WYuA@*EOing(0UH{L>-zs3Fx=A}=+DKH4Ha zyumCT?J;J-xV|s12mR*0a4*;EFV1Ot&o#j1j!i+KO1HDqkQAQNEFQ(b@(_0U}@N z#o$|eC?WN&v8;yyOFmvVfd)d_4qV;W-4Dp0%2BsVP}x*S`qW8`D})CmeM0HHLuY|5 zu3gu|CzgXW2nK2oVF9yhz`QMrq-@$2$vqkbVkJ;hFN2734FL3QpYdhD>fM|E{e;XC ztgxNJs*4!}K7COe<;mtthajT}NpkhH+sv9ytO|QyNb_*QQYFf~-A(_`noXZ7EE8=j zzH#~AeU)~Cf!S88-t1F07Gfo~o9RSVNkC$o?CcMdPZvbR?vCuhPL z%F>Pc^K<9@`&U;#Py3xRI2nRl2@5r&-un05%ZM|sXw?G|m%r`ZQ~92gEGniqr$ksm zeG9c_2(KxV;uS@Y1D7QJRKVWV^U~gPK|v6)_NHa#?f;Zr5(&_ZVac@Yh;0rJUew}u z#eF(?J^yLTkU>239o-w7>=y33m^YCjt!!i=1#g1znR&VT$eQG{8d=N-8D*Ig43$KV z@*u`NEC#ZVOp71j;uYGuD||NzS?)E)I)^_(Mf<2efJK|B(0} zs94X-Dx826(5Sx)b0q-jQ9%QF#cKG$M2g7tUlN%};b=S%;r>uPm*Ccj*71APznco2 zBpRk%+q*CgviK!+=1IGVHC%ko9>9IIeRW6{+LL-dAV~SA&?Lr|v^2SQZThxi>Mq$j z5lU*!?K`wD50BftGDZq9>n1;+4X!`kxU}lq4SI<^_b*Pk=6+ssztX)Qn$51>cCY?9 zFRXa5w?CSZ-Y(VmDsd1Fc*K5NMS$BD!$XCcyE{O;cd@Hc?{uH@^#C@fEAUgRj zC-M6wHE*}Go9gE&lu?|}KNT^|Yb)4-|!-e#Km)C*wBE^Go_6=v^unyU=bQRE6 zZRK>fJdk&z|*BR;*hSI1p%z16* zx#qzeO2pX&MsP)A)5^yThGh%=Jv|AEjB$AC{?=iqst$%$Buz(jz0v))_^6*BnsTd5 zUHX%-G6%N#!vcR&M*AhK$)q<4n;ai;q+j{2p68%121MF^F{bRp5b6$Y|b{V>g9#MJ)2|+aED~yy4l1KJn=k z6^uQ2hG=6>wv!fPq7VCgF+T0@K2x3ZDgKeQdn#DC`Eh*^P+GRFA#nfGAsuU$qS#?v;D=v19 zx<`vJl;LK3bIR}y*@H^l6PM9iP=3j&lM{-R{5bV^_H7D^Oe8^DhuUeDO6$i!z_+UT zr)SLWZf|A33oe~!b;*YY(g$R~6Lt*_!%aL)(+6Z5vUf{IY5oM|$sf~ZnYoIiOcmPQ z_JhQKT^(h02u*3S)wl?%ysIHb0dtx@e*PKT3w@!RUo<_cQrJyS=$2kSBha=dv4m(BlS2UQT5G(OMR<}>yF7e|cgjqn-8>3A_WY_rd5Md=f@<_BPe=UcAubWErhF;j^ zvNKM=wOCS3kBwDnCg7K|F|Zd?;*QQVNTR0rQim$EDf05JSz<~AaNXCc>^Praq<_m! zICeR=)Iw|#h&RB`J5p3KVk!971M7$%=)h!@A&wOj)b*!V+5k4r?n<3Wf5=j zv)7x}jQDATk)i~>*b)Y&4KgKWqCC-0jWAGi(ckH}mE$y^yO?M(X3<&2loKeHPLGY!2T$5nUEt17BSb*hl}SqY(o~w zPO%M?bdFL5d{n(EO37=4Z#6huN%nUY3_o6IfY^l#Zdb~5M_IR(-1DO-9al5V9)+3J z8igcr)uTIcW5#pwE4-PsH9rKxKx>BqbNG>KGmVLr;{2)#^%lbAs7L_Vg}k z<$*&>Z>pq%D^p>XVXIKq+v>=^xGY2The}@Yx}6e4jS64u|&0?4p>}+ia)EZ zNPGWfM7@2~D4y}EB<)HplK#v@PYBynf`LY_lnE@Yb+*!%b2!@$pfsO=JTuES@v@4R z!^T;U7YT#%o+ITZwRNKMRKwc`TfmWlK@Pj1q%5X$8CJPeS<&IPs9&ww!HjEV#LBc3 zx?}HhGvZ_aWe39d$q8-#5xe&(q+~Y@EOgu?sYMQ9qC64lDtQbusZdgxlGOvl*sSXD zcHX@nkIH*@^mt6jKln{1Kuses|~8fqH@W@;LKS2@EnP$5Hg;|+*{4Vg3Gb0 zNm8|2kk4UG-~Fq5Dy6*`HNCs)@twgg2kO=#UD4x% z{mZxF$!&LpD6eVfLByX^x8EV|smeJM*Or!{HAa)vE3;y=AY9XJZBOGqK4>bp>SeXR z>YhGINRy!AG6@wRkFp)R%4(cssqY#gpB;7e!Q>GKaL$>0y$$KEL_J7~z}~mOM>MR? z^~tWrJhf^!Aig}Oe!iMDC&27HytBF??fRNYm2Z8p5<#SACR=*&@_Md$HV+wWzBv`| zs6Z##PWWv|_*~Md0_Kp-oLUF-eg!GMO=`?9XsIE66}ki5))hBasw9f>1)&>Sx?6aMQJt6yPS@NnHjA$Ao7gUJo$%gtFtS@o{TQCJ4$-*h zFb#YLqByxcb&R<@COu&!LFYfX1&VrQZ>Rv#j(i-jNBQhwQxrq1K>;μ0^#@{pycpa2K6}@RY5S5*b;!Mu*1pb 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ⅷKt!{#W%$KbRYe3I@+uiJ=YU+- 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 ZJ02bCX;K0n^uw!|K{kMUq-6g1_dh?bMT!6b literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/common/ExternalDataSources.scala b/src/scala/com/twitter/simclusters_v2/scio/common/ExternalDataSources.scala deleted file mode 100644 index ed9e1aa2d..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/common/ExternalDataSources.scala +++ /dev/null @@ -1,301 +0,0 @@ -package com.twitter.simclusters_v2.scio.common - -import com.spotify.scio.ScioContext -import com.spotify.scio.values.SCollection -import com.twitter.beam.io.dal.DAL -import com.twitter.common.util.Clock -import com.twitter.common_header.thriftscala.CommonHeader -import com.twitter.common_header.thriftscala.IdType -import com.twitter.common_header.thriftscala.VersionedCommonHeader -import com.twitter.frigate.data_pipeline.magicrecs.magicrecs_notifications_lite.thriftscala.MagicRecsNotificationLite -import com.twitter.frigate.data_pipeline.scalding.magicrecs.magicrecs_notification_lite.MagicrecsNotificationLite1DayLagScalaDataset -import com.twitter.iesource.thriftscala.InteractionEvent -import com.twitter.iesource.thriftscala.InteractionTargetType -import com.twitter.interests_ds.jobs.interests_service.UserTopicRelationSnapshotScalaDataset -import com.twitter.interests.thriftscala.InterestRelationType -import com.twitter.interests.thriftscala.UserInterestsRelationSnapshot -import com.twitter.penguin.scalding.datasets.PenguinUserLanguagesScalaDataset -import com.twitter.search.adaptive.scribing.thriftscala.AdaptiveSearchScribeLog -import com.twitter.simclusters_v2.hdfs_sources.UserUserFavGraphScalaDataset -import com.twitter.simclusters_v2.scalding.embedding.common.ExternalDataSources.ValidFlockEdgeStateId -import com.twitter.simclusters_v2.scalding.embedding.common.ExternalDataSources.getStandardLanguageCode -import com.twitter.twadoop.user.gen.thriftscala.CombinedUser -import flockdb_tools.datasets.flock.FlockBlocksEdgesScalaDataset -import flockdb_tools.datasets.flock.FlockFollowsEdgesScalaDataset -import flockdb_tools.datasets.flock.FlockReportAsAbuseEdgesScalaDataset -import flockdb_tools.datasets.flock.FlockReportAsSpamEdgesScalaDataset -import org.joda.time.Interval -import com.twitter.simclusters_v2.thriftscala.EdgeWithDecayedWeights -import com.twitter.usersource.snapshot.combined.UsersourceScalaDataset -import com.twitter.usersource.snapshot.flat.UsersourceFlatScalaDataset -import com.twitter.util.Duration -import twadoop_config.configuration.log_categories.group.search.AdaptiveSearchScalaDataset - -object ExternalDataSources { - def userSource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[CombinedUser] = { - sc.customInput( - "ReadUserSource", - DAL - .readMostRecentSnapshotNoOlderThan( - UsersourceScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod - ) - ) - } - - def userCountrySource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[(Long, String)] = { - sc.customInput( - "ReadUserCountrySource", - DAL - .readMostRecentSnapshotNoOlderThan( - UsersourceFlatScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod, - ) - ).flatMap { flatUser => - for { - userId <- flatUser.id - country <- flatUser.accountCountryCode - } yield { - (userId, country.toUpperCase) - } - }.distinct - } - - def userUserFavSource( - noOlderThan: Duration = Duration.fromDays(14) - )( - implicit sc: ScioContext - ): SCollection[EdgeWithDecayedWeights] = { - sc.customInput( - "ReadUserUserFavSource", - DAL - .readMostRecentSnapshotNoOlderThan( - UserUserFavGraphScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod - ) - ) - } - - def inferredUserConsumedLanguageSource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[(Long, Seq[(String, Double)])] = { - sc.customInput( - "ReadInferredUserConsumedLanguageSource", - DAL - .readMostRecentSnapshotNoOlderThan( - PenguinUserLanguagesScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod - ) - ).map { kv => - val consumed = kv.value.consumed - .collect { - case scoredString if scoredString.weight > 0.001 => //throw away 5% outliers - (getStandardLanguageCode(scoredString.item), scoredString.weight) - }.collect { - case (Some(language), score) => (language, score) - } - (kv.key, consumed) - } - } - - def flockBlockSource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[(Long, Long)] = { - sc.customInput( - "ReadFlockBlock", - DAL.readMostRecentSnapshotNoOlderThan( - FlockBlocksEdgesScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod)) - .collect { - case edge if edge.state == ValidFlockEdgeStateId => - (edge.sourceId, edge.destinationId) - } - } - - def flockFollowSource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[(Long, Long)] = { - sc.customInput( - "ReadFlockFollow", - DAL - .readMostRecentSnapshotNoOlderThan( - FlockFollowsEdgesScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod)) - .collect { - case edge if edge.state == ValidFlockEdgeStateId => - (edge.sourceId, edge.destinationId) - } - } - - def flockReportAsAbuseSource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[(Long, Long)] = { - sc.customInput( - "ReadFlockReportAsAbuseJava", - DAL - .readMostRecentSnapshotNoOlderThan( - FlockReportAsAbuseEdgesScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod) - ) - .collect { - case edge if edge.state == ValidFlockEdgeStateId => - (edge.sourceId, edge.destinationId) - } - } - - def flockReportAsSpamSource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[(Long, Long)] = { - sc.customInput( - "ReadFlockReportAsSpam", - DAL - .readMostRecentSnapshotNoOlderThan( - FlockReportAsSpamEdgesScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod)) - .collect { - case edge if edge.state == ValidFlockEdgeStateId => - (edge.sourceId, edge.destinationId) - } - } - - def ieSourceTweetEngagementsSource( - interval: Interval - )( - implicit sc: ScioContext - ): SCollection[InteractionEvent] = { - sc.customInput( - "ReadIeSourceTweetEngagementsSource", - DAL - .read( - com.twitter.iesource.processing.events.batch.ServerEngagementsScalaDataset, - interval, - DAL.Environment.Prod, - ) - ).filter { event => - // filter out logged out users because their favorites are less reliable - event.engagingUserId > 0L && event.targetType == InteractionTargetType.Tweet - } - } - - def topicFollowGraphSource( - noOlderThan: Duration = Duration.fromDays(7) - )( - implicit sc: ScioContext - ): SCollection[(Long, Long)] = { - // The implementation here is slightly different than the topicFollowGraphSource function in - // src/scala/com/twitter/simclusters_v2/scalding/embedding/common/ExternalDataSources.scala - // We don't do an additional hashJoin on uttFollowableEntitiesSource. - sc.customInput( - "ReadTopicFollowGraphSource", - DAL - .readMostRecentSnapshotNoOlderThan( - UserTopicRelationSnapshotScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod - ) - ).collect { - case userInterestsRelationSnapshot: UserInterestsRelationSnapshot - if userInterestsRelationSnapshot.interestType == "UTT" && - userInterestsRelationSnapshot.relation == InterestRelationType.Followed => - (userInterestsRelationSnapshot.interestId, userInterestsRelationSnapshot.userId) - } - } - - def magicRecsNotficationOpenOrClickEventsSource( - interval: Interval - )( - implicit sc: ScioContext - ): SCollection[MagicRecsNotificationLite] = { - sc.customInput( - "ReadMagicRecsNotficationOpenOrClickEventsSource", - DAL - .read(MagicrecsNotificationLite1DayLagScalaDataset, interval, DAL.Environment.Prod)) - .filter { entry => - // keep entries with a valid userId and tweetId, opened or clicked timestamp defined - val userIdExists = entry.targetUserId.isDefined - val tweetIdExists = entry.tweetId.isDefined - val openOrClickExists = - entry.openTimestampMs.isDefined || entry.ntabClickTimestampMs.isDefined - userIdExists && tweetIdExists && openOrClickExists - } - } - - def adaptiveSearchScribeLogsSource( - interval: Interval - )( - implicit sc: ScioContext - ): SCollection[(Long, String)] = { - sc.customInput( - "ReadAdaptiveSearchScribeLogsSource", - DAL - .read(AdaptiveSearchScalaDataset, interval, DAL.Environment.Prod)) - .flatMap({ scribeLog: AdaptiveSearchScribeLog => - for { - userId <- userIdFromBlenderAdaptiveScribeLog(scribeLog) - // filter out logged out search queries - if userId != 0 - queryString <- scribeLog.requestLog.flatMap(_.request).flatMap(_.rawQuery) - } yield { - (userId, Set(queryString)) - } - }) - // if a user searches for the same query multiple times, there could be duplicates. - // De-dup them to get the distinct queries searched by a user - .sumByKey - .flatMap { - case (userId, distinctQuerySet) => - distinctQuerySet.map { query => - (userId, query) - } - } - } - - private def userIdFromBlenderAdaptiveScribeLog( - blenderAdaptiveLog: AdaptiveSearchScribeLog - ): Option[Long] = { - blenderAdaptiveLog.versionedCommonHeader match { - case VersionedCommonHeader.CommonHeader(CommonHeader.ServerHeader(serverHeader)) => - serverHeader.requestInfo match { - case Some(requestInfo) => requestInfo.ids.get(IdType.UserId).map(_.toLong) - case _ => None - } - case _ => None - } - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioApp.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioApp.docx new file mode 100644 index 0000000000000000000000000000000000000000..d7546e65def95b47eade7104f481354bd185ffd1 GIT binary patch literal 37143 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

    ZNV#$e%yRtQAL23mTtO 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 F{{xP^%(wsm literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioBaseApp.scala b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioBaseApp.scala deleted file mode 100644 index 18325e2fc..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraphScioBaseApp.scala +++ /dev/null @@ -1,574 +0,0 @@ -package com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph - -import com.spotify.scio.ScioContext -import com.spotify.scio.coders.Coder -import com.spotify.scio.values.SCollection -import com.twitter.beam.io.dal.DAL -import com.twitter.beam.io.fs.multiformat.DiskFormat -import com.twitter.beam.io.fs.multiformat.PathLayout -import com.twitter.beam.job.DateRangeOptions -import com.twitter.dal.client.dataset.KeyValDALDataset -import com.twitter.dal.client.dataset.SnapshotDALDataset -import com.twitter.frigate.data_pipeline.magicrecs.magicrecs_notifications_lite.thriftscala.MagicRecsNotificationLite -import com.twitter.iesource.thriftscala.InteractionEvent -import com.twitter.iesource.thriftscala.InteractionType -import com.twitter.iesource.thriftscala.ReferenceTweet -import com.twitter.scalding_internal.multiformat.format.keyval.KeyVal -import com.twitter.scio_internal.coders.ThriftStructLazyBinaryScroogeCoder -import com.twitter.scio_internal.job.ScioBeamJob -import com.twitter.scrooge.ThriftStruct -import com.twitter.simclusters_v2.common.Country -import com.twitter.simclusters_v2.common.Language -import com.twitter.simclusters_v2.common.TopicId -import com.twitter.simclusters_v2.common.TweetId -import com.twitter.simclusters_v2.common.UserId -import com.twitter.simclusters_v2.hdfs_sources.MultiTypeGraphForTopKRightNodesThriftScioScalaDataset -import com.twitter.simclusters_v2.hdfs_sources.TopKRightNounsScioScalaDataset -import com.twitter.simclusters_v2.hdfs_sources.TruncatedMultiTypeGraphScioScalaDataset -import com.twitter.simclusters_v2.scio.common.ExternalDataSources -import com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.Config.GlobalDefaultMinFrequencyOfRightNodeType -import com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.Config.HalfLifeInDaysForFavScore -import com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.Config.NumTopNounsForUnknownRightNodeType -import com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.Config.SampledEmployeeIds -import com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.Config.TopKConfig -import com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.Config.TopKRightNounsForMHDump -import com.twitter.simclusters_v2.scio.multi_type_graph.common.MultiTypeGraphUtil -import com.twitter.simclusters_v2.thriftscala.EdgeWithDecayedWeights -import com.twitter.simclusters_v2.thriftscala.LeftNode -import com.twitter.simclusters_v2.thriftscala.MultiTypeGraphEdge -import com.twitter.simclusters_v2.thriftscala.Noun -import com.twitter.simclusters_v2.thriftscala.NounWithFrequency -import com.twitter.simclusters_v2.thriftscala.NounWithFrequencyList -import com.twitter.simclusters_v2.thriftscala.RightNode -import com.twitter.simclusters_v2.thriftscala.RightNodeType -import com.twitter.simclusters_v2.thriftscala.RightNodeTypeStruct -import com.twitter.simclusters_v2.thriftscala.RightNodeWithEdgeWeight -import com.twitter.simclusters_v2.thriftscala.RightNodeWithEdgeWeightList -import com.twitter.twadoop.user.gen.thriftscala.CombinedUser -import com.twitter.util.Duration -import java.time.Instant -import org.joda.time.Interval - -/** - * Scio version of - * src/scala/com/twitter/simclusters_v2/scalding/multi_type_graph/assemble_multi_type_graph/AssembleMultiTypeGraph.scala - */ -trait AssembleMultiTypeGraphScioBaseApp extends ScioBeamJob[DateRangeOptions] { - // Provides an implicit binary thrift scrooge coder by default. - override implicit def scroogeCoder[T <: ThriftStruct: Manifest]: Coder[T] = - ThriftStructLazyBinaryScroogeCoder.scroogeCoder - - val isAdhoc: Boolean - val rootMHPath: String - val rootThriftPath: String - - val truncatedMultiTypeGraphMHOutputDir: String = - Config.truncatedMultiTypeGraphMHOutputDir - val truncatedMultiTypeGraphThriftOutputDir: String = - Config.truncatedMultiTypeGraphThriftOutputDir - val topKRightNounsMHOutputDir: String = Config.topKRightNounsMHOutputDir - val topKRightNounsOutputDir: String = Config.topKRightNounsOutputDir - - val fullMultiTypeGraphThriftOutputDir: String = - Config.fullMultiTypeGraphThriftOutputDir - val truncatedMultiTypeGraphKeyValDataset: KeyValDALDataset[ - KeyVal[LeftNode, RightNodeWithEdgeWeightList] - ] = TruncatedMultiTypeGraphScioScalaDataset - val topKRightNounsKeyValDataset: KeyValDALDataset[ - KeyVal[RightNodeTypeStruct, NounWithFrequencyList] - ] = TopKRightNounsScioScalaDataset - val topKRightNounsMHKeyValDataset: KeyValDALDataset[ - KeyVal[RightNodeTypeStruct, NounWithFrequencyList] - ] = TopKRightNounsMhScioScalaDataset - val fullMultiTypeGraphSnapshotDataset: SnapshotDALDataset[MultiTypeGraphEdge] = - FullMultiTypeGraphScioScalaDataset - val multiTypeGraphTopKForRightNodesSnapshotDataset: SnapshotDALDataset[ - MultiTypeGraphEdge - ] = - MultiTypeGraphForTopKRightNodesThriftScioScalaDataset - - def getValidUsers( - input: SCollection[CombinedUser] - ): SCollection[UserId] = { - input - .flatMap { u => - for { - user <- u.user - if user.id != 0 - safety <- user.safety - if !(safety.suspended || safety.deactivated) - } yield { - user.id - } - } - } - - def filterInvalidUsers( - flockEdges: SCollection[(UserId, UserId)], - validUsers: SCollection[UserId] - ): SCollection[(UserId, UserId)] = { - val validUsersWithValues = validUsers.map(userId => (userId, ())) - flockEdges - .join(validUsersWithValues) - .map { - case (srcId, (destId, _)) => - (destId, srcId) - } - .join(validUsersWithValues) - .map { - case (destId, (srcId, _)) => - (srcId, destId) - } - } - - def getFavEdges( - input: SCollection[EdgeWithDecayedWeights], - halfLifeInDaysForFavScore: Int, - ): SCollection[(Long, Long, Double)] = { - input - .flatMap { edge => - if (edge.weights.halfLifeInDaysToDecayedSums.contains(halfLifeInDaysForFavScore)) { - Some( - ( - edge.sourceId, - edge.destinationId, - edge.weights.halfLifeInDaysToDecayedSums(halfLifeInDaysForFavScore))) - } else { - None - } - } - } - - def leftRightTuple( - leftNodeUserId: UserId, - rightNodeType: RightNodeType, - rightNoun: Noun, - weight: Double = 1.0 - ): (LeftNode, RightNodeWithEdgeWeight) = { - ( - LeftNode.UserId(leftNodeUserId), - RightNodeWithEdgeWeight( - rightNode = RightNode(rightNodeType = rightNodeType, noun = rightNoun), - weight = weight)) - } - - def getUserFavGraph( - userUserFavEdges: SCollection[(UserId, UserId, Double)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userUserFavEdges.map { - case (srcId, destId, edgeWt) => - leftRightTuple(srcId, RightNodeType.FavUser, Noun.UserId(destId), edgeWt) - } - } - - def getUserFollowGraph( - userUserFollowEdges: SCollection[(UserId, UserId)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userUserFollowEdges.map { - case (srcId, destId) => - leftRightTuple(srcId, RightNodeType.FollowUser, Noun.UserId(destId), 1.0) - } - } - - def getUserBlockGraph( - userUserBlockEdges: SCollection[(UserId, UserId)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userUserBlockEdges.map { - case (srcId, destId) => - leftRightTuple(srcId, RightNodeType.BlockUser, Noun.UserId(destId), 1.0) - } - } - - def getUserAbuseReportGraph( - userUserAbuseReportEdges: SCollection[(UserId, UserId)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userUserAbuseReportEdges.map { - case (srcId, destId) => - leftRightTuple(srcId, RightNodeType.AbuseReportUser, Noun.UserId(destId), 1.0) - } - } - - def getUserSpamReportGraph( - userUserSpamReportEdges: SCollection[(UserId, UserId)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userUserSpamReportEdges.map { - case (srcId, destId) => - leftRightTuple(srcId, RightNodeType.SpamReportUser, Noun.UserId(destId), 1.0) - } - } - - def getUserTopicFollowGraph( - topicUserFollowedByEdges: SCollection[(TopicId, UserId)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - topicUserFollowedByEdges.map { - case (topicId, userId) => - leftRightTuple(userId, RightNodeType.FollowTopic, Noun.TopicId(topicId), 1.0) - } - } - - def getUserSignUpCountryGraph( - userSignUpCountryEdges: SCollection[(UserId, Country)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userSignUpCountryEdges.map { - case (userId, country) => - leftRightTuple(userId, RightNodeType.SignUpCountry, Noun.Country(country), 1.0) - } - } - - def getMagicRecsNotifOpenOrClickTweetsGraph( - userMRNotifOpenOrClickEvents: SCollection[MagicRecsNotificationLite] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userMRNotifOpenOrClickEvents.flatMap { entry => - for { - userId <- entry.targetUserId - tweetId <- entry.tweetId - } yield { - leftRightTuple(userId, RightNodeType.NotifOpenOrClickTweet, Noun.TweetId(tweetId), 1.0) - } - } - } - - def getUserConsumedLanguagesGraph( - userConsumedLanguageEdges: SCollection[(UserId, Seq[(Language, Double)])] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userConsumedLanguageEdges.flatMap { - case (userId, langWithWeights) => - langWithWeights.map { - case (lang, weight) => - leftRightTuple(userId, RightNodeType.ConsumedLanguage, Noun.Language(lang), 1.0) - } - } - } - - def getSearchGraph( - userSearchQueryEdges: SCollection[(UserId, String)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - userSearchQueryEdges.map { - case (userId, query) => - leftRightTuple(userId, RightNodeType.SearchQuery, Noun.Query(query), 1.0) - } - } - - def getUserTweetInteractionGraph( - tweetInteractionEvents: SCollection[InteractionEvent], - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - val userTweetInteractionsByType: SCollection[((UserId, TweetId), RightNodeType)] = - tweetInteractionEvents - .flatMap { event => - val referenceTweet: Option[ReferenceTweet] = event.referenceTweet - val targetId: Long = event.targetId - val userId: Long = event.engagingUserId - - // To find the id of the tweet that was interacted with - // For likes, this is the targetId; for retweet or reply, it is the referenceTweet's id - // One thing to note is that for likes, referenceTweet is empty - val (tweetIdOpt, rightNodeTypeOpt) = { - event.interactionType match { - case Some(InteractionType.Favorite) => - // Only allow favorites on original tweets, not retweets, to avoid double-counting - // because we have retweet-type tweets in the data source as well - ( - if (referenceTweet.isEmpty) { - Some(targetId) - } else None, - Some(RightNodeType.FavTweet)) - case Some(InteractionType.Reply) => - (referenceTweet.map(_.tweetId), Some(RightNodeType.ReplyTweet)) - case Some(InteractionType.Retweet) => - (referenceTweet.map(_.tweetId), Some(RightNodeType.RetweetTweet)) - case _ => (None, None) - } - } - for { - tweetId <- tweetIdOpt - rightNodeType <- rightNodeTypeOpt - } yield { - ((userId, tweetId), rightNodeType) - } - } - - userTweetInteractionsByType - .mapValues(Set(_)) - .sumByKey - .flatMap { - case ((userId, tweetId), rightNodeTypeSet) => - rightNodeTypeSet.map { rightNodeType => - leftRightTuple(userId, rightNodeType, Noun.TweetId(tweetId), 1.0) - } - } - } - - def getTopKRightNounsWithFrequencies( - fullGraph: SCollection[(LeftNode, RightNodeWithEdgeWeight)], - topKConfig: Map[RightNodeType, Int], - minFrequency: Int, - ): SCollection[(RightNodeType, Seq[(Noun, Double)])] = { - val maxAcrossRightNounType: Int = topKConfig.valuesIterator.max - - fullGraph - .map { - case (leftNode, rightNodeWithWeight) => - (rightNodeWithWeight.rightNode, 1.0) - } - .sumByKey - .filter(_._2 >= minFrequency) - .map { - case (rightNode, freq) => - (rightNode.rightNodeType, (rightNode.noun, freq)) - } - .topByKey(maxAcrossRightNounType)(Ordering.by(_._2)) - .map { - case (rightNodeType, nounsListWithFreq) => - val truncatedList = nounsListWithFreq.toSeq - .sortBy(-_._2) - .take(topKConfig.getOrElse(rightNodeType, NumTopNounsForUnknownRightNodeType)) - (rightNodeType, truncatedList) - } - } - - def getTruncatedGraph( - fullGraph: SCollection[(LeftNode, RightNodeWithEdgeWeight)], - topKWithFrequency: SCollection[(RightNodeType, Seq[(Noun, Double)])] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - val topNouns = topKWithFrequency - .flatMap { - case (rightNodeType, nounsList) => - nounsList - .map { - case (nounVal, aggregatedFrequency) => - RightNode(rightNodeType, nounVal) - } - }.map(nouns => (nouns, ())) - - fullGraph - .map { - case (leftNode, rightNodeWithWeight) => - (rightNodeWithWeight.rightNode, (leftNode, rightNodeWithWeight)) - } - .hashJoin(topNouns) - .map { - case (rightNode, ((left, rightNodeWithWeight), _)) => - (left, rightNodeWithWeight) - } - } - - def buildEmployeeGraph( - graph: SCollection[(LeftNode, RightNodeWithEdgeWeight)] - ): SCollection[(LeftNode, RightNodeWithEdgeWeight)] = { - val employeeIds = SampledEmployeeIds - graph - .collect { - case (LeftNode.UserId(userId), rightNodeWithWeight) if employeeIds.contains(userId) => - (LeftNode.UserId(userId), rightNodeWithWeight) - } - } - - override def configurePipeline(sc: ScioContext, opts: DateRangeOptions): Unit = { - // Define the implicit ScioContext to read datasets from ExternalDataSources - implicit def scioContext: ScioContext = sc - - // DAL.Environment variable for WriteExecs - val dalEnv = if (isAdhoc) DAL.Environment.Dev else DAL.Environment.Prod - - // Define date intervals - val interval_7days = - new Interval(opts.interval.getEnd.minusWeeks(1), opts.interval.getEnd.minusMillis(1)) - val interval_14days = - new Interval(opts.interval.getEnd.minusWeeks(2), opts.interval.getEnd.minusMillis(1)) - - /* - * Dataset read operations - */ - // Get list of valid UserIds - to filter out deactivated or suspended user accounts - val validUsers = getValidUsers(ExternalDataSources.userSource(Duration.fromDays(7))) - - // ieSource tweet engagements data for tweet favs, replies, retweets - from last 14 days - val tweetSource = ExternalDataSources.ieSourceTweetEngagementsSource(interval_14days) - - // Read TFlock datasets - val flockFollowSource = ExternalDataSources.flockFollowSource(Duration.fromDays(7)) - val flockBlockSource = ExternalDataSources.flockBlockSource(Duration.fromDays(7)) - val flockReportAsAbuseSource = - ExternalDataSources.flockReportAsAbuseSource(Duration.fromDays(7)) - val flockReportAsSpamSource = - ExternalDataSources.flockReportAsSpamSource(Duration.fromDays(7)) - - // user-user fav edges - val userUserFavSource = ExternalDataSources.userUserFavSource(Duration.fromDays(14)) - val userUserFavEdges = getFavEdges(userUserFavSource, HalfLifeInDaysForFavScore) - - // user-user follow edges - val userUserFollowEdges = filterInvalidUsers(flockFollowSource, validUsers) - - // user-user block edges - val userUserBlockEdges = filterInvalidUsers(flockBlockSource, validUsers) - - // user-user abuse report edges - val userUserAbuseReportEdges = filterInvalidUsers(flockReportAsAbuseSource, validUsers) - - // user-user spam report edges - val userUserSpamReportEdges = filterInvalidUsers(flockReportAsSpamSource, validUsers) - - // user-signup country edges - val userSignUpCountryEdges = ExternalDataSources - .userCountrySource(Duration.fromDays(7)) - - // user-consumed language edges - val userConsumedLanguageEdges = - ExternalDataSources.inferredUserConsumedLanguageSource(Duration.fromDays(7)) - - // user-topic follow edges - val topicUserFollowedByEdges = - ExternalDataSources.topicFollowGraphSource(Duration.fromDays(7)) - - // user-MRNotifOpenOrClick events from last 7 days - val userMRNotifOpenOrClickEvents = - ExternalDataSources.magicRecsNotficationOpenOrClickEventsSource(interval_7days) - - // user-searchQuery strings from last 7 days - val userSearchQueryEdges = - ExternalDataSources.adaptiveSearchScribeLogsSource(interval_7days) - - /* - * Generate the full graph - */ - val fullGraph = - getUserTweetInteractionGraph(tweetSource) ++ - getUserFavGraph(userUserFavEdges) ++ - getUserFollowGraph(userUserFollowEdges) ++ - getUserBlockGraph(userUserBlockEdges) ++ - getUserAbuseReportGraph(userUserAbuseReportEdges) ++ - getUserSpamReportGraph(userUserSpamReportEdges) ++ - getUserSignUpCountryGraph(userSignUpCountryEdges) ++ - getUserConsumedLanguagesGraph(userConsumedLanguageEdges) ++ - getUserTopicFollowGraph(topicUserFollowedByEdges) ++ - getMagicRecsNotifOpenOrClickTweetsGraph(userMRNotifOpenOrClickEvents) ++ - getSearchGraph(userSearchQueryEdges) - - // Get Top K RightNodes - val topKRightNodes: SCollection[(RightNodeType, Seq[(Noun, Double)])] = - getTopKRightNounsWithFrequencies( - fullGraph, - TopKConfig, - GlobalDefaultMinFrequencyOfRightNodeType) - - // key transformation - topK nouns, keyed by the RightNodeNounType - val topKNounsKeyedByType: SCollection[(RightNodeTypeStruct, NounWithFrequencyList)] = - topKRightNodes - .map { - case (rightNodeType, rightNounsWithScoresList) => - val nounsListWithFrequency: Seq[NounWithFrequency] = rightNounsWithScoresList - .map { - case (noun, aggregatedFrequency) => - NounWithFrequency(noun, aggregatedFrequency) - } - (RightNodeTypeStruct(rightNodeType), NounWithFrequencyList(nounsListWithFrequency)) - } - - // Get Truncated graph based on the top K RightNodes - val truncatedGraph: SCollection[(LeftNode, RightNodeWithEdgeWeight)] = - getTruncatedGraph(fullGraph, topKRightNodes) - - // key transformations - truncated graph, keyed by LeftNode - // Note: By wrapping and unwrapping with the LeftNode.UserId, we don't have to deal - // with defining our own customer ordering for LeftNode type - val truncatedGraphKeyedBySrc: SCollection[(LeftNode, RightNodeWithEdgeWeightList)] = - truncatedGraph - .collect { - case (LeftNode.UserId(userId), rightNodeWithWeight) => - userId -> List(rightNodeWithWeight) - } - .sumByKey - .map { - case (userId, rightNodeWithWeightList) => - (LeftNode.UserId(userId), RightNodeWithEdgeWeightList(rightNodeWithWeightList)) - } - - // WriteExecs - // Write TopK RightNodes to DAL - save all the top K nodes for the clustering step - topKNounsKeyedByType - .map { - case (engagementType, rightList) => - KeyVal(engagementType, rightList) - } - .saveAsCustomOutput( - name = "WriteTopKNouns", - DAL.writeVersionedKeyVal( - topKRightNounsKeyValDataset, - PathLayout.VersionedPath(prefix = - rootMHPath + topKRightNounsOutputDir), - instant = Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - environmentOverride = dalEnv, - ) - ) - - // Write TopK RightNodes to DAL - only take TopKRightNounsForMHDump RightNodes for MH dump - topKNounsKeyedByType - .map { - case (engagementType, rightList) => - val rightListMH = - NounWithFrequencyList(rightList.nounWithFrequencyList.take(TopKRightNounsForMHDump)) - KeyVal(engagementType, rightListMH) - } - .saveAsCustomOutput( - name = "WriteTopKNounsToMHForDebugger", - DAL.writeVersionedKeyVal( - topKRightNounsMHKeyValDataset, - PathLayout.VersionedPath(prefix = - rootMHPath + topKRightNounsMHOutputDir), - instant = Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - environmentOverride = dalEnv, - ) - ) - - // Write truncated graph (MultiTypeGraphTopKForRightNodes) to DAL in KeyVal format - truncatedGraphKeyedBySrc - .map { - case (leftNode, rightNodeWithWeightList) => - KeyVal(leftNode, rightNodeWithWeightList) - }.saveAsCustomOutput( - name = "WriteTruncatedMultiTypeGraph", - DAL.writeVersionedKeyVal( - truncatedMultiTypeGraphKeyValDataset, - PathLayout.VersionedPath(prefix = - rootMHPath + truncatedMultiTypeGraphMHOutputDir), - instant = Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - environmentOverride = dalEnv, - ) - ) - - // Write truncated graph (MultiTypeGraphTopKForRightNodes) to DAL in thrift format - truncatedGraph - .map { - case (leftNode, rightNodeWithWeight) => - MultiTypeGraphEdge(leftNode, rightNodeWithWeight) - }.saveAsCustomOutput( - name = "WriteTruncatedMultiTypeGraphThrift", - DAL.writeSnapshot( - multiTypeGraphTopKForRightNodesSnapshotDataset, - PathLayout.FixedPath(rootThriftPath + truncatedMultiTypeGraphThriftOutputDir), - Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - DiskFormat.Thrift(), - environmentOverride = dalEnv - ) - ) - - // Write full graph to DAL - fullGraph - .map { - case (leftNode, rightNodeWithWeight) => - MultiTypeGraphEdge(leftNode, rightNodeWithWeight) - } - .saveAsCustomOutput( - name = "WriteFullMultiTypeGraph", - DAL.writeSnapshot( - fullMultiTypeGraphSnapshotDataset, - PathLayout.FixedPath(rootThriftPath + fullMultiTypeGraphThriftOutputDir), - Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - DiskFormat.Thrift(), - environmentOverride = dalEnv - ) - ) - - } -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/BUILD b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/BUILD deleted file mode 100644 index 4ad3bfb53..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/BUILD +++ /dev/null @@ -1,73 +0,0 @@ -scala_library( - name = "assemble-multi-type-graph-scio-lib", - sources = [ - "*.scala", - ], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":full_multi_type_graph_scio-scala", - ":top_k_right_nouns_mh_scio-scala", - "beam-internal/src/main/scala/com/twitter/beam/io/dal", - "beam-internal/src/main/scala/com/twitter/beam/io/manhattan", - "beam-internal/src/main/scala/com/twitter/beam/job", - "beam-internal/src/main/scala/com/twitter/beam/transform", - "beam-internal/src/main/scala/com/twitter/scio_internal/runner/dataflow", - "src/scala/com/twitter/simclusters_v2/hdfs_sources", - "src/scala/com/twitter/simclusters_v2/scalding/multi_type_graph/assemble_multi_type_graph", - "src/scala/com/twitter/simclusters_v2/scio/common", - "src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common", - ], -) - -jvm_binary( - name = "assemble-multi-type-graph-scio-adhoc-app", - main = "com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.AssembleMultiTypeGraphScioAdhocApp", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":assemble-multi-type-graph-scio-lib", - "beam-internal/src/main/scala/com/twitter/beam/runner/dataflow", - ], -) - -jvm_binary( - name = "assemble-multi-type-graph-scio-batch-app", - main = "com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph.AssembleMultiTypeGraphScioBatchApp", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":assemble-multi-type-graph-scio-lib", - "beam-internal/src/main/scala/com/twitter/beam/runner/dataflow", - ], -) - -create_datasets( - base_name = "full_multi_type_graph_scio", - java_schema = "com.twitter.simclusters_v2.thriftjava.MultiTypeGraphEdge", - platform = "java8", - role = "cassowary", - scala_schema = "com.twitter.simclusters_v2.thriftscala.MultiTypeGraphEdge", - segment_type = "snapshot", - tags = ["bazel-compatible"], - java_dependencies = [ - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-java", - ], - scala_dependencies = [ - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - ], -) - -create_datasets( - base_name = "top_k_right_nouns_mh_scio", - key_type = "com.twitter.simclusters_v2.thriftscala.RightNodeTypeStruct", - platform = "java8", - role = "cassowary", - scala_schema = "com.twitter.simclusters_v2.hdfs_sources.injections.MultiTypeGraphInjections.topKRightNounListInjection", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "com.twitter.simclusters_v2.thriftscala.NounWithFrequencyList", - scala_dependencies = [ - "src/scala/com/twitter/simclusters_v2/hdfs_sources/injections", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/BUILD.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..19bf867858567d8c6cb29815df0e1c6b3671e211 GIT binary patch literal 37273 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%0Dybl;Kkw2LT6HGSz8L3_zK)c?I<`JuKGgUj zewy{|K%}B2CW!iA;7HMmGN>7JPZL@_c}Ims%v;}&t}Yr3 z>A@BTOa;&AoJXPp&{}a_jQ1wipeTM$h&S~VDSnWMmPM4V3<2>OT&H~2-a#6P!B70m)aVePq2B|Z-g)Wq|bwrzZ8C_ zQ}=bd=lDGiq%bg3OOA|yIq;4 z^xig6Wt6JsfNeBo8^}NNV1xmJ5!ZedAz{DC{NQ-E?UTy`R#j2@VD=tP%Sw}-xE`|b3!+6 z!asdWj({LR7q%K-wjY6E11=#0N~TSisf{NQBTa*o-129CQ@JnoTcs*V14v~b>~ED& z;I&_khgyI7uD$L62u2VMB?xy(heKQR!ag~xs z^ne|?v3{aWW{^$gtPEb*ZSlIbgg?C#Pt9YvqO_!wzQUPWJbJ##cA!C46N|xBF9Dc# zPCX5f(U9)K0RQfK{mum?Z{_859$im`|DuTFTui~yu=6KVP^r#=&o@uNBC)=kghtWB2`h zQ5^5Q+A$6)BpZMCyAhb89n31;jb_we(t^pp(1LAe{L#)tB_lTv(_}(38E)pYoiUh- zBxn%sJfElYyT1*YJpzrm50g%oW}hbUS?sY9BtNnd{6}Ff(LRx@NCxJ_p9k zHrBcr-`a%RvqO~eWb{JOtlU-^XILIb8V_#{4x`2utD=i%_a64G@*~Y{>R4Edibo14Iog z`+N62-nu@IoNV+5wVUY}h+2UAPwF33m=P%d2lYi~KYV+5w&A)@>xT{__@m0Q9t``L zEJnrv_g`dMf$dF{ZO6ix5fmO_nkce0{SI2>rd#%X@!TfGQ#Jh}9XmZ3zjxV%@0z`5 zk^UmTbsYwgtHS<4-ps~{8NvL2kWU-QY(7M%Y^*x{Mc!*9^Pr-6kD%GCjP;|}0ZF`56VMO&s)H%n_wu z=F^zT_ml6)tUS7KZ`zM#v?yDj0n<@FX_QkWa&_-p(QNEMHLOef&UI7pO|aB~!nRl_ zc}*i^q~C)nHUR!ctY+4m42|j-j0$scoKg6=u~8f!%I$HDp_kN}+6K7uNi}mg^FTw42^pOi1oAYPJS%L&ucddN$ zOK>7f%#3=QX&-geg%!E_7r}G3#brM&ALT$o2)>+BnWM=kaCKdLFI7mRes?D^!<}H2=N~6X|x&LaXwu*NH_%VMN_mF1h2)GfgpD@02Ul{S(;EbS%BA! zMK4T0~rRs z1r0)L|BdD$S_!KYdhr{L#o-oaVvs{~acsFCv81`|Gj5CBd7TINI!w&D7}>9bTVuAZ zU-J#ApHO=c(df|H!Qvph5z*L4+re-t!*O?^Z=hLdxpscC8u)u6Z9(5Q>t`KI;Pe{I zQyYkMsB^V`iL8V z;H1#MFR*o>3rrIboKf2CC9ol_z1skb^-@acNtY!#rSTgO{7Pf) z9Kt=+3x}oKy#&*M_S8Ln64pdvu?>{GlQK~9PT*jN18iHM{+T?xY`wpdSJPqJ`E_D3 zf%Pwi2z`iq$AnvB1T+)fkk&@3G&!Xnv~XUfgcuO&^svyI@uO^_q!JElGX2UYKED3A zQGhnJkKi@$`rPvkdn^bQ3X7W%kb>{}1H(pohvfwAYi7P6&w1bA0ibYLJFTBzjiXkv z>tx9ahlKO!){?nZEx1iBW_7>FfxaAucTlS_nXNp#B{&89nepAtUDmfv;GzxXT!7{) z(!r{4lgMWpR@xFl#haQ~;QP7!Ui|a0XoeNXV(Zl`hYp;k$>yHh_HKkl#LKWV^bLy6 z;wbd6v)sjj^e2kRFXU@@hEH}}vwYd~AHib~-C`db?fI|D@5K~59O2ozP*}SLj5r;5 z(XB;Ov%7P0r0D1R#2$;(Vi0T+$oZ>mH51Dmy?dW^ECYW)Tp?0-9(eaE%8XBeImnJz zM@W(GhnnDyrF%PHG^~?f*>s7<^Ixe-(rr3!6$UK-=3xMcnw2)^knb;m@AG6%9Z*af zxDkv#L%~2dwv-U#{Fu)3QqzJ&oOU#OQdf&w!QEf*5h&;Wx%8S$vb)h{&1GM6UGBRIfLeOI8gd-K z?vOcaKO+~+ue1+JUho4v5~2|hB0unJ_IXSEc(v1N7Hby{K4w$TGovuvBDTW3D#jHD z*eb@=aUOcu!xn2-9PYiX(UjaV6MNTfdU6?uuzDf{G43zYn?I>==2ZZQpd>(!Po+-b zAf^!IQqW#u;$byRReNa-3w0eSe|mbB7)n|@(B!f={Azf`WWKU=Z~&vaRZO{W0oFpb zzaUA0b|qdL!E^P}jiY#McY0;h@xs|FBrN%xsB@~?tulS`d6d9M_XxQYlmq_<=$+DI z2lCkvcHsa~QRJcW(2#4~YGUkp1w9wNrPD3-o!j7t#_x>nQD@K3-CK#>+W%duscf%b zD!3e#&BM>j!qOst<<9}ORR6e$z3cMD_uS5R#yl)bxq;4RwZFr89$J~EHbC@R#?}%p z1cTsRa*pX>vb+kp$z8BQqXTa*HSA~Zy>sbVoi9-R{jtr2;>KB__~>SV0g@=dVhXTK z)#IO!W%d#?M6EzqrabkH>Iq5NXKAhqeB<@u2Sq~?&|BzD9mOGX#Jtk-GP*Tr{UXKp zWeNpzaooGwl^h<4wT*$2VZI>ANOGeu^-Ti zu2)Aem+*4fvpd%TqlpUy2gPF9r6EGsgeBFuN~NfCi)z0(TpyKPDJB#+C^oD!C)}%7 zLyvZ>p}Q`{mu+vvmrFK3&;=p@iCFF%ov_lFJvN?miUUb{3$g?pXbB+I&Sw^$hWjLv5!-T-5xKvBJ$kB>f@1y!tn|&rG#Yne5DfeI`Ua?4)V|IujQuRf zbf0@5;@jbm04y0S0ujx`lo43DnF{^`II153n36DEy7>WG7+Dnx`x&p={iWSo|Ge`- zR1sP@lG}VqwXmK|1X|d)VR^7 z(8a9l;`2~pVD{j@iuu3h#x4KBcu<>mbQ=Yf-yDEz$0n$v?9jph&-+WzQ5br)hdkWV zZB74>j*FbsUITUlhN)fTc^Cn$&3FC6e6T_!?3H>WqCt8K5oUCbVX2tupY;OGV=Gxj ziY3(b5%3gIOLX(@t{YLO#)`S%@=R#~f}gtQDXT;qIfwMt39XL8MsM?GdD_PQSX%SlCJN)?tvE z*OXb!09WLs>tg<#Mlr7<7e$Fnh^*1&a?rd6@9VyS4fPDEV-lWW65Y34ZUu*}&L-V2t$;EGaWN)^d zKd?g$!AHBJM+T%p!ulP%WZqRf;ku!w^Y25*losOFMZA=O)rPWId`TwjdG`wEZ5 zxDdzAQ33&riHFnO3nfKGT*QHT1;Jo+2B4yrlB>v<8`t5DU~5x_b!1a#PFA(I|Jb5e zl@i5eWVCIdDjk5S9xmck~r9nM4`sKyWvjS;-KUwP?JHyyb z)u@~ZN@CL9qjo8-ofa4aCSHSTp2)+M`J2h)mDjdO(@satrGYhqH=^Tn`v zHtMi#zD$K2dB=WYdO8Mk%CVUlGTv9MRE2pF6SJ)273VmVwv+n0kONPS3tc7)vm>OU zMU1aQMw^)d;XR}rc;L^>Q$|oZ*ug!+aJ%{5)zjpzRrN81sC)x0{r4*5h1ds-` z7oAfUxQJj?Zc=)7|3$?LqQZ;(O~o29V7ys7#bW}p$^O-omBh=|c=((8qk&9T61IT& zmDamDG>X_5t~$Dr7Za44uq_U> zQbm4YFdWk|)DNE8j#mw{6MP4iN4lDCZ@(ybY%lH3XbxaxYz8VM05$p8Q^;GD-A2sT z6?J}?;K84|)9-Fk!Gt3mqDZMD#XjFJ#IK-n}nbTYfn6kZf>0SNNrZpRx zY7wgh_EV2=3Bfo=K#=_B^I8ux1tH#_3jUXp2o z#xZ-WFYsjqc*Rpr!R{>7vENZ+zx#a93518jgri22i)|{g@CGlY@V6J~Nq@>Wq6L<_ ziiN~irCF7L0ZL_*a&eV%L%74Cu;J*@)JRK6{km~{>u~hfko24zZRG$ZvPe8X^4ha{x02YlTqHGGTY2gd5hYRFlFi3X9*jwK zJ27ZK93(+*NRxHzOr_j{VikP)ZUTCAwL@4n%T5`Ejhx=aY-Yl6YWGI*kX2-}9I;$f z3Q_1lgftOomUHTiOec^CdNn*xa0_ARD~;n|1ga>ZA4=fsdqFv3EIDF`nFNn8*bp|h zsEfskteV3MDA-OsYMtRhIS``I`Zb4NNMsb{cF_m%VT*dN`pi*q4-j`>7G z3`9b3nlSH>=@%#a(`%25#&Kx=tpXACPZc5ES40Zs${JPHu9blYihRg=sm)(duwPvl z-(Qf4J=0^oTMR}TP5UvsAh<`yQkEVoVRnWF7n>+=zs-QLL(| zMHYIVzdt+TJqyJ?u}71&?5%ouRbm-MLLGFd`TY&71M7P?*mjgyuE>q~@S*-uIvG3x z8g~gML5Ur%H7e0KXnLBmSDDfFQF`OB2}ZMZ$C8sItVhJl4G5JKhp)eQPr1`;ut=={ zdPbEjP^!aakHXsYCWEI#Qz^luD>=cjMy0#Ye=rro={!>)4SCGgrYK+qeK&62N4`I= zo*yR$i5lT<>%vMfwTM`u4FXd63kdr+knX>M?0y5y`i*x0rE^~`=Hcif*GkPI-rM5F z{(+t;*mv6M77H#2eh^9aAMeoDSn-O1AfcH_~2VpcL3*~pmhBnHHw!Pw44 z>g~NydHJkEYlL;8!}4cd@M;&O<0+_pg4h9-f^~zO8GO z+{bqtNN?Qt`}VEC#rIY7*&BXWXNEffnvKr!hqJfG*JJm# zm+YyrHT}z{o71-HYSgo{>|4;${`HO(!S_stIBi`W6~s;HYx^^=0Mzsp_jJW<4b(Ar zL!Ol(_empO-si4`ll@PvD^!E~5jSTMYcHj(DaeL4ED@nsZ>}&wGM9JOzE(T8(cINz zu1=RT=1+BtG=BENG+m28Pwy9Qt1H)9Ltj0?>RZ1eyN48Wpr7AclfIw3_0GzeZ$Z}s zb8EmE(9cuIu)Xx#tw(|UlsD@>g&$M2bQTJfogk4-c7u?hVU^K4|_7el@E>f zxo^^On(YBl<9MYDzyqjWnAfnbd}(=gvSQGNkyz%BQofybv*x+lvbso<%Sj1613tH} z+v1XBCkTA>dS;f~eeru+Skte2FKAEPyH`B0as^Bw<|ABrtrH{?Am%4||K|EEuwHT3 z)>gg2V-!|v#WZt@XV$n87?#<3mBs(Qsh|BKxP_trz0$V;b z_tKVevt~G=-o=u&u^})yQTkAIy?bT+^5Emt`g*%TQg@ficg@E3@CvMbx$XP4+&26 zQ12eclS)j7bhOoaH$r~9)q+cf%P9QP;CWx?^IW5-(B37irHJzSG-TLRKEbWMy0M{H zTpUD_%u-IG5fd|Z^Ypa!(0em;I8@nm;Nh$b|c|%9p32 zk(;VvpOpX?FhpfNL}6_qF&nKoJNdOF6JA+Bb-?X5J(NPF-mXP8D|<~O`pkj{Zs%zU zIp-ee7DUpSz1AH9YC7BmHQ|ApIBsu*y|oBmJ0G^Bk+{05Zl}hUZ|tONGqP?|+YE75 z1`bZPZ+)@<0T-0GT)Il|dWvQ#TZtXXRUqKtWg^4jZb z8_nfII^Oy5FO`G6EK?Dodo%l>qk7WpUX&?j+HKCBSZYuf5{AgW?zc-cS-x z#z!j19<$xzIeSAu?rv@iqXTl4A;cO!;+vLG)w;o?;6P8DPfBmJDqu*pHUR};sxLAz z%He%@wJ{};PZrHP27)b*`0zUP=Jl{udTizBTQ>= zI~Bv^OA866p<>_e9XkxG+{Xlj5}2XACr%0=f)r~C z5ws{4b)hTJZR;TBvD|fmvJxv*{-S{|n%($4QjA7X4j=Y6ebofmL+Q$hQv0w@qQ^hQ zx_z)848^FC+LVLWqF9CCtw6U2pSahCm=A06_mb_`1q&7JW%BRC-@@ts6y<=pc|Ka& z1csuj2I`<&26d30fI4D99W_!d&<_8GAe@J5275^(=%U*GJ?LN2zXy3t*ntxkmHb9& z_znLD%HIe49p!&lfydPh?eH~k8G=`C+8&$`#;O?%B`6pK#`O=ae@R+~IATHvfQG?? zhS~fztQ%mDxXCKn_#0;pf*0w>Z=Amm_?zb%sRrm-UGjC%FbvSJ-_}rUoXTY$QEsm; zqn|?d$o6!ppQ~jO+QEQ6vwlp%OwD6AkVD5zSQ=AP^hU|s$k#^o4^BgOGXA=OglyjB zF;nFeTZJXU0HjEp4WqY%=hM)=z0A?xJIqJ|8DWnx;JO>H+v6#JtIykk&5t9STdvBX z9UjDD_c2u5*L#l#xDzMupD(MKo!IX)+t#0cGFQPiwV8g&sv<_(ZWVUjIYuUqoZVR3 zGf)s@HQkuFA!sUpiHR_+cx`3w*t)rl@%=e+F!wn2u)B2qY*jm<=R_2C6{6aD%9}Ci zgP!_)W7g{P!q?j69%3R4`lX`&?dDD2NX(dGy4?@o^G~!9Wm9%J+(-_aw3z8o%o6n3@ z!e5GEp-7emeqo=T;fBg@d-1N}&G5ZDh%^<-&csqM70Svq^*){zM=)|L>-l8~RZju6 z|NLkHHmsNp>m2B_NEYjTVTu=QM#>V*tf)xw zUXaYgK*q{~^mrM0N&OU+WAlC4=PPN7j1Rt{^%g=I&NVLYd4#^q5dQKYoPn6DhAFE? zF9B`@@UxSYtlHR=lM-tNc~qeH?{o$&o}q;_N8c0ja9d zrDMgnp-8IZ4@&=!u(tq;Yumboad&rjcMlTW8h3Yh2^QSl-QC^Y-JRg>1WzD9Ugw;9 z@4M&w-+O;`u_>yWF~=Bd@6~h7-D}Upm`b>AQKwsVp#?$t0o6N>Fbw&phSIJfx0MHg z`@yx4;Awu=+xsD3j;DdbK<{Caz(>P4qMP%E&&%6eoVZ}tvG0TS`_kcL<6ERJ0!Djehv#LEj99h1UWGA_y$)aRm-ek(`vM|~jGCj< z8QxR%jhfuKhgs|v$TuqZ3!`QQUd5g%;x=AI_RISIgZtZ7Sx2{URBTBW?0Zx9S>)63 zOFbiQhO5@;l1gW9LT85>&K#Rrds83f)6`{L=%;Jb(9fjbC`ak<>!sUwi*5p!p+i!?gq)c9$~Rrgg4u)XSW-rh~- z>zvSr&9HNootDQ_0)H~T&}yg;sxR1ZrapNfP?I6ETAf4)iRw+*dlX|%cH*o)WbI?$ zYGA5;iHTeg za35IHx*L?x)iL8rY%Q)th9j*h>9N7NJ?Wm8DgDX?33X|v!Ry^re!a-bJzGXE99Ntl z5!xbq7wsqSX^pvE(G6Z#`yN4@!G~{Vz04L(Mm(@DZjA*)UU50*Unf6VxG5|$Dy9`2 z-mKpvsRjTh@GsV=u{`WBKFaPA_z<;Ww~q+7|OW#R;mED|F^qfqhC!L#xN?N~*h0(HZ?YLN- z%LUKHN9%WWG)P|8^JBE8&gMxs)5WJykEM>T%9HmOyhHO|#WJqqS#$mt>k9+EmF5ZN zi0!9xA>%9nU#Zs@yY_&#iidkPV{E z*IpEL$a=b9U+Z2pV4OWw*+jm!2lIe9CmVI)Cu)AbRoc(0>9; z;+=X$8O~f|6Fm7~A!`aJ;gfhe!$~MISw?o{$UGEw+IPD$b^IzXA}vlL+bwZ(a`KUovA- z!<*o#ni1q86OIYa95-n8L^`Wzl2lhogpkZ_d*K{k}=OBw* zM372H)h2lDxYFt*yHu$rWrYv-+cC1(^;_xUEbUiQqpRNUX1>##6@KMy-gIMH&$$+* z%k{5dd+dUX zZVXyUiLfJg-;l@1ikH3m%$<-B`)rwOe6;Pp{DJ^}nGk7QE^&~9H_GVcYQx8+l*K0U zp;Q>wL3+RIfP-H^2Pqplck+&~5jA7qQCp%cQa_#h z_1zw`=T*+UI%NMTu4qWRoQ%d&`ZtYGeAjJ%50ab_LtyS6 zZ*E8r)c!EKiA_^aIlKvFC(o$sdALEa$k+1vjR|8qR1zR73a4dPtbB#UP?X|m<3G^K z3bR(aR?X)+#1jcu-8sIpx1}k70C6L4<%=Hbt&(t3jDIt;?DBPu-g~pC?*{Qyhh?#g z<+~1-qr={gqNqB43q}|CR5|4qzG1x`!eGxiXI(7tDOLtrTB#bRaf3Y#t~fATS&MQ( z2tP{6_6@nWvKoZkws^g{9lfu1MQT!&b}V%3Gfz0(z09rOKPg4!(UQ=l&*F2MGr}H7~NYlf5EtkDH#&p+lhwQ%ChBJ z0(5fUI3CD@KifOHDgHX$@fffb{PF+K4!{xhkoRTFnX{c63mH7X`w+gJdjn1>$JK#s zEe~0ykb6zO(C&f=P>kjJ^rpr4{)H)D0r9X^WC<1Al$A_FxYv)aEG3R+j$5 z1y6K$eR_Qra3pqsBcXgVqfoWoJ6Xn?t?|R8(P}kX`lo$c+CW}hhd@*JKu4}a83&s5 zj}^|&6rzJ6zY(R6c8{O;o?V`@tvTLYVS8JF?P(8S-x{r0QrhNn`4Qu?+TzyEZ>nl2 zz1Bpw=?hj{Q0zlV?IlcTM+3gfuT#5wfWYX0kY0P;nN|bpisUp94H&$&4kwC7sB=jx zD$S^g*o=m#Z5FBN_Zahf(Dk*@^)q}@EeUz^@n_lOd(H;=n-=+p2v}T^ny*VhaTvix zS9Gf6`g5LEX&N2Uylox~f$Loi)Z5iF7n3LjAyGDmDZnR+=g_v*;x_eu9YI{$?iQ+U z&X?jfK4oq0Y>q6ig^)J$lD1G@!!rWQO&xF+ZK%-7HuVezfy){t3iPnH)Sl`))!l=o zxp=XIMipew$^9D6^BTxp~;gd)WZ@PN|Fx>evkGBq>PO zlJ9#A(auz0>v`Cyd)cIeht3AH_Hcp}nHiRQ*`#djH0|JtSAOxZ*_gsp7-qU7Ys9tM zF)Jf#93RrLdF*Nt*tySe08-qqnXu4YOAzYWN4Q>&V(R9k@8O&V6+IQ++`;o-U}I73 zX_-8F(sGC)bNSTWa%C2Cnu49@8){mUmg6NAiR@4#?NH<2=0j!xr08LD4}0iV9OS^W zFYr_d?=U0dfauac&pY4R24&ccfI#bT{e5%ABqhzAr|u@(3_YozSCsD~b?J^6k6HC} ze(B8tFEdQmDp$56hWqlJ$QPq{XRZvN zekbdXza0J)H3+8q>5LY~w}q>RL# zi&fsO-;J-oUh9aQJ&|I>ofDDV1P@9*h`fF`rqvN<@Sa{T%g0*o*ehY&&^k`ay*4g~r{&VCZBc%|#(FD8*69#`QxJ3qzAJ%wEnr5nz~zXd*Lpexi`o z>!H_|Rq9!V_h&b{YeSB@S2B@_%^zS$tmsc02E(9`fe_X^F`lc2gY?fMAh14hM2d2o zV!KWdUjxGbJ0uF|ze8TGTL444UHui3?>Th2!Qx*bv!PJPgv0xhBK+`Eulj5y)Gn`cz|jv%j|C~ zzkG%e&d17Jq6upNJF*Lf0df8%Qp+#4cNYrN`1^)vq(v@W@cu3tTo9=~(XT>|jt`P2nCwV6HL- z(+3#;c);LmIuGi-mIw%e0YRAQM^RB2;>i|EimIvhx;Tz?rxpW&urA<@amJw+-Z2jc zA!#E%>J)__-$5CGAq7Jhh0tfonv=CwkAw3K6r*DeSS>+|fNf?@l90>y?9hf7gc55? zzQYv`2O$OH=K#IIE%F|z)N7iwL50bf@36JP#Ccic3Wnih3*ogv)npH04bn*;fI-!K z8_x%SuBFU@Lj}Rf3?MDf_-Er_In zv2sSeC;^{TaM;^JaHCNIM&c0o48LnHR-l0T7vSO;Usw@H=<~Gy88F}f^MC;e$$pOA zJ3T$$1M9x&TW`RufJfiuOXt}QSpYo*bYltv3PJvhuVMTL{egAg8@Y<_dwVLR(|}QY zIMgJ55**@WR#F7|q)yVWXW>brL6DOWP&$F{Ljgnnc>}1#AM{AS#zuzH<~C<^2E!gw zH@%w_ocTDqn>l*hIeNOKCc{ExVagx&ZVdwXh`$?TkmF;bv8W}FMPI!|FVl{HV^q;%1M4#=(3X`hRJjw#8Rs5u$V(|r%5tRjYP8t5)| zE`jRPpU9q8uQOFNuF`0vKHi?v4)#O--HZBL-&cmCcf7fNnxk(XM|7v#gAJiJE*>#q zV98;0X>99iW-EAXw{wiR(}+Nv5?=qA#>e-;3sv9m+fZ!!THd=9vVI?{{%-*y=)*)~ zRlqS6Wy?8zM$*Q83WAL7PnqZ9ZeOja+t>Xk?t`Z(g@{q?46M|Q6Kp(_vrQisJP+Ht zT_p?a+gILh-|3m1X?c(L8t-?dY>#TdL}1z{xVqhL{ou8{=X&~+CyP(+9`B z_K)CsUxpeHX%#fAzbMbT?}-csQ9O}!+}QrH>{66zlJt#^H#ZRFoOs8_SPn6Emto3q^CuASj8ID`3>?Z#r(SId zEfTCkt!K7ybCem9%qN!+Y!m-amBX+L)B5S3If5+BPw&@2rQALbF7Pj+%uJ)Ekz}rb zBbee9;wl;@TaIcNY!p=2AuKR>H zKO?jXH$MrNMVYw(g-ZB(*#by9OF~Ja4Bgf zD5OM$d2hO6o+;nJrb#m+4loLFasL+M{C^c=sloBf zs-=oHBST+AnTq|Fwl@ETCQ&2rEq0}LUVk3FO%8a^jJ6K$H{Mr&6E@lwB)wX>GFX?~A+*-kLSO@?DSb?^6dtS=Y!-rcTlhRv9e6H|$%+bE5%ciw_FtA=3teSI-$k z0~by!k$L5a=EL}mqDIQj4WSL(gkjYdj(9sknBE(eN~#zJ_nV@kH@w2a2w>90+9Xw; zuXTHEgv7MoS8FR?zdv?jX1<8Ee2NFlJEnv5J8DUG+Y@nw$Ig^+gm>dn`0A(Z4~j=qN4B(oV=*OxmW(ZI8GJ9{G>EdXF?=t1UC@n3 zES+<&o@O+qq92K8o8KJ*FJIIhf``*#HbR--oqZj2A9&9N#-XS$UOKcrml{Js!|Xqg zaQsw6L%{k{U_*br@)VD8Nvpnn+`lQhEB{M}O8zNO$A`0HL{WYKS;P0YGwP4JiRKW zD(ip!%L?@LKUO>|{~O}D9B2jl|HFz=qoa_KBdF7`#-w{|9}3UOsk;rlku~dHBZRh3 zz98;3@$U>-*7KRu*1R&&&31Mj5M6z<+utz^rZ?U>cN+j)QYUJOmVCK*0uG?o)&Qe- z&pq5)nIKyw)Ba%;6FaZ#aB^&3oYDm}Up43ji4nPu>r!ZV`KBhB}%ueKB*ip=-8r>tC2t=I&CljrU2||R2 zBIcC?Bp5mhFq0cE(PGx)MT!HYiXb)Laon2B@KTnW(=SSbkP1TYI;%N1eE1nxnpqG~ zYIhy+@x@=L4WS7Gi=xWRBIvyNvh=>111g>gQ`up8lLjGAyD02uNoDf?T?~n zkSgLL`&P{&<#9Nb9@lx&RhHhqhSFz^vXM-zP*7t;=wNL$8y>o0-ek-Jl2zeq(h30e z-9#I1%XiZWPMJ%Q>U}Xw&sn?zGJW;=$=WDRV^Jtz@E9z^CzItFEE`oB7URk^B)(z1 zP#Ht{l}Y<3&KYFzVLT+57K&BJWiB@wo2<`3(?pdu)Uq#elv~tNb&F^ihVcNwsgaz< z$J90XDSFs8!=VVqh{Je{{TE~9S&XaY7|5fl%!IDtoYDGir9005n=BrN%}1}^Cv}Yg znK}~M4-R|1tn=)`eZ)mSTeVZ4Tb?gLJkTr^hOynO6=^C*GZVvD$2FMh_n}wstHC{j zm7kDbS|nZcMg}XHYPh~KJZ|}nsi!2n!fF+Dip7w=TqSOJi2J;mht@b1B?=<_ILbs= z^vh1N*~)F3{{W}07p~3Bm*kStLdR%k@y3N^B>0o;HLGIqvZ}ICiy{Iuuy|2QZ{^4M z{z4Lw^N25~LUEbVM;Xp6&)xlaSO`H_F-FFN%#(FqmtNH3cF$c-tfa^t<()1<^{S^Fn48d1!Y z=?O(~${;jVrHNb&HHvx~DNHlQK)Q=LGsMdD0c2b?)pV2mND1W;Pn^&u-X9Q60d&Bb zz^zgXqN{u;C8B$kuS~{gzg_TA{MQY@qsKv1VL?uBA zr6gXir%Fdu{g(y0^*{>};IaN#Fw+&8^g{Bu9<^8Qg_`W8p)``c+!aX&WwxWH+CcrI zwy;xt;R`0^UwjWC{~&L7Mc%t0s4hrV^5BOQg};YF+XQY1V{!^6@~KtNilvoBVq}~N zV>YEN964k`1vyQSooN6m18c$4(qW^d^aw&?(#8D_< z@(NlM{EReP74f<7H3Wn|i2q+0Yv5>4X9sL>GTgExT zPgLP(Fuua-}NyVyCLJS-`VdBP~1!bDE&my1!+wsUSFt9bdxxtkeco zbWZwv15_|R4EL)59Srwp;md~ai2G1`33V8RVnvDE({?HLR}(@qbUThoPM$BJdEcwR zn?jVXVuFVrA`#6-HKlms9VZ{sktD$DOqHDAqD9D7YJ@M9GwdM0rAeF8&v)zYXd8hS zT3Np!2oIi%scWNCW_zH8D2;C$#5xS+)juD_C#e>0?ecy8$BtiK3;tz=y`^j@a znv%etjfr{x_Tej-UBk;?F%u@X3#N~dV4=|fo{Qtag$5<<;})1n{5U<`e5Wd&(jTRv za6qLLsz9XxMM3a*N4^Bc9Vu7~3dTs!p39bmtVy!Jt|A$wI=D}Dc#no8w5tJa4qvp64;xl=pCPLCf`EoZ zk$rDU`=^k*5j9!fk3-?S57W$)0xy~WHA9yNY-Z|s5S5E06FzJXgd!WDs==-_7%{jW zSGM&I2{dcg>rwQm!Kw@Tu-|&*no$> z!;)2qY9(O&6_zjKu;P0P1D$UGt5mWwrlnq`bEWVvwh(2=%(SW~I$Pmp1iCy>DW05i zFYCf!bjbz{v=Y<*uh0A*gO+%Wq8M_5h5^AQ3for7uwhyMiVKoH6K8x%Nf1lGgHhp7 znz3|E!?nG{dw<3|BS7V2+JYnkuk00;kBB=XIv>2HOm8OU+HlMb_FhEK*{)%x>p3D_ z1gTWCeN3HECeL8i5|w$Fkg?EHEA55Nr>^Nnrs;^##J&nqQRBj%igIeFpv6a@-Vi#i z3AeDgO1nAiS_#6pKWG?uU*c_WPAdgzs%Ce45zbYGUXVy;8~5UOIsx&?pE~G~xU9)8 z9|>6%Ki0a(9HDIEn|a!2|NY08yRrhsd$QZ~Mx_xOdRQ#3+9G9DzTBK<~n6khbIBNeQdU1rCt+EW(AF z35@cwwSH$SV3PLT zv|~G52pCA{??3_(sk3*`rn;Yj?+xQ0Cho-ZyDg%b*3jc&UVd354HxpyBmFRh=*WZ; zVKKG{p_BrN`U!r3oZjRC`cx~qX$hm{YcLa{c0dlDcP>v$pI||ZCQ=)>0rakuoazEz*viUSK5U_pS_rX>K9Bc68~kWH$PdSs~)>xzrj6e07EDeBMPNhN6v;YA^y{|SLw7M=JN4FV{IQNu+|IHI z84eT_1LvDEyfxxJ%d@jmzHp!*WLbb3=uo*qeLssej)Yd<&qw8*`cWalzW6V0jC(Xg zO0C06&j%AMh8oqORR|imwT%pp)!Si&b1`3^z0(|1aSzw6EH<7b?~-#MAa0!JwvM^# zLBcv@!C})jasyOdGYJ7@8v#qeONy(^QxFGHpmpiWGz=ZUo^8%E^L0Jq>)0JZo2j_} z(iU@>=S4^Fdg=+Qm?E7kpYOdC_HG@YC(dTbCP(G z%?)4|F$3_-IA&(KWqQh_^#h3^lyxxk-??7JK%3EnWuN%+&LmvUL0@S?p(8kEc3pC` z1wiu5=;2B6%se9$moNEfLJRc}%2C48ZdwQ$xPIxC**2Li-Q}7!VY)qC(sxpcA6GTV zfCStnE{8O0l>umuW{l;wd>+hdTwGaQ7FF8x2Vht5>#B<-m1CdWJIJ`5wN2pi1L=me z*WVwBm%h&u@vp)W07#eTnI)d<{Rc4w0!w_L7Ns}~)f$h3P3=6UibkllL|P{85V*K= zD&rVrJ!p|?j6^M~zn>^1H^z?oAy-JmF%}SllVNu^&e@aWLeQiZt9) zuXByc83oz3EDa^uj41tihC13PU>ZOT)e`KWF3K37ZJeilFx~T#p0j}M6=8+Mu#2RH zvp6W|C%9E;ya;uYpD`{{o1-wR4H9m@LXkdwiaN)>QIs_eoTMeT;vkNP5sr(CyLB_1 zKP#CbO-k<%=F(D=)lAV){|QMA49R<*=8UFL$U;|T;n4;AnK!^0>{txJ!JLlzuz~%{ z`gcTj8&VP8j%+S9URnezqaI#jdnH~ga2G|u5y{%*^CFb6D?RlBO*+ICgcw7pS&%c@ zXwzNvyC=tL#?L-kXZ0I!rE=Cr3r^TK63u1 zdR)v>9P;(Ur(OKG7;##JHz7!u9}@bH6~`2h z9C?0uHB3ytV}TQ1KsY`_EowLo3L9Pk@FooK@GuYKRf@`^M9>s+|JIc}4-?D@b|XGP zga#dxPmdSC{RO3Bi!+dm1v*9;$+^as*$zakO@bwF z4%&z{OOkh}QG^`kz!0aggkY6?{~C^crOY#4g#t*FFL%UF}r8p-Gu zS97CRFt|-H1j$KLRw^k;|Kh~O?$zwiOGE7(Z$n)q2@kT6yD)@26rRH#Gg5D>2rw^l z#AtwIS|u0ZWfkS6rLENlQd-sw`J0lM7y*g~K+F{v_gJj>D=hHfNkjdv3^<^9CgakW z=!*cJC7QhZ`pH)Xt%`uo!fc3-apHQ|Pfchf|73xck_2?-SnNN}IHN%qVAs18G~%Qp zPD&F@Td=n}4|-A1P}|W`3)Q&)!s|G4jOY|gl+T8X2v#Qxn6j3xP%&8-OX=csMYt0# zP2hLg$ojlo#@^*NPd&kt#TE z%t3H&qXDR)9Sv9f(mHGq%bs7c`Gl1oZ!80EN%;ths^6IYO90k{P}9Xcu}N{6)+Xo>(NjdT;m z{9mMI5|=tvyR@8T5-hNfnjJ~Ut%x6T1G6JLa816jn8Z>%Oj-Ozs`3HZKRYm+4i}Pl zMFfzeYI(GyXiHMI&k$*x_O~G$2!Hsb01^H&q%;*A$VYlDE12C~ASPpeUCdb1hCm(L{ZypO+abM+aF{MrLig~fwV!(MxvUE;AK0J0H_j3rh z4E20{4lh*Fi-57k0@N3dcJvyvxIf<%7GOtwYe?x`oFVzELej*%(ND@Lhz1%}J=L3R zmVmL5)=vh+5PuF4m$B%q&k>g>GDM5+ASPf~j0ZHQiUU5aec6c4%BZQDV`z*4;*bq_ zaOF1i5t+?k;%gRbMT92g)& zJQuUkI$F=;V^S~(5N}=7=+rtAKp4XPt=kYF4lIL!VQHn!(M*xi-s1*{1JCBDE5xYe z8A2oesO-7ZphS&6Eo3AtD=BL2DKbf58N5jafhDQwIYYd40f=OZ0zH&CXQAmb0)6E$%%IFS5p>PKb~{v0kwx$yLdE>q9xBgW-7^is{{+Bx3z(49lQU13&TLhpw9+)2g_Y2JbfSDe>x+J)k{S9P~g$w<# z5iQ^GZ&GXw_xFBDIdA{7DNT`(gh3xT2*@eye>K{2F>`gbvbXqapH++cw(~b0jNaWc z!}fi1*j6XGL)vqS`W<;HTi`l5a*%q?)H+Ut!+A%=Y!V438-= zXCu1jBc>P&!Z8OffQZr3({Vj4td-fm8F8?rhDWl{8Vd6H<9_Y@xIPr*G-R~S0QEwl zIzIMkZ&5EvilA-lkLZYpg9x;#;BEL>!Ho`hbg3CFIf~TOR+P9lLW2}xyV@Fmsb3|# z){W+6Y~gUW%aNvAv(f(i59fp=WJB4koBP9{hqV0(;Qk%6 z;c)u$dT1}&`G>Mb9oA{_DME58B~B3baE3yBq@d$lP|?~tHcl6PgHy>S4?~+2EvKxw7Ex2^eYu5@zoNc$SEXFmJ)w94@gwP`!BJ`Et%u(*~0vgDaM83=6n}%na9@nLF%*&q@q_}_>q_fFi;Jsx+LDMV+Z9~#?{~sTjjfVWJF&2QSivR@4&{A`nC)QJ z@^gK01qx`J&j6ALl^QEZh1!XZPb}m0quIVe_)6Prqsou#2>r~axB6ftx<_+TQDs4a z2;r9*FL{BS*r}|Q>Z&#s-^D_bUaAJD#@3?f8`(Z?#bqwlg7&y_XG#eh2)>aIZ~z96 zC=wwiT%F)xnS-=^yx}5h6VF%fG1y`fuP#iXxViW5horOeEPC1z6Db5kOrwshGu?X5 z`36msbr57h>FZWt=+k(0eUDx$V@ zV7DA46&Wk%__rT{yM6^*r25Peh^2)Lz=4RXqT zmz>y){)`BOeZAz?xM2oUkQ%(ma%2Kt-x_5m`vH)}>HRCFb||~i>#~3>_2>KTXnRJ4 z-|@i?uukFk0M7h+dR)jDr4$q;w=Zj2@(fHZu|_prJ;RE^$|Q(JM9?6mf5Nqi-0*Dl zD=+9f;X!QszxG+K?SlSud*zw-u?h&V1yw8X=T8&ZzgkdzF*8>AuM0kAe!zN&1p#E< zyLa#?QRUDyn)P!c8xCPtvPdhkBLO9A3ve^k%4HD| z?b)Ez5Av^;O^LsUZJUhJ!0^MwU}avxC0}nA>sLa)B7F{z874EXU~7~*^& zpMY>(lVAZK)%b$iK3FJc8&K#(R<3V_S^HK?L$nxk*G9t=D>KMG*#wHe>Ukp~iOM)L zxe(X7RmgY-eX0be)IE0QFb8AimvR3=Y?}Ni#SN(@& zunJz}GGg#mw2YbBybE!7@s~u%Y41mOb3#OfE+NIT`8eIQyNCRzW50OwT}*&oLw~`6 zfS~=`F>_#(Tva1u+rL_eZl?~|e`6sS{r)wQCM{dWHmL;zm2Nb&c?t>N8w8!89&0n< zTDW8J*DSwn9LsgRbl0O@yw^4TGzDlN46duF6gVmG@3|M_-;eKv+HGGL8mYwS=-R*c z<2f=6g0mL;9Ptys_DqGE(8j!=NCu+sW}qH#wK8ijnbWkZr*`C2QNjCoSG#Sw>S0F1 z4pmYa560lYP1JLxIUlhx2vOack!VJ963&NTWJH0qH@e_^hDX7O;>Bx_N#X4C_3Wll zu*C*evBs=S+IfX6j~>jIkWs;GbRNu;NJ-h?U!zv%f?t)4T9PoQI3I zjs%`$p<<&UlO1f1j@uh(s?W}5a`Bp%e)x_;k;#;(Mzdl^3KuCj9&P3ynRH!l4B*I$ zKYDS|S(2J_WY$n*TPmTLR0iG2WEo1QRWY1J#ztqBgRWN(%+k%b?Yl!>Pggi-1TL2~ z=mmuEo(JjJkCq~+Oril zt^elLA1S=n(&{6MpJMPyt%eK!QIX~au zTpB{Yyn84cV>bA$gw6H5lxXF_O^4mdjJ}vRVv0Nzzms6(W-^EmU+q7 zN>qNm`yWkHlSRndM}hsCyXZhbF#ml@x>}mqnKA!$Wc|B8ro6)@7f$aF4V2EK<=0KO z$WHOA_3PDAM6@>1xMndOTN)*jbBbQXYo~sHqwV@3xU1Ho`Wj*QtHt+Bd%{+vGXosj zjYt|L=aUinZVAW9(a-LqyOXo1~q8OlkLqR&Lu z;PFm*QTaJt)-8*(9#(8O@lNQ)A{;gd2H{Lf{Y{aiY?OJWIi+X>)wM3l$1>?!LYEfD`9&CgIGSPJ^ z#(7&RDWx=3p=syb74MQNQ#-UYS7C{c`x0LbUH+5k5>36lMbV~RrX?P3rn#W}?|ZK% z`(i69OWnZt9v?K!mUH1H5;T^=BXd?+*~Vt&g}S0;scd&AveA~qiik#@L&;l$kGbLUlWdS($0fp-jvCEk#Bvas1 zaMi$#9BF{KKhh$hW8Q?ZPIx=3XE|-lWn+ZYSZZkdu@|0kl=5Oh^*TsfGLH17{M#K^ z$2tY!dgrbWpask;Jcr@p4Tca!`fFzhe ze?GWV11Yoz&GcE;dQxmI)+CdtOw-xw*ZG2C$07OVI#JWk&&utvWSQ9Z{Sp594eImc z(&KhCTc5?<%cfTe#zGKES;;US35GpMe==oR(`_fVIEk3rB~+A&ruTb?#BatgQkW*) zxaplij(8dE$_EM_c(bXHtd|yQ3Ra%hd!@#Pd>n*##wBPre%>B3StE$HHXnp@!BpxA zm79Pm9CoiHHTTN8__8jf-uGbICA(>x@(yTCSlbnR@8{bNZ8kD$Ec>ekuM{7n9u;UL_ zF@B{pD1Yocd&fvkMZ)HM{2|FljG?m}vAQyO5>in3@Kxm?HMzTkZh3i?x*(jT!8vM7@t|DJ>rsY6suZn!6P^`y6B^o4Ig32xi$M0AbF_wYHW6y) zyvUeVTD@(F7HK>UVyREhZiwo9QkYhg*?0>nr6qbS4*lMTRJZIOUFG58}$&YV`^XR6uGTkAT zR&rfTQdYI7S*>U6Qb|LV?~2UgCD4 z#K)ID1+L}x(Qg`1F~_FHe0u_x>igZH+-3i>6d3j_9Du%WN6d92I{a9{dm#UQ!EsWe zs!{Kn@EcQEWA^6FqaAk@;kYCxwF!)lJ^%-zlBbz*GFaBE3trduM@IKjx@xjINMkxJ zILPPsTOrY36{Eaq)CY66vPWuiS9`36np{TvY{9J~(>uTI*JM^a@?qfDZIk3eroVmG zqG3t52!BS!EjQj#wQuz2cK~d3R_(ihadB3!t?sw~?(0EY-94^QR4MRH4BPWsP@{7~ z(Gg;_Q#hE;Q!Mt9Yg5CA6u;>sIsvEA%@;iKgk#Slp)cy?t3y7Eo#sa|Q1h>*!q#b8 zBtk|iiP6@oS>CaZ`thC2T5fqE^AYL>gcR0vST}A-8f_+62CeBOCIoblrYIs+K z+&@QDl&rYW=y|E)>e%#Ds&Rdu)y9r@6*p{O7?)im%_LUKHRHH~&Kzl%g4vK7DuX=M zl!gLT2ZnEpI}<R_j7XUlBmYG(J>$6ifz1Kc1B2FMRz z@rlHVQoeAEC1n(9)B?C#>DO;iiQS3C#=m#M`}RD(IF6mz$$x+mbMOJ$#HC#v;k>UU z0K`8YPJ|y&LM}r@ptEaHELAKdwcOf0AW0R#vFRozFb;KDv6dm!gTX8uD-h3W!eQUX z9dVii(JMy+qii)&y{TF_@FbZ}tSI|7{L~3?6j5K9YN2?Hu4@=`w<$yF+TpTHor704 z{)aBX$>WtCpdMKytFdK|IG2xiR;2*-OoOSq}8dJ zUV`NUwD|R==+l68hpFXVgqR2!ZU;-5L(K#u3WHiYN$ONEuO^d8u3O`cvBi8==f~np zA88l03V{UqgOP194iW55gHvXA5Mif{|2Q*Ua~GNkPuNp>14rb*3GTYo9Lk5fyqa7^ zm%7mV+B?`k2ehS2PJSOK*cd1r=O4oVNLF-qaCG@=RCD4R?1NY^#J}_o-XBb`=0jLw zgiC?Y+N{Xv5qkJj+LCXI#Z-QH%ky!XjD4wfy;{qgqh6q*fKjdDF9^-< z?&IVjALpy(6SRWl?FgbABja&(-*pKMZY7tp=k|g+9@593 z$Pt?9cioM`qT6OdOEz)Bp{myFmh~NnCI5~E+*RuQrpE1*X{Pk~(q(a;ZR6%lHeH>= z?m$l~PeG}LvCj#Wq#5vf?Gv(7dlXT#GZOwAsXOwL;?eM@zz(Z7M`PI}^v{P>vY-EB zl@>oA7GVRd$wUCNyZ@{??A`2)&76T%nLpXxjOMoe0S`{kZkcd`gltmCU-ZVt z1$TJA=$5UxZKCefT^CLrUa=Pm4_DHOX%m7{w|OMtM5TBDNu^1|p`o~NHM*)^uQcGK zvQofGuGViUDV;HW>HP3Hsz5AUHgcMjoydXKn2ml8E4)0ASC*TH_hL0!9+I0<`Z`pB zt4qOuclI&E-MOW|gF z^=Bx2<&KNbK{Dh_j;f%dGtEG_XIS}6t}V}`6irKkIRO8vG$I(VY5h?L+<|LJ`EY)e zH4dlzi(!;avc{<5GMIiu=B=;A9$5r>YXw>zu7UN6DAI4o&4W}_9u|xs*2tCr0#?*87!j&m~d#Y)*z0w|Q zkAtu_J@flFJ-2fDVlh3ppLd}L^fdHFk3zh~nW5}+F!{dqp!W_$pm4Z@A@rMG$ZI#} zkEEhd%+b9+eE0kKjnqsWVI0nrRH4op)9{LQ=aUZ)U^^4DdNl`QugGh_RE-2?yCF_r zs1CPIuBWpU3O9Vd#W;Oem^Z=tv^&Fh-=fF;3#J!}%An_@#tG^~iR1E2IMe6TE^gOd zi<-q7Of8aJZD@>M4sTNb*XdvDm3g7hu1tg?hdjdqzE3>%W<<7eQoT8S2Jc z??-U4F)YA^vNjZDpXLqOp#EL3^Bex3GgjgFsznbZ2uLsq2naTC#sW6({%e{7uDpQP zr@fJtEt9pQnZ>objU&1mhG3UBH?7?a3JoI$^k5fTe=*}{dN3}lZ>7mx#f)`Mq0&k6 z=$TYTUzSnIPhkQ+zZ)=AU9+7O7XtZ|#f2rIQQ$FfM#-%2I0Y~a!0)!Ui(wUm z6AWgrwm05;vmdry=6JnN?F+{W4Tk3L(Y#?<5WvkmL>`-ar|es59eJu`t}wY=LC)Gb z2KPa1z$_6a3!9dWwL5J)q<7&Nq60a`LpjoP;IMfKF#Ut9_dA`=VOTJb6^OTf*OAWv zXF(7uNY8Qd4*Y~RkXz6%n#rK97W4Y^3}FeE-^FrCjRVJLlGm!b)9?9GnAJEq0rbw9 zQ3Ka5p7Cv@dFpAVbqWX8NR#6@tkzu6IcZR=46|tg3)Nw<7cdaP! z0yRde*``kAHR&F@Zd4=B3-|HUY*qYadL$%{XB`!<0BIQJIg+TYHn+2RQKc0qfZj32 zylG?nylSXtmco~IZ41NbILh&BI}y_x>M$Yi9`+fIlNd?hb3@EC{0ojjF#}c}eOhLv z-5pPjpiK#07`jI1B;j~dLLIv3EFGsstqM#s-^$Oeo%*Zru>(w$T4brBJ|sI z_qK+2Pj@(_Ulx7cbzsTtRoYjczB;AZ|9tuErhQH|x7OV%eJ35Fpt5q(>pAP*SnUdb z`9|%idL!_jVk6s(wF^IFU5tM}*|#$7b55{e-71#JwlC%xo_)f_;?w1A)Y+uc;oFqX zcH#YkDwp^Yt^4L`pB)aV>9frE%{?!YU3lA5!G`Oq4Qpm{M)S?27{XiF5j#;pX|o}K}e0Azu;74!`3L{FW8fwwD+FYy~G>;GzTLhg zEv;8(s%_?{DRXu&JGZC$+MA|B)oYG!n{>&jy0X;w?IYD6Rd?kMM!)~Oe##S%;NsJ- zuC>e6J-N8`wOn=0<7La|)jhlUd|v&+;?vir$JM3YUcG+r&uh1>?^SNke!i~X?%wB< z_iBIJ|9x}%aQs&p%c?csEAGF{KUeen?)Sgx^%nIHAFbaX`|EGN{r^R!h6i}3*k#1t zU};lrQLc&-KWrA=7!4Z?-MwGo-0;YhshiSkQ=-_;1|t?T~$d zHzSh>GiZ36gTZ>1dBobFr4y$DTd1diV{V{s2Mja-#TXc(oq>bFsd**wA(aKG#j&8) z8M*O?1m=00RO%a{x4= zG#BW1Y})f0q=k%tmY)V1A%kLh4loSB+95tiHUw)Z^sW}O?$&2uhzn(9;72j(1`pJv z;*!doRPb~qdKjP|C<)Wwz&ODMMKjv*lIZ53&yym|VJw1~gEWbPt{r{i1)=?YDO5Y! zGz_{4=o1kL6BNs#CZJ49pzB8;HAd*)QVG?MK8B2L1bY7)VZ_=7ti5q`1JFCV2m@Lh zkqyAs?L{{Wz3+%HtF8&zEYzMPx+&;gErcmko1vkC((yvqkKP_c=r?Fb%3`Rk!vJqq SU=9N1DnW)sVD?bz1@Qp5)2Jx` literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/Config.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/Config.docx new file mode 100644 index 0000000000000000000000000000000000000000..5af397f2c809826ed0d498143d0ebe55dbab84dc GIT binary patch literal 37288 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%0DVnG`1BWD9# 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/Config.scala b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/Config.scala deleted file mode 100644 index 337789ca1..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/Config.scala +++ /dev/null @@ -1,37 +0,0 @@ -package com.twitter.simclusters_v2.scio.multi_type_graph.assemble_multi_type_graph - -import com.twitter.simclusters_v2.thriftscala.RightNodeType - -object Config { - val RootMHPath: String = "manhattan_sequence_files/multi_type_graph/" - val RootThriftPath: String = "processed/multi_type_graph/" - val AdhocRootPath = "adhoc/multi_type_graph/" - val truncatedMultiTypeGraphMHOutputDir: String = "truncated_graph_mh" - val truncatedMultiTypeGraphThriftOutputDir: String = "truncated_graph_thrift" - val topKRightNounsMHOutputDir: String = "top_k_right_nouns_mh" - val topKRightNounsOutputDir: String = "top_k_right_nouns" - val fullMultiTypeGraphThriftOutputDir: String = "full_graph_thrift" - val HalfLifeInDaysForFavScore = 100 - val NumTopNounsForUnknownRightNodeType = 20 - val GlobalDefaultMinFrequencyOfRightNodeType = 100 - val TopKRightNounsForMHDump = 1000 - - // the topK most frequent nouns for each engagement type - val TopKConfig: Map[RightNodeType, Int] = Map( - RightNodeType.FollowUser -> 10000000, // 10M, current simclusters_v2 has this value set to 20M, providing this the most weight - RightNodeType.FavUser -> 5000000, - RightNodeType.BlockUser -> 1000000, - RightNodeType.AbuseReportUser -> 1000000, - RightNodeType.SpamReportUser -> 1000000, - RightNodeType.FollowTopic -> 5000, - RightNodeType.SignUpCountry -> 200, - RightNodeType.ConsumedLanguage -> 50, - RightNodeType.FavTweet -> 500000, - RightNodeType.ReplyTweet -> 500000, - RightNodeType.RetweetTweet -> 500000, - RightNodeType.NotifOpenOrClickTweet -> 500000, - RightNodeType.SearchQuery -> 500000 - ) - val SampledEmployeeIds: Set[Long] = - Set() -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/README.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/README.docx new file mode 100644 index 0000000000000000000000000000000000000000..7ba9ca173230cc23194382a3ceec5eb77637962e GIT binary patch literal 37344 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⁢63}Er`n)+FLH0$ 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/README.md b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/README.md deleted file mode 100644 index f258c9683..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Pre-requisites - -## Tutorial -Follow the tutorial Batch Job on Dataflow Quickstart on how to run a simple batch job on Dataflow. - -## GCP setup - -Ensure `gcloud` CLI is installed and `application_default_credentials.json` has been generated. - -## Data access - -If you want to run an adhoc job with your ldap, you will need access to multiple LDAP groups to read the datasets. - -# Running the job - -### Running an adhoc job - -```bash -export GCP_PROJECT_NAME='twttr-recos-ml-prod' - -./bazel bundle src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph:assemble-multi-type-graph-scio-adhoc-app - -bin/d6w create \ - ${GCP_PROJECT_NAME}/us-central1/assemble-multi-type-graph-scio-adhoc-app \ - src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.d6w \ - --jar dist/assemble-multi-type-graph-scio-adho-app.jar \ - --bind=profile.project=${GCP_PROJECT_NAME} \ - --bind=profile.user_name=${USER} \ - --bind=profile.date="2021-11-04" \ - --bind=profile.machine="n2-highmem-16" -``` - -### Scheduling the job on Workflow - -Scheduling a job will require a service account as `recos-platform`. -Remember this account will need permissions to read all the required dataset. - -```bash -export SERVICE_ACCOUNT='recos-platform' -export GCP_PROJECT_NAME='twttr-recos-ml-prod' - -bin/d6w schedule \ - ${GCP_PROJECT_NAME}/us-central1/assemble-multi-type-graph-scio-batch-app \ - src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-batch.d6w \ - --bind=profile.project=${GCP_PROJECT_NAME} \ - --bind=profile.user_name="recos-platform" \ - --bind=profile.date="2021-11-04" \ - --bind=profile.machine="n2-highmem-16" -``` diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.d6w b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.d6w deleted file mode 100644 index 835c48e71..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.d6w +++ /dev/null @@ -1,36 +0,0 @@ -# See -# Checkout the README to see how to deploy the job - -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - machine= Default(String, 'n2-highmem-16') - -job = Job( - name='assemble-multi-type-graph-scio-adhoc-app', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD') - ), - extra_args={ - "environment": '{{profile.environment}}', - "date": Quote('{{profile.date}}'), - }, - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - build_target='src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph:assemble-multi-type-graph-scio-adhoc-app', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT1H', - first_time='{{profile.date}}' - ) - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/assemble_multi_type_graph/assemble-multi-type-graph-scio-adhoc.docx new file mode 100644 index 0000000000000000000000000000000000000000..24e6c2d0f0613d1355caa9292539f7f15075ed0d GIT binary patch literal 37237 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/BUILD b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/BUILD deleted file mode 100644 index d8ca4cd90..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/BUILD +++ /dev/null @@ -1,13 +0,0 @@ -scala_library( - sources = [ - "*.scala", - ], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "beam-internal/src/main/scala/com/twitter/beam/io/dal", - "beam-internal/src/main/scala/com/twitter/scio_internal/runner/dataflow", - "src/scala/com/twitter/simclusters_v2/hdfs_sources", - "src/scala/com/twitter/simclusters_v2/scalding", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/BUILD.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..4d314e6ba87f75b98a39c12da2c3e0080983b86d GIT binary patch literal 36813 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 z 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𝔇yf_qE@v&ZGLR(u4alZ_UEEi9wjZ#EVfL~`QTQw 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 z%0D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 0 - case _: Noun.Country => 1 - case _: Noun.Language => 2 - case _: Noun.Query => 3 - case _: Noun.TopicId => 4 - case _: Noun.TweetId => 5 - } - - override def compare(x: Noun, y: Noun): Int = nounTypeOrder(x) compare nounTypeOrder(y) - } - - val rightNodeTypeOrdering: Ordering[RightNodeType] = ordSer[RightNodeType] - - val rightNodeOrdering: Ordering[RightNode] = - new Ordering[RightNode] { - override def compare(x: RightNode, y: RightNode): Int = { - Ordering - .Tuple2(rightNodeTypeOrdering, nounOrdering) - .compare((x.rightNodeType, x.noun), (y.rightNodeType, y.noun)) - } - } - - def getTruncatedMultiTypeGraph( - noOlderThan: Duration = Duration.fromDays(14) - )( - implicit sc: ScioContext - ): SCollection[(Long, RightNode, Double)] = { - sc.customInput( - "ReadTruncatedMultiTypeGraph", - DAL - .readMostRecentSnapshotNoOlderThan( - TruncatedMultiTypeGraphScioScalaDataset, - noOlderThan, - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod - ) - ).flatMap { - case KeyVal(LeftNode.UserId(userId), rightNodesList) => - rightNodesList.rightNodeWithEdgeWeightList.map(rightNodeWithWeight => - (userId, rightNodeWithWeight.rightNode, rightNodeWithWeight.weight)) - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/BUILD b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/BUILD deleted file mode 100644 index fa06b6d7a..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/BUILD +++ /dev/null @@ -1,92 +0,0 @@ -scala_library( - name = "multi-type-graph-scio-sims-lib", - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":right_node_cosine_similarity_scio_adhoc-scala", - ":right_node_sim_hash_scio_adhoc-scala", - "3rdparty/jvm/com/twitter/bijection:scrooge", - "beam-internal/src/main/scala/com/twitter/beam/io/dal", - "beam-internal/src/main/scala/com/twitter/beam/io/manhattan", - "beam-internal/src/main/scala/com/twitter/beam/job", - "beam-internal/src/main/scala/com/twitter/beam/transform", - "beam-internal/src/main/scala/com/twitter/scio_internal/runner/dataflow", - "src/scala/com/twitter/simclusters_v2/hdfs_sources", - "src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/common", - "src/scala/com/twitter/wtf/dataflow/cosine_similarity/common", - ], -) - -jvm_binary( - name = "multi-type-graph-sim-hash-scio-adhoc-app", - main = "com.twitter.simclusters_v2.scio.multi_type_graph.multi_type_graph_sims.RightNodeSimHashScioAdhocApp", - platform = "java8", - dependencies = [ - ":multi-type-graph-scio-sims-lib", - "beam-internal/src/main/scala/com/twitter/beam/runner/dataflow", - ], -) - -jvm_binary( - name = "multi-type-graph-sim-hash-scio-batch-app", - main = "com.twitter.simclusters_v2.scio.multi_type_graph.multi_type_graph_sims.RightNodeSimHashScioBatchApp", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":multi-type-graph-scio-sims-lib", - "beam-internal/src/main/scala/com/twitter/beam/runner/dataflow", - ], -) - -jvm_binary( - name = "multi-type-graph-cosine-similarity-scio-adhoc-app", - main = "com.twitter.simclusters_v2.scio.multi_type_graph.multi_type_graph_sims.RightNodeCosineSimilarityScioAdhocApp", - platform = "java8", - dependencies = [ - ":multi-type-graph-scio-sims-lib", - "beam-internal/src/main/scala/com/twitter/beam/runner/dataflow", - ], -) - -jvm_binary( - name = "multi-type-graph-cosine-similarity-scio-batch-app", - main = "com.twitter.simclusters_v2.scio.multi_type_graph.multi_type_graph_sims.RightNodeCosineSimilarityScioBatchApp", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":multi-type-graph-scio-sims-lib", - "beam-internal/src/main/scala/com/twitter/beam/runner/dataflow", - ], -) - -create_datasets( - base_name = "right_node_sim_hash_scio_adhoc", - java_schema = "com.twitter.simclusters_v2.thriftjava.RightNodeSimHashSketch", - platform = "java8", - role = "cassowary", - scala_schema = "com.twitter.simclusters_v2.thriftscala.RightNodeSimHashSketch", - segment_type = "snapshot", - tags = ["bazel-compatible"], - java_dependencies = [ - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-java", - ], - scala_dependencies = [ - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - ], -) - -create_datasets( - base_name = "right_node_cosine_similarity_scio_adhoc", - key_type = "com.twitter.simclusters_v2.thriftscala.RightNode", - platform = "java8", - role = "cassowary", - scala_schema = "com.twitter.simclusters_v2.hdfs_sources.injections.MultiTypeGraphInjections.similarRightNodesInjection", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "com.twitter.simclusters_v2.thriftscala.SimilarRightNodes", - scala_dependencies = [ - "src/scala/com/twitter/scalding_internal/multiformat/format", - "src/scala/com/twitter/simclusters_v2/hdfs_sources/injections", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/BUILD.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..33940a6d47139b2801ee20b7d0761bc59efb2252 GIT binary patch literal 37351 zcmagEWmsIvwm*z(a1HM6?hb+A?h-U;<4)tj-QC?Cg1bWq?iM5v-2LB~nRCv}x%a;B zm)%cS)%wX=yQ^yNE+tt=C`>RgFgP&&bZ)IGm7=&La4@hj7%(slP^+#uz|Pss&e>4S z!`{qEpUK_UrYT8Yaa9EM%h?N7GP4kgmpBSm`Hnq}JwqIxL`}vGkM^V@j?s6TWU_58{53*)K~>R2o^<83>;3}yY5x=S3hw5YCA#NHt7*Jl$fZGL324`d&NP}X zK8&*f7=V;qGiP{7Rof36xA1%6W@l+5KarzYdo^BGWr&_D??1(+x~0_>fbO#qH&zi;xa_;H1P z7F5YQZ^=1%jj$_JI7t~g@T2gL(wP2BZMPhp@;2kyT$7u-g|<4m^sYpk{KHrFLhIa3 zEs!R`@xjC)acBOf;fUH;udBw`Yfssdbi7qbL49XEkF%Fl7JMdSJrT-y?+|LUA!RaH z_2m{q`N#+AIXULOOp#`_subrPim9T>FMrVxiKqEWjzqGDN&C~^pC~MWJiY;~tfiO; zEEBCX4?HY+;FH{x0o3eL1$?06whfdkUbT+m&f$hGE8c1|(yDXq*GH2}R$m~Y4pPvs z4}(T3`Z1C$10B?@++mMU>N2+*&o*w!%-G933{NT_N==-nE3hLr#95H*->2 zDH4zex2Eg50T?K%8=jlnSz~mf^b>YAZDp^;cxfKzp-%Y(%v{ey9(EJ72!YQ^yt}@z zWX(vF!7LHYgp&Cx{hgs}GXJo__wB>$`y~SUd+rM;+#?HQ1KL?P@z>|ROZSkf$qO5w

    R!9SQi-4_K`{{E=Hl7b;^Ka+U>XHw$C9@EYK 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 bNLdWEbr|5y3d}*ETqVem2+SUaJs=(cHjOgu literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/Config.scala b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/Config.scala deleted file mode 100644 index de0dc39c0..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/Config.scala +++ /dev/null @@ -1,18 +0,0 @@ -package com.twitter.simclusters_v2.scio -package multi_type_graph.multi_type_graph_sims - -object Config { - // Config settings for RightNodeSimHashScioBaseApp job - // Number of hashes to generate in the sketch - val numHashes: Int = 8192 // each is a bit, so this results in 1KB uncompressed sketch/user - // Reduce skew by letting each reducers process a limited number of followers/user - val maxNumNeighborsPerReducers: Int = 300000 - val simsHashJobOutputDirectory: String = "right_node/sims/sim_hash" - - // Config settings for RightNodeCosineSimilarityScioBaseApp job - val numSims: Int = 500 - val minCosineSimilarityThreshold: Double = 0.01 - val maxOutDegree: Int = 10000 - val cosineSimJobOutputDirectory = "right_node/sims/cosine_similarity" - -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioApp.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioApp.docx new file mode 100644 index 0000000000000000000000000000000000000000..328483e5a3a3cebac50b81d8f96f88267e923490 GIT binary patch literal 37395 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

    -T`r!Oy{iN@mR%X-y{)qs>E8 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 Boolean = - ApproximateMatrixSelfTransposeMultiplicationJob.filterCandidateSimilarityPair -} - -/** -To deploy the job: - -bin/d6w schedule \ - ${GCP_PROJECT_NAME}/us-central1/multi-type-graph-cosine-similarity-scio-batch-app \ - src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-batch.d6w \ - --bind=profile.project=${GCP_PROJECT_NAME} \ - --bind=profile.user_name=recos-platform \ - --bind=profile.date="2021-12-01" \ - --bind=profile.machine="n2d-highmem-16" - */ -object RightNodeCosineSimilarityScioBatchApp extends RightNodeCosineSimilarityScioBaseApp { - override val isAdhoc = false - override val cosineSimKeyValSnapshotDataset: KeyValDALDataset[ - KeyVal[RightNode, SimilarRightNodes] - ] = - RightNodeCosineSimilarityScioScalaDataset - override val filterCandidateSimilarityPair: (Double, Double, Double) => Boolean = - ApproximateMatrixSelfTransposeMultiplicationJob.filterCandidateSimilarityPair -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioBaseApp.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioBaseApp.docx new file mode 100644 index 0000000000000000000000000000000000000000..7ef5d4b7bb073a22826ec7650e1f104b91a7e2a3 GIT binary patch literal 38008 zcmagFWmp_t)-H@|a1HM6?hb+A?h-U;nBue2?|q2Y8U(w&Tc~u!B~JDAvos6IAWOXqHwu`}%(?d^<4I+fr1uEthhXa3 zvb;aeaDlVz)eZ0&qKBM|<>>?_YdwO+P*=xlpc4;=z^Mq1LxlH04P9FJ1( z(SO|^S8{!w^m8M76!(|Rd0l3r(#W>XMCb_MNeef+P?!2<)RZvjRPQ=P-{@$e?$EH- zSB&gFj0iye@zb`K$!$WD{TQa9JnBYOXA|8j zc8r>j<#CWSp69(da@I+2AT4zxseTen23u!rwRiCS!2LaKaV&+<<8qk6{rsG~?WDT@ zD9SfZb>VsyplEE$7&|ZbyTh?Kna^!rutOattZ7y06KEMQAVGaIIZ9b-*P<>_v|=D}Bwr-d zn>Kk?V&^MevfACHETON3-A8nIzGq^-m|2LwOkZLXq-m_Z5SYKzr?o|U*#tCPhf9I) z3?Ow^+YQ#X$%woqM;0-oy5}<2AQ7V9#2C`0Z9JP5tr3$jq_dSqE(=V4~y*uyONJ+3MucyAo~jk6haeZE!cY zLYjmmgb;_up9h#mAZla1tr=slKj%o&@m41X_n-GZ&0SGh@R^MFMk?cdK&Z=sl*we( zms_E$gvQFtPGLL*vvYY7op z7Ft<8czDX-7rAKzsJZ1z_#np}8z@)28Xd*mqfK2_ytNjjHRrmHCzC5yKVL!}q~PD5 zhKy7Wvdn1eVAu#wT_2%8pn$WBD5tBqwP~ zH8V*Dvs5$-N~S~l2SfK%!BL~%`=_^$%LMcf+?P#2v~zCaZ!i5<`2X3Lo3%BZ z6Hs4lpuoUT|Gh6??Ct+*i`sA};C`MF5zSe%N^eCGVa`5?OvBT2-PV5I|% z!e@F`NV0ySuJZFPQx&OT%`i1Z3gNRcF+RNs?V0A`q4<)HzJhKvRxT$Vnk(f_h;KXi zK7blJ$yyLs>65F@F7f?WyjN7FOIy~%?MD|u#A7!Y9^bY`c%sx(c$?R;s0pHgHk+-~ zWT7d|Eeih7EF5(&8^!q4!8IA-V#QBgotexp%tROPnUB}_?+drTiU0G)XlKr335Ep& z8)N(X1M3EGG-U>TYF%tWgVUco<5YJ;b&Utruct>WH5C0IA_44^m*oJG{Lu&&g7{Z} z9qu=@7MsfDgii?=Kc-*LTN6%~Q9oN^wEMIP80og$$pU*elBcePYZGzh%hcp9`gBm- zmQeR|E!E#~WWIy(Q@JKGk7h$K&&~Hflm7d?sPR;(YiEZo|Iy$PRu6&0A~z-iGO`1C7OKC|tVYM=Yw=T^EXIQKLTf!5`yxTe3)YQk3ytST(f# z@?L8bj8D=Dv;=g4C}>+V)RYcPkFS_s8?aSjq^!A@sAzUq43y>kTQ|>gs@!&MS+<5U z@x@r2EdfJFKeWw(MJ7mlPu*aH5e{;<@(Ay(rk?P zS-((O@#`N*q!=Ze)|=yaru>LhO5o^kg=G=}YbF?(c9R`TP?NSj%~#3SW@&`!HF;pi z)SI*JLNM_TM=~X2;U~%nk`-d1FGPq9C5tJyP;wbs|7_7wMA6radPPfgO2~77Ubdd; zc+@}Qe+g?!)u3Lxg49hsL`j4uuLy_oOW8^_iQLyd2QG$v%2*&O#BDz;R-2L8JdR;U z4MURCSJr}9`hzUbIBdqAzyXDN{P$@O`q;q|)J`MR!-OCT7YjOMO=p;3L?<4M;PB63 z5Eu&NV-SLiY}Ys7j~rfoJn@aJrf6s?IQ|Z;9K&l!xZPk&@3MM)dzK3w`Azg1+;jRr zVUNYa<;0GMs2QSe`0Gy7C~LzbqIOL#(07;7aM&-zQW)yDzenZvU(mBZ5yjKLlv|C7tTra?TvyL?Kt`LGz(Hde{j=o5kMs!*TJ6`h5FHW!C&*Is7f-SQt7h%fN~xd~ zI6Njg(&zhGWd{vIAh-^c4#ULreiSigf#HvtvZ47LV))uv12{C*1_a!$*lf)LaRZVm z>sA57yV+B=D+b~+xmR4Q?`*`%hfD*jaEyS`$2Aq^lspT>;y$begP(k^cr?;PO&$I= zpVAfB1&z_4K9O1&QP_%skwHKG^bdK+3H58>N#FDDlhf62&aT-dD8w2xv$fc%SFLG@ zrBUt<0;j_=}#@%n7bIZULKiP7ats;R@va zed!Zd7_cf7XD?J5!CY`WN^;Dwvb_GnG(?f@O zIq4>Dg*Z>uwRokwzsx*1zh4-;+jDrY#f^Kxy5}mUVXk+692`-3Kw>dq^YKm|;Zu-~ z5F$6*!$Kkoc}jO`b~IO44CeZ<=GZ3v`BR?|ipTw( z0e_*0^i8X2#+jk&O!3rp%p5gq7&u)cSaW1o)GhQn(JXvHeE~9<&%ScTNwMTp%j(X9 zqeFY$M`Kwz_BB>}v1dDI$KRJN8KHQv&1S_M6pIMT9*B@;_<(sVDuRX&?tT)2coZ#B4k%fZ=bHotPgAAyq^n-&-syFBe+dD?n$1>&hY*KhFbpc0X))37|XzUbT_S8p8nhEi0DCOS=_PD*&08BZQiCR zIoXejZDBgyZP8iYw!?F8_7T!obv1inWo0ZT&s}}61^Cz3MA6DMAKvvxlM}N_0=^XU zI^f*K3SLT(Nt)@W))qHU{yUQ+4g$YG;GAe>YkT_!r=pbo+p{Xq`A-xA^Z{4|THLKO z!TLeDnrbFdwb7>q7rCI-jWG1wKn_JN#z(M=eAkcWs|MJ=^Zb-pbQt_ShLNB9y`ZP9 zzKTZ?v!4be>GE&%i?nn8wtRDOD}AC)+Iau3MTnh0J~|s{E;j+1%MpO)a(@lkf3HOT zec=9kRgxsC7{r46?fea)KO_;e#4hsV?*b|yom6eHcZk$#!kzg3mhOfrgZOU1-aVI3 zF1794)Sc?$COf0#?8xSa(^X)|1v1+1=j-*r*zBO>`Kxj+MCZv4{&CPN41d?4&)wEr8 zRatKfZ)7<2Z7Vct1oopr)h{m?>63F(8ttARe!qP%CGdNNH9#+iA5-5wib%_G3W>L ze@>60E3x?_nZdve)S>vAT-7#^;KJ2LApWY$e)#&Fn-qv)9*LzfPNT zUqj-U%-6FG?tvbp?snaCjpx#-vuhy0_Z8Qh|MB3=UFR$(W$o4O^(<3(X$0{082kSC zymTH@D%^Uqr~mM{aS2Ra06rhi{kjE)hVC7Eyfz5D*}ivdhA{iC5*wtHUd#*}hNkZC zOst)>R=!T0Ts3*D+i;f(6Ib>1b}4@24U1}czp-r8@p@iZoA7jt5PrAU0t}$t1NW{E zZrwkgR*rr(ybmp18t`ovA{wypUC9~o(zbJ5`tnWTOJ3^Kah>p)aP}LvkeuVEOQoHW z(4YrH=Cx;#D7P)Y%~O<#k<+IQAD-{8!eUc`r<$9f1)HrGpOhbwuMmYFmEX`i;vI1A z^6bQIV$Z7a5%)6^tour^NmuS^Oy=`N^6iy-1|j#vO{A|QqvtEHC;4?^=Z`+7vG0loQ8F-U8}<8JCupo>G# z(D`OU8&N`QYlL6x41KhPeRx8cJAtugAvk`oZ-)csesHfh8?Vk8dM|apE1g>cg4J&4 zXQ8RwXF1%8C+|K6=e~k9xpqtM7=zs@QEjU|rwWH_v4Gu&pYQcLJyJRN-5t78T#vL* zyW9Y)O-uJ$&+(w+9dX=5r~vPp+0(H zenpJ zJfF@z+21?7j>z0y3!k0~WhqNF>o3e-3>;iv|2i9R%Hp68X(uSwjD8cke5(_mUhxa{XP)%sb#Y zw=4>v8Oxk)*%{Xw5wfJk=Zf=u`gZZlmOhJU_y?Ld7U><_4^eMILmHW=Vsf5Dp>y*} z_0e^S7d6t@&(g}$W#}qN?3KX``58B#Tw$XICw4-QGKyVc#|6f9LKo%zIr$ZI68oPgp>`+$ z;G+MyzNQ(Ek_n30197xpW)tF{*ryx`pi~mjb+mt_>VVKfK)C;r`ZpC+IrX^}sr!Es zoGX)qA_#w}Na=(&&HrB#{|740^Qs0rFcoywzYBB42kB8k1$o76`pHOw$oO9p8A;%% zJrLpkQazvO){NTu=c<2&ik!rord@&E7zR0f5;_Yc-9#ELKIf0%e%gLI#EZb>-p>e< z0jbnUab;~S?%i8{?HIbtwoU{RTJr}Ez?G2+n>U6iK_=alm-C^G=UbO{eY+tq(U*ax zN!R?Z%kI~@55sf0wL9*$zZQfP5BCqo3U(f%w}kauZzYIh>~@(}M3VJl&N<`p-k zw83N7)Nt`+DOcP;Wqba2UhuzhY-{mCT!(%psdnO|;b zcz54VmJ9n6vm-aQg^=~uTt79RVsaX^f<z^h*M1` zeftMZM>M^$gN}sgU!Pm@YfN1Rk}kE%p)CbT zr4ex)e}mg{TH$P@VL;Ng4!mi)eW`ZV|J<=CF( zOXpjgaP}SZ%ghM0=NlNxN~TAf5R~B-ur+n$mh@32{+ZKgJ-D#!%*hE^QhtJJBKIy8 zSvm^8qf_lHN2Ogh2=KjT;rRulr^j2_|B_SZMP1^tiR2Lp@QhW5O@EsJ)AAX~hVg(Wj% zD#bly1m12rMFjwDljhuHs)F%}hY;RrqOeKF_$vKiv#pdh(}M+=M2mGR9%SmkK&Arz z*0#i6b;?$Bok4wMO`LXlhSCgY5umGI-$R!+d? z2_o*VV>T_z;lRB8IK`~@`W5URcSVDFa?vvH6LtHPoicw;0+>Zqy>XfhL^h3|kC9eV zqfdle@;7n_c)IC??`Xx{F1r)>oJ(c3bXb_xX8itnn}hqYW$tKg^+omUCH-^UsBRAYZnV%R4a;H_#lYaWG_qL!sc zp3K|Ds&%PE-$L!n{-~4pksKbY80I?>UZG}~#ZO_skcHy(5O*kFIW4ci$*d>J_g2@A z4)Du9v11>MQ+C27TOw$f(Jzo^Al_Lbr1OT-7JZ>j;&p;Jki`PXC}!Sym* zVJSm>AQ|D?`@`GQA^}d7EJ_v&PtUSDN1gf?&O!tQHHwO_d_2n)btf7_ikJ6UHu4m; zzw$zr**&)v+U8pXu%wPU;SbwByTL1TvjQ^c`rE47K0;=-B= z)i(VUoTS+u$$^WD_RJnh^`S#sU%G^XD`RnvVY^_?``YM%m<)Z)=V~6YhTSqmjVeFu zl%mshm9=*17AK$)u!MU>M#oXlYK%33a)hvz;!TQMhF#(F6ptv|UJ;_XjYVU6kzi@@ zT^8Aj(<-!=RohOad>rMFHPex14rM;pXs=b@b*7CTwE9HduN747ZIqwz7wt~3kedfh>1$^n|1P%TC zMS(raF6P*5fTeY)g!B5Uj8ET2)q!J12@Ka|8P}pwbmt~|f>@s7^wfIgj9?kZ2V?5Vfu?UU7K8s0uw{EqbWa#%%W6|r3_u*&7i ziVk-r18S`fW}K^|R;K09o%>f?k+K6i({d4~mpFura7SjU z6wuG6LrG>!)DDhdv8X55dG~odDevFY;W8rqU7@@8j>scG=3Yjwmg$mb3x2M}s|f-%mUO?}WH$LOVRx zL#=JQ_*;}PoUAN%B~Op`uis0jcH9x7y=I(;5PwbI{eXC&tmH^qUtWRM7)w^K&WX!` zaLu%}J&Tup)KqTQ%K^UWo;`_65u@NR3Kk)av7WffXq@J#?-?PTA9we|6c7b+%$ua$ zh4xgV941F%9a!KY8rJ6fXj#$m9bTA%PKO}TWj{65MH)XCtcY@ox z;>1aoMKj2bPT_vtT`|~x=KY$G%l;g-p@dZwwyCANje8W`g`wbd!{uVL8%`X2@so?cq)+C~%5WCHA`o*H-?~%? zva6o^w{^_s@Y#F=&TlAFH~233!|TVd<6cVk5VZs;-!o&JI{mrxrY<2G;JV_?;JeZx z74)|5rR405Eo$ztyS~s#qjh1;ESnc_-vz8?6t*gF%Z;$RLUbhmX z=?F;`1T%#t4yXw~nrht`@>lf&?iVBHwHgVy5Gs_o?7(+AYKZ~(rY|8j{kcXEN6Bua zQYdfCKk&c{Y+YXA(_K56=l&^C(JcPq_J}m``W~^Qk2uYH^XwRc40n zRO-bzF6Na$Nv*)SO*oCSDGl`W=!*VPhO@aGrc`U?hu)QmAJCbjL*;^Ydr*~O`#5Vc zFAL6$c@gYsi99<{d@R{z%1^OYo@Zd7SjKT2!W~RDU%9#@d0wJa=OQ?7RS{IiZLwfe znIu$bfZ(3*PdzW|6h_3Pe%)cvKp1nXro>#Es)2Xgk8g=~tbQ6==*G?%x1<_b!&I=D zrQXPB{uJd&yBz|Nqr^N#>e;5&RhDWKYRYdp|6Dt85FX^Zmzqa%-_V~f!o*2~_K|(* z8pUOPOX(9O2@@<0N}sPApHvWmX6Dq0bn*F_Vaodk@#c)!wM1c+coZwYUCJ+<*Pl8! zPfj;d2h^G)s>fH}*G)2*97+{kCDse*{wdMOZqO#3yW7TsNd*D zZx(CCc8gHqRZ^~9!Ld0Etzc=$p z4GAK2Qw0U+SXrC#hm%EFcm)LWRIezlpIOj+BF~*0JUpg>xLTbl zjr6~`yHQpeX*yqp&A~1HMywsf1Q%^d3MR4|)cnQUGwVl7Z0}WU z@G;kfmPFdow(j%j8gdJi7&*g*COGNtS-OR}<-=ooh=du-T_+bzaF0-o5|FC__;NU{ zI$lBrivMBz67gSbye|KrY&4_p0o<3=OYx0|UrTGPbf74>0v|i%xNPT( z@b7HQn3EKF(4GPn(GI+{5wG%7$So8mp{DDcP&T8yBuY?W<`#xh;)RAypvGQ(7l`l_ zzU+&D5|0v^(!lfih-s1bg{3YO#hT2jLJ5hlS$W^pPdCstqrir4+ z6|bOoO$=Ecy%JO>fv=pTNH7@*p+4ik%pnjq%S-mg;0R7e+u5NhrCw-MdcuWJV}Y;H z{y(cpGYXY+?jCe9`YSLhv;F_lJeCN5;hJ1705fq;s^ShIb}Wogk9TTkjXl$a**RzO zyB+10=uKv;>)qE2CxkTE?bVK^4@%|wItWEqOpH)1zDg<|)L(wm5mBg#MuNFyRK_^uTj%Q zn$njiuC6W`4C&4q=9>h%K#mZV*MAI>3}#T{Cp4PjF9gHY%Mube5Sxl?@7xh>wI}qRNB16X)s5UPr2ZOy)pKw z*b)pS^bFs~8nZ{MYU9#*msq@Z&2qIr@OFU5C@@HEK_=pVHp(Desicgg%^{dDVZFFE z2_M32*jYDVpvqDR;9A9mh=)iQBXI;%g_HOYHZ+PzhCPRcEgrw3V7dqm;Rwra7W?~{ zJ(BbjckgWY(2>`!i7JCsEjw(pDeF+-xjO@lFBnmMniy9WOyWwG>YT&(64Wrv?*WNm zym1&b;Km{hQU<8?X*G4Y5tFWDjZCO<{Muw*2h#thk-RcPN4aDvU*?bR6~RBg`$Dzk z9DGhqSuY4&xd{IDEjb2)1RYrGd{}=3h7CD~3@MqmV5B#nMvk=%Pjkti|C`DKsXr=J ziJL$w2VnoGgaWTmGahOG<;`+nDvo1|5Fici@(ei|(DV)&7C>l1!WgC{r>XTp(wskD z8wYOm_HNSE=k$LN*El-Mp-ME@tg5x-_G^3}%zaCHibA|}X7}#`LJ5m=a(Ww-jkJ5o ze|+E0z)V`F;1)e(LuziE0?G`ts+?EA3%f4gw3qQ^cH^qKk5-kJb<Jcq z&4a83Lz{|LdTLNGk;h_5C1KFi)@b7EZWbtM`tKy3|DBXPwa<8aa5cyq?u35$hbpZK z$>u^n3uEG8kT;tBqh}}jVU=X_pYyKxrl^PWiudDLjaM{avad8?yIFt587XDt7GYXU zsHeltymzyP(?19rggY%3==?bkL}CkbIxh7xo7VQQ4=VPxhjdW*E1r^I%Eg+#B#_HP zopKrOglEBa<4!rP9clHK60T8_>GIsOWL}GXR{WGFR{Z}_m``{>=pvGZG4;1X*Z-~X zD(gCQDt@bq%TqaD^t9}wQ|E(^&J-?cq`Mq+(4>>HPlVfn{No zxpf0GOKItf0jDPc%(V0G`m=$4nX?YbXkOTcTLaL8eTorg7J&RM=bXi-x~1`8wN07i zpv)@CZlc~K`Z)_N z>h;g49_*(^ltyu zWdwg*UD1bbHa6{xk5kruI%dLOShJTI0lP~%{ed~<ItjPIPc zMID0W_T)CDLMa;>A!CE?jBx?*w_3`2QWVOdG$CC5<>9xjM5xcK9RHM@_V^L z2Gz%Vi8+n}ONbVB_3P+4j$h>!g-ifGdFw7f_8CXDD>RxsrlU=s|eA!q@h9S56PX+t#TWA#Ws;n=qxZv~;AILKo-{ zT0Mtw$L~z9t3GcTesO$s_qF=2%nKpjr#*{0r#s233kL~@;I(Xu`ikJW+%^>Ch6=!h zgRaOB$|Vi(oU`bM3GpYMu?T{04WYp11I;?NA;Sp3#Qej+zd*H-$Rv?4mr?VGR^OV2 z#zRb+z|pgG*>L5+=Cq|Yhhr-N)RCC&fwAV75S`C7J0Zr*jYa~*PF!QUlXb8za*%(9 zNvP2PjycFM@EvFnTIU}$chPECozTlaXw3F^FjK?qn#&WbgNS9V72j~$Y%dzz!8c)I zFT_ZHAKn?W?)+YCO8kuG)4&fe3Jq#?u$U%6nM2>FM=F`Mapcx3k9qSbF;Dk8R4;Ep8v zB%o=AJ2;axI`b&vF}#7&3Bv4`POxj-endIuOxSBui)M<6{}C50`bQjY@P*i=_2`)K zHt+8`V%7noCSPz8=syS82G9Yf#TT4G+VwTCDX)7Qy7+XAa2Sy#mbA0i0F&iPO6Xaa zIVH8Z!x#KoW8nhAEz}d6x!0`>!+_?@Epr;yL}3{SD&A=YsCcJvu%iJsZBYMNJlkBo ze-y8-%ceVRYB`bR9|{o$5cf|Ab|&ztr+Oi+j8v)f%H3(;Jj)5tA=K$$p|=ypSw%@C z?A2rjl~28W{BfcIK()`{bsq=Z3Jv=#2o#D-TM#}3-wy_cjrEVp3EI`oMIbGB-QohE zuvxmTUfztO*RdL8NsC8>3ure|xKu5;OfBYhBji9|4#V54)tSs!pWor1f&I$*?&>D% z1LVI1B46-Rr+qkF_h}LNM$JM~Ca8E@7w0RmP}q-m5f($g=1^+2o@3vI-7?+Uch}jA zu#9*Wc8<11-d!4v7IvP$Je2uNJ{>`}fou3|%Q?@ROZOQ(7ST2Cso9S2y7ECxvC9FT zwFjA{XUK@do(IiJG(ERBFHeeYVL*!VFTlKLyO8W{w%%|)(A<>! zt^%Nvo~(tO1hCm>&)dz(1@kE#fQlFV2>$`m$QPn8FfI3@En%|OaXp8n2OAHgrSFA7 z7;YI$VNn(RnjLH%{raQ;E$nfJr6(Te!NzDt?u3!8=Pom)f?ZfW34#dcH_7eaRM?9u z07Os`ASY+iXRr}d3G>Nmt}$>in`UY~wMK<{j+MVWzetQEZyaiJ+8L%9UNf4ntsEZ0 zsP2?f99V$0Q64NwlA~UW*GF<+zxHA)p4gsUTX(&3^a}|~{vqm~sdcT+oPHU{_trf| z>IT)o{}Fnx{KTGYK7>s;KvWcIq%t(*2B($?Yf(YZS#RZRM}6-u__6srLud5)%S-Q0 zQm^)Zw`wNW^S25Pdv)vR%c`)n$Uo|54_mH(Qo`1A_3CqB>oaE_mZRK6YrQ_$<+KQ` zOkE!!dLv`=6)prF|6@v?>2Qj?3Yp1$utKvvPd^pxH?I8)>3N+9sKLRwRswP3oKQS8 zv%mmJWZzP9ux!RYu_lCm$-oK<+no1>44hQy$^(AzqSBV>pL z<&_n*8_@bCiUJi1MGNsd&tMjMDQ(95FRH?yWty5@UC>>+Ug1R1%NL{R7y&uQoX-_MgB?9nPjPI8(!5ST8rX zzN#gin>@l;FLI0z`G+DtUH%BZWy2*PqPf@#d`nkT!T$h`9z^g>O`I*?{sb+IqzZ-g zf?MnM+Ucc#(fuf@2rV4NWxk?X+{h{dE$q{^l|)<1Jq?PgBKjWjDj728fn3*@Z(AJS z6s`{denxw{ZlnznmTfPIZXJ7q{ERFh_||Ck%@hX`gQUrWN@CKvY1GGj;T?L71as2n zMECFu>qhNDJZ(Pca^7Y6Wu!PTcle*p{J+-5weZn+Ses^i7a3IFJb+8rHmIX)(82(Z zhbz!l7&^7b0-Up5P5+Rt%e?e{12%m6nV(3DF#KBE9|whbVTFj=>?j{RkMhcN~r52;3}e&=@#7IG^5N+lybrqn9=|Qzw|Cr)QC27jOc9=SRRLu zL#kuh_}YV2f$x7io}HCfhbU9(QHK{@AG<#h7rN^9ZuNz?4cvz6W1SwQL{%W^j3ili z{M~ED%tnH{3G<PvDIT*>@?_=diO`^$!KQL9>H|P7wav?ugbSp%@l?INWf34tuAw#5|ix zY+m3a4$0+UBazh!i1q~QROx@yA9DPIzSP7*U>h1_{$QsK0E`3&9t?5(cRDTP$lk;2 z4K@k^l|KYtPp7Y&2P9^sVVn%2mH@1DLQ=961!KN_@!5HMSHhTTF_&ygvD;=IRt4Rs z>TOZk63>gY;wdF%JU^$5e7fjYrHe=fN6xKi-*ik;pVRd=7aq>&?(#t!;KoR!kY@{G zr6F^0FYDSAJ&rtBl+xoxK8$CneCdx4^X!Z7QJyD|ddG=<`^HkWjNHSJxTy|yLBCpT z^WP|tibW|DJB=~k;S_?HE?z>>At>vwc%HC2l|}R|TVw2@m)fDhJL8IKIi*!d^wwii zJa&sWmlJT);6E@d#j~-OLBL|*V)yn#Nl_A&u%lc<&>NitD5<36stV;Mb$B9KfvT_$ ztm;fDs&;mt+w^KuqdAR?c1`%SA*17`s3Sv|9cxdW8dlti+`BKT(diQ{%!YcwqSXV<%JF(4<0Dl$JKE){46gBf}jYuKBx!u^IX= z&eC-~BYmc&iE%s@mU_1As(|6~msxK%3jl|ye3)$m8*^H;#c#>wDqTtqs+sYKS6h#& z51R)mS|8cyCvI!TleN;Pt86f@*j&39*OcmE*)3nkR7DY_Va!%Hq;*o);jSV4( z9_*L8j233cA4-e);+Qcj*y(*5;l=qFrUr$6u+7aKHvA@!=O_(Z8u!b*SL z)r+*8sMLaGaj2Cp@*AE0goeIx_{?UqW|R&8JE%RWWCBYN>8TUpD03%~FP$K~- zDJLF6UaD-?Vm2-)i=+6DHVqRU>c(bQRaMI*StH}yKKXIg3S=|mP}^kx-cbl) zd+)p8^jDZ_P-R;_i&jIYjb=HL1q+ z*2l$$nAT4`i{Ct9hZzB1fsb1{;~4D5OcnPXCGNZTC!IieC=56%RJpj8G7B&8QgVMg zk-p65LL(aAN*A$^gqjS?GB7~7j8Z<1Qho?mI20Bf9jY2h8Hr!7HEJOAohEvf-U5{x z90TBNY6#G*P^R?bm=OtU+h-Gw?go;MV+&XbP$G@O^&_i4Z*(n-1Ll8Fqp^{vDicu> z#VOl<>gGnDR<{*{_QU=l$OUP#X_c*%UsS4sN7su_ho*J}tM;{9Mqw+je>sA}qUlafhn>VK&~MEP4qNbfbFLZz}sjg?Dv;GrTf zl3sdi1Txl}%d)^Fsn`o0=EvpW591j>=9dKbNtr7$<0Q<^QQ_i}< zshPX`5Rx<0H9e%E7ljA&V_x%6Y*YKxIjdf(N7rRvqlu}4jx@i&gLPqk?*-e97Rwj8 zH6K0FKh7kD$4BKV!@w`I#j!#moCH0dX6#hvw7r$y*{y?7ZQL;BBncW3aq|O0CB@+z zF9j&}`VE$;6hLcK$s(l&9JXl8Z7))IT2z%X4BE0&Y%3Jnhr&lwA?)sR1(J}bTy1jD z4I07S#*m#UN24-E5p$@Mo40tF%EtD*ph&`U9ld)n8(5j zI>JSN`M{J4U?*&JD`fG~!;QwobJyx5hqM+Z)Sn4j$BGvllN#kv@dpG`6p2XZD-`9m zsFw+X^3Y13NdI z1Q#;s=4`Q3P+siD9LT}@BpxaBmMab$AybqT0+Im3Za}I_E?N0uKq_~U{o~Rl@jJ?Y z?%Ox=2%O{P1Os!bg#p9+&wcxvmd;-#&CShBod4d!@1vhuDAjQK{D{?jJfxVD0!BJE z;WLd6F>ElgcbR_oAXHg7ub)wqaQvCB6|{?AB-bB(G*)^v_|!LzR^($`JG;{ea@fP0 z-iPBzSX+y7ex7>=+S8c`X$=o=Ydjp_k zrn+S+=4zl!xEXS>d1Pu2IQRAQ5Hjp6@3?a>EPdyFH=b}x9LWvN3~f!__w;M)a$DPXavaFK zJ+r*^Jmp?lOh{Bbl%gZ%xvn!b49!{13tbyp`sr7LbhZArcln8VW`w`i&VgqeH@+!+ zg4x}U6macLt$pE>e3D^v=&NzE)&t-M)GjS*SXIBay*XOaYr{ya@u=dsqZ&mrpH#3uInwe1x(y!o@gj zevfr)7Ra!bBMYy8bL^nwy{3#;=dwj_q%ETf`0b>AW|rtdDQL z^{;mWzgPS3&)GKYpU9V#!vi!mwz{yN?Cv|%Rl+V986?snR6C~+8sUznsyVqE zA~EL{+;Dr(D@b_{zOF&U-MJgRA)wIFHYkJ(3bEha3VUf0ymdeBNPpn$skxh(SiQBC zuFuN3O9vWauMHiZ?%w`l+K1*YInH>zxO13sn-dSre5>2CQ@PVMnQ(x!kz}q_jNGu& z1VkJ2_{wWi35ddoVmvLiU;cEM2fO1myqBZ)31WsxgGvz(ai35~|rWm=+xBi}z0Lk5L7T zsMaSUBg_m$B}Ll{gx4BV5PIiOf27CXaZdP_rYe7Zd5|V zrO>K}t{P+9c-MLBUd@JYeP}yp>ukNl-bg@3GiG~#ZdqAMGz}H&cyQ=4tZ|#*7fNJ; z_L@2^f(TNqD@M>FU)F`LLbGXrSj2SG^_7)atML~NeAVp5>yu(IinjlBuGe-Eb&+oz%7*ycYR7#Q!1eEuiAqwr*kEJ-EBOTae(^xVyVcu;A|Q z?(XjH?gV!ycme_Pnse^G@1E~}@BO0()q_#H=bCfws_M0O^{&NTg=z;n{Yw*UC9K8I zQ)WmTBvg2S!EX?E53|oO+5vv|W}>_W1W8#1xP#_9a0l@fa7P?)N1b>Zq{Dw8@K<13 zLEbX(dMWll8vXmzAC26nZ9(x%%05t5x|N9gJIc-VPKW z%CZ#%DKH2K#_P*v$H0&HC)^;CGqDnm=&1z_<|>K5+iK!GCG4 z6K{fC(k9&oHbVn8`;dlY?NllCg7kEM7xO##h~!9{^0ihfu?xhk9pglsA^^U=xlh^CeqoeGJfuEnE z@T3IYCw;cvxZPf^dE34JoLDcMTR(ABj~;Nrmwuf@#(Mwd{tR>FeWew2l)&*nO~a`!#pgj5lif>!WGA_Zv@p@7G{s!RnPs-KX8h!SUEh z`Apk|Z`+4{GmBr7QaP?29*=EveMFxZf6S)xwQqj8CY#t?t=>ufw$brRez>*zY<$69 z+Zi~1-N+!E@!iOXF}{xVxV|M?c-wuYuMvzWg@z#d&UcCN;|Er#+`cFG7WN_!&PkMs zKyEfVz(gP?+r;Z)Nd(Tot)l(&H2$ds7Lzeyj- zG8c2fj-yC7I?nAkgk`CHT#0|FI-)#q0qJKFcReXfbK;Bdi0i7?$ZWg(6(RSMWLXm5 zLL1EmvYhK&__+ik7V$6L@fX3CYoRJ?QOkUG{CQc4$~LX7D~So!1Kq1ohYorI*M6Xc zbql}L!t8%rh*pRB(;hJU(pO!;K#Qz(M+)U!fDbOl_Oh~tf#;JkobzsfCp zD7xHZeM#q_>+(IoZU0J8;3O~e_3eN++e2Tzzvm#4|Gj<;(bZ|)`}y@XR!kuC$md?` zZSi2D;k8Lnj}u?Eg7LL&{RbBlK7$>y{nHYAdW`CAkNl|nZo7}ybK7Q)QGBuEpom>c zLOnmFT|S|BdiCMSG|!3JdUek1{R~z!`(Px?Fp4gdF}2Dp(2wrYfr4%pZ7VocRh!u7uTGav?@kAC<+^0~lsBk^2cdd2c-3|dj*=t=nkr=4&52Lsv#qU32Hje>U0Y5&J$1Xy4ASYAKa_r&wkyk8T6(! zCOJ73h)SLIXP8o6-yU_84!<~SjXmCc1(&6`N=~RgRuL`QV{|4E%t31Fu(@nnF{Q9R z$)6NWnJ($H;ZAE>G4J2Fzi%*d+RkQVuKa1|8gn=no4S(;|j;0A$lZD3+_r>7g;LI< z88g0St8;zc<)(3_rE=(r9iiHHI#?XK)R4)2cN z{mSDxgx$htaU-)f)LVVpcvScSi}1#yEoW=kY^ZX)i=5h6TkIaS?{ zUfvzhyg#P>ric(3Y=)03Ot7RCMA^LE@81)A3T5r+^Sz3`Q_LImc2ux_>E_$Ynp7CL zJiGU5Cw%s5*Lws@7sTOifWlN16z6l$}gufBPeN zCF0i+TtDx}J!eFxgf2>vmS)~I{3wIM@@#O^F;%HY?#9uma$-$Vk2idl7#10hji}uL zyKK#DsJ)dxF;RyNVattHDhsEkAgEo#ON9fOdT-03xI|56qG*3W8iw3g0nP)Y@u{QF zQO=p#=c|=EYri}!E&e*A;WLe6qltZ!-4Y3o5phd6(4VMG-%A)rlsvDO9`$!h48qGs zzsP10N&MY*>7m&jhgsP*S6w=YY4S2|;N;oa5OZEW0U_3;{_{>w6K}v)=EzH_(*Ij^ zrgHG*g{sT9>xIW>#&w(APv`pE`S<-6yU8vV?}_KF13r>)HyPVK3}&KhTi@GhpA}Sm z7;DY57CHbJ9+Ir4xiAtVw)Q3y9U2_TlY%EFp2|}`Q4A-%HQpn=EvtQcFsa#jYm2*fS~XD|W=egsom)okK$o7ipj}uMV8F-LcN& z0QDo&I3}A}-uszk!UB}qD%L@(M-`UGStW|q$;-Sr-;a<*uU<1a5b+_zzf z;LGB2+s*bVc-AxUC1c+-nOP^06Udr*uMR?cKOU~a` z>AW@yd#@2sw3!z=nSW?=I@s@SD~PD!HKTWePnJ<^;u+N0A`En&an!~DAJV3;shOgF z5YOSEts*W2;34|*^eWv!dD#NM_BFOXX_)$X-N3tHSS-ZTEf~fuH~X>;UYM_qks;ojBUKFpyR^I*Jam@0>)yuy@)+iCIr;^!E9^YEvd_e&_aI4{YR29hXZY-(B6U+w3QY~lJgt-0w;Q){#VWqK zTdz;z$`3K#k~ZL2Zkv`8HjE8wTR(I*^Kaj!+XE@?Rgar%ti}s=?;%_*MKX4A&~~NK5E)WlRAIyYQ8j$K1s&P^$9VlPR;g|j6k-pma?z*YxO48 z2U2vmzJon*Eef>f-s68PfVZEPwnudCo8y^lX@xRqLO`IgzxuJUY@D3x#$9`zW%?}J!SEh2$xCaWNz`*9ycRY#xh5yJ(}y{jnUTYXPwqt2GaKL->JjCoEt=DuqX>7 zsj#|PS89=$3_uihtL=25D%z3 z)+Sb~rwOkB%pfpJUz~A|nAQBcru#sI>;%VLLt$uTBFsb}&?&@FNyqd;5(+|+&`qDu zIuKwO38^D8w11(H*6Dt#E3MGA4C~8kaMOYuajRe?6`k8h7hl$!G6;e}Aq63*b7VME z2?ObyLqK48WRDQxGQn~gC%OWJ{dY(d(0_-#SThHPbiMp5B=1wmQoZ@VLS{jskP3zM zA<6aSC`}ZTfH_;ySYu#s&^$(?2uCWXF^L+?qK_ch8A6eX8r+fvBCU0%xX_A%7+64s z9#>WnNjZ^3~T%p@IVT}rtKG$wziGlsR${7U1%NopM zjjF*G%o3=b)(?ZK@j8|V{!~Me4TlPXo#9VXmcu(wKSO2Gn=t`A8veU$mbD;2+8>Em z2}o}|L?8sdKv0Ij?B6c^l%6}ndWE>fVO;2#dd0NVH*$+)XTl&w;UaExcfkFhe56Gn zj3`|gwY4C{-;1a_z%Y-@EZKkS|~>W^~=Y>HafS&7uVx% z`{*#A|8s`{2uOd8-Z?%#-2vx)(>7m$Spm16^Vg2kYf^tY2E$`sMbc61~$Q z{T>}2Or71B)*cAGPucKlly~A~?`mT2X=Cs1lAH()mVqg|-@VcI=Oy}~pH7B{fyS(w zG#YjJ8nr|-)=C<_h?lIw(4N}drwq7-|vGlX{)(! zlE`|!EP8+V384=Xj8p(eP!!E)bm@ufcgYCSHov5win@F>BX3^z9=Y}(C*{LOu+lM8 z(vPuljZZhcnQ`51YIhXPt!`d;x_qXlx2NRX->SXd6tmo`0OJ9vpW$kEy7YopbD!$y zjvviGyScxOxWD=H<;qK+%d{oqB`uZIngGlu)mf?Q_vqFW?_Nw91};KZcfwYg1SxR! zO|&%3GW0E?^6eLiVZ_x>sAYC^TuY#8a|bW}7Ph+6v-$&g2GeTZG)U|{X08I6E)qTs zb-h=~Al2?**ZShhn+b>0U#Z$DC}s8}@T4>7kLL}A)SAdoT%^o5xF+bHXoFM5B9&r!O3 z61(1SO$1;*KS6O+Y~~elexq?Ldp6ucB#W_j|%Zx2c|>7^uGc+xnyh z+%G_2f163*9UT{Sxt#uZmdZCIj6l{SUX{yn4A7LO|BIe;q$7B}{(tJR_r;MRYeBrY zAlEv5yf?iql-y2z+}}Hd=XoA%K%|jZxB99y(=+*@q;w-V;T*D#nZD`l4PzU`O2d9(Zp11ZUK&hL6XIYy8e28RV~6iy%&xs+Xu!=`#>a1A0b9Vu!R|u zEJ=nid!zI71xOJu$=)e}WtiD;yeO1vo!kwo&2>z3RS2DP(;CB82=J+ zE+oSKAp*$i|1BbVNVHL=TkmfHEP1f=2y|V9W*dd9=P1*c!89MV+!%cc{8XsO@w>?o z=cn);fjP$KKA{ql3{Xh%aI>B?3pbjtKt3Pwq1Z_>41-sT#G^`kMxQ8N!KO$u!uQb& zaB%(>y~^5 zBG)`ZLI_||L|Vj^9xt`Ktpr3gUYD!Oo`2rAqo==$Hh+!-%RQon^gV1&a@`enfXB)Z zcYt^0mjC9U9H#8qzi&fCjz!*zn&*E^%Zh*P(_%v|>*NR7|(oNrBcwER=@JgK!KOgiUINkswlh(X5!_lUuyZia!5 z5cKHChA0Uu=|jaGEi1v_Dm*}g%=B!+2BlP9-|t=(+?4*MLpkpRsN>!F-#XsMHyc<< z{~sh=3pBHQhaX=QQk3+*{bj|cv=1wul>QCzR0g!-)BnSY5yQja;X|mC(1yf2D{pd- ziOJh_+~HNL9z%rI&pse-)p2k1nO1WdQ&v3EQBAhC?GT;4Gh08<^{3X~ICkm*oRY_? z2^PFLxcv5@R#pJRH;-MM8tFhAMU%cE6k}W5GdHC_c&xM5648WeZ`jTu66<4e7l0q3 zmU_I0WAnZn7cGaPfA51NC{3cfV82hLBbgq{!my#3NjA7e zG~$am1xzGZ72yX94TjGt`HR!H=VK%_T%bj-#R(VrOBOTo`?zR{3lE3w0Pbx#;{a)cTP4{)G(whipu1Eo`VT4tx|Vsj9s)wOs`@IzJ8Y z`j8@}0Pa zJ>F9kYiwG74h)qJh81?f|8P|_AI-071h0oOLX?Uoa;!0yge1{)iUtz{ib2()T?tG6 zQXin^rdx%I$NHhD38a#!(5^+JP-zTKx!YxqWQDn>x4z^_y>vJOGX&HK5jsc<&6=Bb zh$jhSpLj*6iliJsbvxdQ)BM9^oJ0CTxN1+-!ea(EpHxq6ZlWfV!$<@Q7(5!&;L&(# z8q-=un%Sr#6^VBUH$>V%Zh68kl4BYfdSxb=9m3Y^7$^ z6rDn9`XO9EP)Y=c(GgX3Ua~Hh^-u_c5#kUoL*MymSti3u89MTa3KM}#7)O*|Yst3L z|0auzZvEb)`&muhU%Hl<=AGS6H}fp3U=MM@*GBck`-b~#AU8B~xj{@9OL?mD;q>?r z=210<+Fi)y+e%QkK*eX|=Vl3K-Qj@>#%j)Q^becfqiV@XF0h(~9iq`B&zA}7?qc4r zW+By%g$V*kKMyky7JRc3tv7R8=ib3->V#@C@+3GVH9w&@F?->_GT?tCdrd0nJS-}# zR3eDL3@lEB!b|BPuCIVtIH?&XqO3RPlcW)ppb5F6VT?Z|uGA;<17f6Ssx(AV#RIZ( z<>B)P6ORf>#dri27B3t*f?9X{C>bXr-sQ+V6r*DqSNRgrOJu?SD?YDo-Jh5*|0SyRM{w0>k9Rh2a3ya;in zVGrz(MxLJ#jsCR2D}if;Mt1aPc?_C{`aoJUra~HStdC5s_fnN9KnYSuWlAc!NSTFN zSy^)UpQuH!|3oE53ZWocs-sLpRQZ<$I(0w`;^8qrEST<$NPH%KSc}{(^F&SZR976% zTI!6Tg)-e%RjH@?SyRvF6zrdrxzlFN zZ1jdR3^*0UqGQSBF?a;b^M6H{F7UF6#uyp%FiH?*WnfY@z1mLJslTsKl+pSgD0Qhc zc?hFTEc0WVLpxnbGFUl9DIP-39}=0{BbJ^Y3P*qDS_|GU+ECOMvct3^S5)guFNie6 zoWqse+|)0+X$!_eLFXE=u6f_5@hkmyGll%;)(KRdKxWKU4RKN$?E2GXZZf*gJP0T; z9+9Ao5-r^+>udTM{=}3EiWTuv64g>P)nFdGS5k!v*+Pekld1ocX#)*BJ5#EF=9-^H zkBI;{iY;&a+l=HoWmIHh4;~XaL(~!i$YfTg#;i7~|m#c*?l+tY> zzo$x>(9Lz}Y-<^U7g$<7BM1$giK=ORqR4Vb3sxN4(vNc>-qQ)$b{NG+Ly7}~E&Z|U zI6#c>>)8(yE#|XFzZ3<&9V;W#-p&0tFx&d)zhcIZZ{<%NBEdqV0X!DQfCCK*nukp= zZ7rimEOLBF?$ms)O_tCg z@FE~39`^;~GkrM4C}Q7c45TmVAGGLvBU;EDvzEh}h^#@px27x+sWPxfd2ok@B)FpvZ3bVs zh6fv3c$Y4s`HX;uM4okLLh~_^yB;}F)`v~*vlDcz2u+-WCsK|BCa`G1EHr(b!)3X>R3?0A zYSg3*_p5gAPoG9$Gz zlGaA334t~jRFXTp%+snM=#xafI$E*G|JP?e_W=vs1`%{w0R#UaWBDyhCD_o+f5in! zn~pU)p}>#9=SDBLFG*j#qUPLMv!0h)`+YF&}{kvJ}7r(uSnA142IR_t!hnEIYQlv0$;(fm` zkycWqe7q5g@-vW@KA#xP#u^EusAIA=`9P)te{-+iQ)pD8&5=<(1p z%n@tg)WL2rvm?Uzcb!{d0wAkl0%sgbtg z-be^4%lP+^cg@2Dn`CQ_1LymUfA1g(##StZF`J|M_GLAj&yc?R{R%|n7JCJ~gJH4W?Fh) zAPE!n%O!a?fN0Nv5@t3s52la=iTnk=kDS)%Hm&)=tq!y_Opy59fL9#V7o>QO=nMRy z!w93!kW(k{{~AB_FvCfp@&%3jQ;WC%ufW*ue9_!f;Ik(Vw4#3{nM=mi2%29xOLqR%jOptfiu;bcC?&H`; zHk)Ds0=BLBJX0`z(lAgUBeM@U00NBUok$f8R8@>ny}+ zrQDc~J=7A2*;+Ir!-0aLV}DnIw?f=wesWUG6ABQ3EcI6f9W2wY>tnXU7T4_k^`Nv} zHzFv|8~4?fVV8PPv1Lf{X@8vAK)ouY5SE@q_&cT|c`TC>8 zZBjM_#I@7x<`HKdNNBqZIBe>Aj=zda1_7XS-G32yN^zEY2w)@fw=7Qo41_8DfGPbOMi)@}tTajR@j30RV@ni> zLK^4o_Vv9WAT$oZnaItE=`IwhbD)0md-xvv*ELJR-^!!e_y1?G&wx^%i}?Y|kVTu| z#VKV4tbfs258qlNh*|sL?NODD4R8+4K32Sx8)frh?z6nES=@xe+-3i2Nxa9t!4?+* zaF)uy$16?G8{_$qg6O+Ar3i`iAE4}hi~U#`H3;tMH>ZrPy`fB~R|B9(-O_eMdLY_@ z(12x&IWb1|al&~P7l2LJ6u>?0kdf({;US&c2PB42+Rnsx>v9q(AH-OF`Q0xu0Ajwgn+He$PV(UIx zI83D}+&p26z{!i!C}Iw^qrS5@3yo8l&SoilMF7{u(nQcVy%as1@x}7> z`_rBvK=0_cC^9*t7mPP`#`}RcF&bEcJmO~De_o?J1YPViB~6{7NCS&=&0tY z(;zM(MCn6J1D()D8gHZCJg6_?^Rm+Nvyzsu>6HQ0(uiMpXml*HoRp~9;>Zy7>^xEx z0dUEGoT@v6S4@*W#XnI1H^=!|53)Qs!--)80%NPg{!XM-Sq@CnPYT-9RJw`)@p<<{ z%$?R6>M+QoL#OX5M@7sIAL zuboMAFhLw(*J9&@XwcDlbh!RpU%`8;+-oU$k)n5B=d{=Z2I4TEp6~ZCIRZGDp`(S6 zoT_b@Y(Yd@#hG(wp$%CwC3prKgvns`4X_)E@mI+9uHe|VYpBaBHA}J-l2(J9l-lOF zkBStu$Ru!IH}4pe=gIW1SXW=lfa#(*GB90a^@L$ZJ}T0mkU}5vnc7~xZ_dlhf}x|@ zj7<2vggGIlp7hE5a(3hr2B#4QKPhq2QaL&CUz|AEJe&M@sHvRdtf>km;6dhd<_D1n z!?M|;hwE$<0A_^_==G3{D`dhvEFwHKG&Nd4N=q8Se^U|_#Ya&Gh`Qk59Elcvg9UCp zsHxtR0Q=NWq@3#Gz2U&4M1yBfFX=MBMFG%JkOlERMpOs;xe<-{pDZww6M@bgiT=kK zCp74MtUBlX2J95X2`T(3bG8A%l|I|lt)lJ7&zmO?AcymV)C-&rNQQ7@r#)YBE+S{rPAWU0N0?$0|%u9 zsnF(p4Pk(Up-zIR-?QX&!eWO?r>2v1ygAlklLN_^CDDCOKvqOMj`3G!;~4V$N%Ox* zRoo-{Wd&r>;z05&3j?xMEDpC7Y=}$u=p&3$|2AYD;e$^y5aBOFN>adqe56)0gV@~o zqtoZsM4hyN{lwEPMTg`B=Tu<=bV=fFocT^#I=h||9dFF?PI56Jz-3Cp$}j8vTc>9g zNpYymQhOOZV@7XWTx0`f#`We56$0s%(_2^S)ciaMTS`9PD-ja`@LFpVAse1Q7wV-#MLmQ>4DW6U4E7XUHFv(%L=A*PFs<;7OJ|{X;1UM^B zlFIJGgU1TsdJ5)}rkbnE=7CCl<~K5*hx*Fi_Nm%5_T!hr{A`G?^~pU8)5L$xkTf!_ z_mOZ2pn*nKP4*<2#-p#N_K^ZH#GZo1fCZ}Rvc<#;4bY<6iSX$c;s8x4Vt~)9U)Q5D z)2l0I=^LVfIHZH_oH_Nqgr?INcp60`5~K$4u9gW6^a-SLXc{JaU+Tts>LkyS&|4bE z=3+Pf-i+uj`uj-{&qS>?57%;e8Rhl;#ab5BJ2VgZ5e9Mo=+yg*0jEL0Ff~(WsV7Nk z?r{9YfJbxWC1PaKG=U*sWY+9SV1jzDCNdJHr6iTsB&h^&8oW^%fjP19DP62(9*AUu z0zH^8Yp&ru424;K8xNylqPw3@A6X>H4}q!KhC<)KM6bj<9(YC1dNWu@o{9e-LPdO8 z?#fS{WK%jI-^}7|ACjMbl1l7R8>PA%{FgeMfDd&dDF0iX4FXUdH%zzR+d0O6z)TKb zoa0?e{|2(d#DTtFkCJQuHz`*7yF1^+?AQNUl%`NnT)!6_1mpzvzv{?2o4UAI+L`~g z&Z=2$%jr8ede2U&LED}gY>T7p0nHhC-L@R14e%iWAPwI@Y#+E15c1`B$TlLzQ_Rw? zE-~(&XL@^_heqX@vJlXl8e^&6c8FwbuIb^MK)j$5A`6nBE#`fD@Gp7yFnvcwNb~ zi|bv#o22a#;PwNf{$T3jYH&Bo>8Fx$}Fy)Iw79`VRXLMW!I>NEYl$m>U)C(mA(d8n6@ChV#rXpV! zH%Mgs#U>g&3?5_@k0+806h!vbVl*Xw`VmF69Hg}p+i%f`P3fbpnS#9FNrw5NraWgc z>4%oM0ju#YJ&HdmZvOPkYeOpoaRmHUYl>@v3kxf_S`vuKTjiW_Z?{574J{Iq+cB`b zm_f$%_GP^Z7;RuyaiI)}58k)?qF2w@lL&$$5{SSc(OYAV*{KSYBQpDX(*M^_{18d%?N#H24&19v%d zrb`Iw@xPPxvjYYW$rB*PT^!+HnF2Mvz2L%Y63&+I&{?AsF3(M%xVZN22Bk7{&AZzW z6UYUEO(GAiGF-dQcn6eQe-kzf@?;>oTh|kJ%_SkI+3^9g#Pf6Q%WvF4+n9E-$1er~ z4;=nA;HcK{-}N&8l9zK^P;@fh$IKM#Ic5cSzm`i53S*ejC=n= z#@P{cb1~=rS{00;SYhg24|^ga&ZUjV%ND7R(Nj4sQ6J7rZ&g<|oPn&=VWil}_s}pl z8S_x0$9ZL1pE}%qxiHD-rMYh!o@nd%%29J^o+aYza@TAkd!7GMIqHkzI=LzLQ_i+n ze|!sy^U7=+4RX?Lhm6RS?vxOOZLRpmsD2tlfC{|OVt5>0&kAKa>mHEF;q^PZW-zP4 z^CF)#<=5NINLzZi@6rA?aGt{V9-QgrgxAl5h*M13m>yGjK7~^vh2+O-}622TGDN zlJad|+-b&Lsr--i_N-89`+1j3CPY6%w~R-qVfbL8F*7dVlCCz2^eP}>53_pM^2?O}~35GD&)nh}`$-^VxAlE;bwosjE+)aWem~i;y@ULx zW50RwoQ;7+aeu>sfS~=`F*9HdXca>vo4+dKZl(0weP_lW`SC4+IyFn$Cb1bEm3Abg zX%Y#~3*-}i9p*;-l~DV_?-@RuSmvubsm=%6IL|A(DRR&N7#tT7NpKRLKeNw9e;(cl zv|7K?H&BYw(zgBR!*!q^0B0%kKI9{M>7EQRrip$=kqG#-la6|{*}|l?Xhz+pmeQVG zNeS=mRpq+rqKgp)J6J(!G!TsqH(tk?>U79TFGzW7N~{sZK`<9~o*oI(*5Hii5f%v} zf*Yq!Dv7u zaJZ3oXxw?R-j6LK_Tb4$Ye8bho>5JnWub^-ToHIHooOJIT1kHz5fhbB2D(<&KSMj$ zy5|OYHC1k}9c7D>`?Uv ztaSJB`z4I4XE$PPO}P#if7{?iNrbv5EL*Ozhbs$SnwXlS*4;QagGc_o16bMExVBoC z>rtPMX_j5i@Y&hk#^NCI#qE9RD3kslMJ&#z#RN-tE?TS(rcVpG!zRdsaoh2RuEqn1 zLUSOirqQr}AW%NHvUGA6P+F=AUld1&EsSMTS=7;6WZOy2Az6&|!hJV-cV_w1+}5i< z)tf6|CyNmNI(tWnCKX;afyeB@7q?}3mm=7rx2s~{aM+)6FOZ@F{Attr!ATb92noN39~ zZ*XGw{8UHjI9z(!aE<5?yIi|kDM3VQ6^U&U)wZElBt9eWLA-M8^E2G48-%-T8LX=o zg1=mN%djJ8K|0mPrdf}mR&+WZmitZtJxcn_@7=4fbhCUBN(lNp%u)93N$W_-1Ce;A z1nFt?s@W^>eRu_T7wiRzd`aS}nP%U5wN|$ct`-K%14goKwzjY32o6<;Cb^9vl%!V_ z{BW`z)sztZE9%p*lVFhw&QOEp3Fj_17HwNBvjwkcwQT&StO*$ z;?YIv3uNaW2L-bkg;At6me1DQvF}x19v>$&EiEfD*dcH9YFDpR7dol-=30uy=$_FZ zeJU5Eq~gGa*&!2LCZnCUBomWMQsf)A&s=aXC^NJ|N^;~EX}K=&R6ogm7FndOlQS>e zu+6Z*#mO)eko$Az*=Sc}Nok=I@Yd~(hS7W`v`CD`TySW{A|un#q%>b!xFnh7=13Y- z#)N5708ON{l6uj!1&h80ZG@YL+C)(U4@=1EO)lI9*FTi7lr?>SlBD6cfdE}#`wd@6 z(THywyx*f&SC_v7D8?>;Xyzb>A?+UIyTgN!Bi z?fAZ2w(9rl_@PJ*UDW2j-R`en*bDr*52X@oLxc*I+63_m3*60&ji1TOmz` zh7F~^H@*mURJzhQ--OODaqbQ6h_m|7dVTkh=lfx4URKIbC0+T$#B(*`+V{S5YuIMuZ|+ z47%pQH0y?;LgGA~?OcX$wEATa9j9;TDJe);91lMwc!|)pm%>+;Cys;j3+}%u@24bn zwbL#wtxy$CH&3-vdmrs$Tk!!@Yq-sP%J1k?C zgM8-Cnstg&cgi9}?U)lD)l9APDRyfqEMqQDo%`8TP~AoSeIUTTY%5}g3)5vkFtDY0 zyNr|GU@*@%`j9}v=Mk)(NWB_0p?;^urhj4H>JoDFXT05SSLcFK@M;^a6ziv~nokQ* zQIT?ETVdQf$t{exh$R)A=Mxl_&8n8mT1#5VKUE`7$5Hky*uS(ei+dQ+HoLML({{R$ zqHMTkgENzVY5^~HJy+!AO`8PQbbaqL@h_icRb{$4221hzVPEFF_eBy6YX%NL*Sjt1 zvK|$7B=6OqcQ@}aAzs;_dqwb_v9uv;Z#+SsR%{RoTm376T1V!#&oZmf@-GKX$9q z%kFtF@M|`SvcXf|zi3i3r5 zl`AOc`y_@Xsag8k6g~S zECCbisp%ADj$}EsBTVL(Eh0i%RABhDSblkAaw6HVHpgOZ%d>(Lx+jFgrk-jXqv?`< zR8DJ#v_sBhKn0af7Gpw9jzE|#X2cZIqTeo`+B6TAo1%WaNMU>vD>E`f=ozpQAwScFU7A zSyY&sQ|D_up@FS`aUiLTn{5dz{?s8Ox!qHs435LPP4MTZv#l?3Wt%W%?0i{CMY7+i z!-FH|x%rx}T{3ZtV-uY?^EqhI%XQ)Beyes9i`#HfVN#rS=2H9WaRwB6)imOi$sisL zM&lgUhHE49xy+9Dh38(9PAX-5ak6_un<8vN*zJ19jIKa}4r{+LCfcS>G-K}2$FzF( zi2h@oHOX0&cQrXx+44>`!MD{nuzz-FbEmA_9#F6mP&oEKgnvj@aI$xB{;OBBG20gyd-tq!=aTc5&Nr9Ial2VniapBRooh!A0<(Ofr z_~pWRVUBhE`cx)Ojoo%%S2I^$v6-RQ5tX+tz`xMe&|6`OEHy0Xi4V;q+2WEHw8FSdV+8UWU0cT}Cvb$-GExUbg?CzaX zp?Gnf=I}&z2==A|AvN7-akA!n5K8R2^V~5O=FMxFE8}Ups%*is2sT+Xx5?;FzB@ec z-hfxgU#~ZT3EN2F=+2zif!d`zBJ{^HQ!5AWKT}UBFMle*uA`yN%(eLnS^n93kDdLE zy0HL>Mq67-t-<@9>UQnBWO|ehUo=?MyvH%_# zE^eOll_WVxE()ou5P8l{dB2^Rhjc$L4t!W98sGFl>T$YSbBGzp7>fuvM=4nQReCy} zZ@-?Vi+C`;ZUHs~A$KSxI5%Ui!n@UUDn7j;sqf97tt_|=^V=H~AfZG{$Xky<>Y%8` zD|MCTN?zzSQ?*GJ`_;d86nArdm7lCXGNGX#mciH%W^F0BWJ}X(iJ4=F{{{b@y0Y_3~IVG)0I>H_O@)t5KIYz}O8gh(&_!q@t z0sjrF_gdfzTnmc(v%}0WIHlk8BdikDhUFJQbi=}@+`KyiW=16xbE0AzTeig77w`5S z!s$7;8|!!L?gb}I!%&p<=F!7BzX9AXI)6kWuYNZhT{!$S>ZGhci5`w2^v6T!mXa`{ zn!OXMNbcQLNv-LTa$kKIfVJ+P+q>?*k<}B8?!Ni51KqEyt~+uV>?OtoWtWY?`@Q>9 zPk%THyBionpUJtLR#V<^3JUow?c4ni-}gUAO+?{FVcd!3Y8=t^FPOL9dGG+%Q&Gzo zGcdOD+VFHVIryg%>Yblx_rn!m!-Aj#H*MC)erB=&uq`n`ss@2>8>L-39Fq$0-cPY=AD zI07Et9uhRDf}YM#cimf;=DR&XUR`>&#O!xF&jXwG+PXYrbAuWj%%whlw#yo*r|Z!t z)Z^8@>!~_nM0)1IF5I;~1ZQi5d>kk%0}-|$ok z3UprJ{PcJ8_C1OTK%u98@Ckt1AxtX?hN^xqB)`!>2-R2W)D~!19N{(a9=M-sP@uuM z5q&nr3ZA9n7Sf%5;V$)W;8V=;u+_(i%h;S7Hk~AsOW&D)FC;03kbQa(Gpm0b;lelj znpGfTL#Dd4aasLeYI5dTLG8wbQUCnE@?9D_=5`ZAw8Z&Pq2GS|y{6T_lpbJIe2yz^ zfCa{w<@G~=53iSaOa7A{cZUk!^0RNm)DuX0&Cz-pj-oQg3evI z`CpoYKJE*>u1=^llZ+`}VU2*NddsY2X@cN8YVMrKf~fv}iQ^WJ6BopmWL*l>_v9YQ z$SU%iH7YUnxwkh4ex;&iU-J_x1AekiO&?9S6;3sIx%is>h#Nan`$>o|O&W9FUGmVq z(@jU0F)cmip6Lmi7w=l86TT=fWY%aX*eo1;f4VGA3hj43s6%<++)E=4N%CQ06X$#U zk4?Wbbt&ypO$lQB!r$&QWl54-U3m|uk_5EH58|ud#sCidA4R=pbwkYg1_b+z5#Uy+ zad^~EW_J^d#pxHX7|C~&&+O4o39A~Vi0Wh@C>C1OC61|165`iV%5%BQ$ukbQ^x&VA z+SFoQFBdtAr+@0F<}~7`hDHBeu1y)GXYH#viatQI4iqx4muO7uPMLhux3JQDDnYR; zcy;JwxSvh%la)F2VnmHlZuLLU$RxA6+{R*=I4veI`67}Xp$t=1jpFRBm`$&{)o$8z zD;ayGWNa6`{X(eMVRC6&hFV^@Lp{b6v(o?CgYC=4tjuN|g$*eC!wh(w~@~LV_73V$67ts&2_5*C{;_i2?kb-X7wPy zGd|RL+>rN2wq)W8OD@rwO`5gl{bzi z1+-ixmPROP6HvZWzrDIH-7jH4ccqQJ9nP^U=!Co8TUGS;=}=u8oa!K`shfQV4T{;9@ zu+`MC@*(mB zCCO|xKUlkVSE{L((<}aHWik@)Ak$!Ady_izE-<(uZqK+=adc99 z$HS^_>_WYnjU^8+f^RK7E({#YGPEzbbdQ<_MyM@d&TY+heEku@HUMxu2_}P4{#cjG zxByg;(^_-}1>jUH%@@H-*c>!CeV7#l5S>kVGg2@0jQ2}i+} z|K2?w*8|rx(NOuv!9kfxQ0~hQ0Fv9}kzmVza<_nho$k6^Gh2%+1OU%;pq*!e1F>E? z01?4{;Ir=}_b1Bl)&V|SEHZkP$l28t`PP)l?i~Y*kQbd8up@o-Cd0Xg)98!jX z5}<{MO#*=5AZ#m3K=sh9@uof{Y(o#tAwv;R|GkMwh}zMOLjh2uy9w|lZw2gRd!a0- zcidz--P+39?j)fUsMXq}V52uiWt;JW>Y?%ArXCizWr}T&4s9$2z!|hQtE2!oaC-1i H*3SM99j*Gh literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioBaseApp.scala b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioBaseApp.scala deleted file mode 100644 index 963178f7b..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeCosineSimilarityScioBaseApp.scala +++ /dev/null @@ -1,96 +0,0 @@ -package com.twitter.simclusters_v2.scio -package multi_type_graph.multi_type_graph_sims - -import com.spotify.scio.ScioContext -import com.spotify.scio.coders.Coder -import com.spotify.scio.values.SCollection -import com.twitter.beam.io.dal.DAL -import com.twitter.beam.io.fs.multiformat.PathLayout -import com.twitter.beam.job.DateRangeOptions -import com.twitter.common.util.Clock -import com.twitter.dal.client.dataset.KeyValDALDataset -import com.twitter.dal.client.dataset.SnapshotDALDataset -import com.twitter.scalding_internal.multiformat.format.keyval.KeyVal -import com.twitter.scio_internal.coders.ThriftStructLazyBinaryScroogeCoder -import com.twitter.scio_internal.job.ScioBeamJob -import com.twitter.scrooge.ThriftStruct -import com.twitter.simclusters_v2.hdfs_sources.RightNodeSimHashScioScalaDataset -import com.twitter.simclusters_v2.scio.multi_type_graph.common.MultiTypeGraphUtil -import com.twitter.simclusters_v2.thriftscala._ -import com.twitter.util.Duration -import com.twitter.wtf.dataflow.cosine_similarity.ApproximateMatrixSelfTransposeMultiplicationJob -import java.time.Instant - -trait RightNodeCosineSimilarityScioBaseApp - extends ScioBeamJob[DateRangeOptions] - with ApproximateMatrixSelfTransposeMultiplicationJob[RightNode] { - override implicit def scroogeCoder[T <: ThriftStruct: Manifest]: Coder[T] = - ThriftStructLazyBinaryScroogeCoder.scroogeCoder - override val ordering: Ordering[RightNode] = MultiTypeGraphUtil.rightNodeOrdering - - val isAdhoc: Boolean - val cosineSimKeyValSnapshotDataset: KeyValDALDataset[KeyVal[RightNode, SimilarRightNodes]] - val rightNodeSimHashSnapshotDataset: SnapshotDALDataset[RightNodeSimHashSketch] = - RightNodeSimHashScioScalaDataset - val cosineSimJobOutputDirectory: String = Config.cosineSimJobOutputDirectory - - override def graph( - implicit sc: ScioContext, - coder: Coder[RightNode] - ): SCollection[(Long, RightNode, Double)] = - MultiTypeGraphUtil.getTruncatedMultiTypeGraph(noOlderThan = Duration.fromDays(14)) - - override def simHashSketches( - implicit sc: ScioContext, - coder: Coder[RightNode] - ): SCollection[(RightNode, Array[Byte])] = { - sc.customInput( - "ReadSimHashSketches", - DAL - .readMostRecentSnapshotNoOlderThan( - rightNodeSimHashSnapshotDataset, - Duration.fromDays(14), - Clock.SYSTEM_CLOCK, - DAL.Environment.Prod - ) - ).map { sketch => - sketch.rightNode -> sketch.simHashOfEngagers.toArray - } - } - - override def configurePipeline( - sc: ScioContext, - opts: DateRangeOptions - ): Unit = { - implicit def scioContext: ScioContext = sc - // DAL.Environment variable for WriteExecs - val dalEnv = if (isAdhoc) DAL.Environment.Dev else DAL.Environment.Prod - - val topKRightNodes: SCollection[(RightNode, SimilarRightNodes)] = topK - .collect { - case (rightNode, simRightNodes) => - val sims = simRightNodes.collect { - case (simRightNode, score) => SimilarRightNode(simRightNode, score) - } - (rightNode, SimilarRightNodes(sims)) - } - - topKRightNodes - .map { - case (rightNode, sims) => KeyVal(rightNode, sims) - }.saveAsCustomOutput( - name = "WriteRightNodeCosineSimilarityDataset", - DAL.writeVersionedKeyVal( - cosineSimKeyValSnapshotDataset, - PathLayout.VersionedPath(prefix = - ((if (!isAdhoc) - MultiTypeGraphUtil.RootMHPath - else - MultiTypeGraphUtil.AdhocRootPath) - + Config.cosineSimJobOutputDirectory)), - instant = Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - environmentOverride = dalEnv, - ) - ) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioApp.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioApp.docx new file mode 100644 index 0000000000000000000000000000000000000000..da9a70e5c91067dbe9dc2c15c6507552fcddacfe GIT binary patch literal 37210 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 !xHhFvS8tB!qOUCE6kFC=Q*JfuAxC@G&^?zD ztF|{1tEJoT=>iadL@f7BPFU&8?px2fB>^P;h1miQv;>gq=W|O>3Tc;~d(Z0U98KFH z*^oCk5cKzX_!$VmVnva0qSR~t!FcZq7w)aD0Fv^U3hZb4+tc!#DOqTd59sRW$DVyP zQJAbQeNVpyKci9Ktn)d81PA;_a6nEOw8)==`+f^P|1G$h;Mm2L?LqU{w%ZF@M4d#7 z;Xa9E%(jALO#Uxm_r98>z?gplE4P0(i^iQA2E%^7z5%KgcW&~EU_Z+<-RB*O`gHjr z08599K}2&gZ-8P=g4-$eoCHy7a2wGFB$JG2PEmoO; z-;kYvVdgvXB8-6c_Paq5K3HKA_A31`u|WN$2y;5e&@{}9FZux%u~n?1C6XEj2zW}U zrF!{y*G;H16D3@5`DU~Lp^v?bl+|KQoFn?1gjPpktlDv62h0=-Yr0QyMS$|KDOymDl|pX&IrsX?r92>~C{y8QN9$JPDzh6eBu90-ZY7rAZbVwcmuui6%qEA~83Et*nR!S{7e&!dle zQ9h4QbmH2I0;XY+`JAk`y6|#Eb(am=c5I9^2zxdoRv57a^|Gx^G2kkIMJhj>=fQZE zD3p9_x5zsG8tHiqsehEvw{Id{!^ATTiI?JNANaG`F7K5Rxk!vssnZ1W4NftT`TRKq z1A?mVlJ^n2Q$^IkswLV1dZ`T>yfe12hD%13RDV4>*<-h8b2%O_6&{IkDUO|^6ap3# z52v>uN}7tem;?0+g2DIm zX93fsQ-*7&4aR_pm!zFGU1^JT$?n?4w5D9^Tq#fL8kXdem=yJVF=~;6I%-=WTPaW8 zb&!~mfx(<|Y;KN>m#UqnxF~9Bo_)OL9EZ|z(oi3K=)rNJ$7E@KgjBqYkvd|$o#h|a zN6LW*{>(gM43&!=)Hh1b4RYD{W77EdE}*IGSA57c8=j7|5>l}M(y-35bIKAI5v=M> zO5gW?QL%!k@FIUxu|^D;Y}d{3n1XDwr+ToGc-oqbwre~Z%4R2F3rJjPzv~p^tYbIR zOg?^0PV>{JWtebrokrp}DKc#QNaj^r{+>#+n2q78s~34WLAe>*@=!ZX^cM!hF)c&G z@Tu)&^(Z^RS5SFmYWVgKii0Nh)9;KI0LCWfph5yrlaD=wz0}xk#BE(r7e@&mZ0jf5 zHB8JeD=U{tGe^d^efq#Md7>s=;a2L}v@F(C>1YADiKk^fjTEGewE{)Z&B zFm{Ad@VA8^N~r;Jc(k0!3Kv* z9V(L3`ukcV?bJa*&~ZAF=%K^85;upo8AGIx*puqquYKI?h^hS~vjj~O_E_QY%9mGgqR!=SL?=+V?kOG$luZO{UsZ?!Ng^%tns;TQp@Q$v6z#Zu*OM@-1r+di9c z^w*H|oLe0g0A;dBJYVvQYfyuuPyeEMDjdUW+4uWfiw_`F zsWY>jKqBbX@jSpSMWC-VkAo1XqJ+OGgKzE!=8CiAiX&zbJi=f@*w~^jmn5=kjV_^J zJMpM@hXv+Bh(R0V24Kgz?C38X=?15r!8YGlEy81eaLp;ngYZ7)6ALyJ4aRB4yhEm6 zo*vAoJ1(BYq4~E8MASc31ovJMDORXxR$IGN1sp2zA?v5Lgri`;x-1J`kcmIjW4&7r zLK;v1HoqjaPsUQ75i4nah6Wd#s9?X#fU!r?*8yWIo|3V<4Z!AWC7#wAg!4sfymtqo>+TmKG z5>0}prx|9DJEU%363=?-F?A>nJ`ZGnIdWMV~!3*AuH&+af<=+gGG&kIB`hS2shi$ ztOPU5h?P1ZAl1Ksuzv&T{Ts;cH_*KAWEW5-@6~b+~UY$ zi%AE1??9fB7>R0b?i9tG3ilGRX;!wWud4{o?>Bcvqq^9C=R{kk?c6Iuyg>`unGgpRUeYh1Xj)U+fp(KMAM{psBZpsor0ma2^%z+%dP2!V5 zZ@J>K6ER0hBOnVh?)s;=K}vyi{mIhn? zMa8^9dUgEK2l^J!DSpu$Ka9~BnbDvVU@D#HyVy1k=Mj|9`&ZvrcaQETpSF!E?&G^H zq&M#S1N%1MvS9UM&X(`hnb97AW^4WAHsWS)*Q3F(`|V(6|1{(6;q2}4_1LZBC1+-0 z!{GAi=Cq@x2KDSL=N5Fdf3s^%NRY`0r=zE^b<_VUi!$7=63n!9Gg#p!a+ z;;DX_#@Akire_)G;q}68b>&iL=`E zlki^E8X1LTujYoV4K025twz3Ff8D!y&oVP2P-E}NyNwsu7&gJ;Zchfd@}|)__enZV zw><=E9u7D}Te1vPS^+H4f#QY?JZ!XUQo0WGR9W`4_ zuBa6YHDfPSRXvp$5+aj}9Sc5A7H!KXmK_V^UhMotax)@Dxa__UwQH6ruoWW*zw9=x5}UT?QZ>hIF{uG!cgUV(Klw*$Xc`|r-!Hyj=* zmQ=$0wKTW7a31aN+TFE@?9DE$dgK?I&Fj7XT5+jx8AV|0V`3(5o}P9d`fuir93S4YlaGDRl4F+k-Uvtz-pYnTrq(=ty>sPYh0cfzM2M4X ze&%QD*BcfNJUc&D9A49OMAk_V04k1|h)}WQNl;$j8a8&?3dZGym~ekq`|wmYaZ@!O zuoB<`MyRYuD6B0d=cAS8r&CL_;8g_FhFotmLMT)l>{`{bb2dby&n$W1_MTRdbMJw! zfh65I8@<7xrXSm&COl9R$L)=Xmp0*R_rs115?4?4?aajLjh#$gX7+7bhY`-&(BaAM z%}?fiXrAJu^oR3X#~HUdiGYmP+AVw4TRqbWM>tz4mKvpq4QnkxlnF0TL1%MgtEFN@ z*Q+4@rE0jJWhNqIf9?QuRIuyGt@l9K}ded-PXs9pFJEcEb4KSismwA|=+rD{*XC~vMq{Z@7!<>=lkj3?$SlWKo zDAJ*d$+V3xM=$8i0u?n(VjR+ZVL`h$@u;5BINZVqhgGIQ84-_CyAHZ?jA`Rd_qBU9 z3%=#P^^Co<ZA}NP^q>EL7QS( z54sZFwjN>;%S{g`C%IPbCl>Ic)r;RJ&1f9u@cv-iM_qtDgsz+@Z2;>edh%ne>wEj* z5R6*sZFzWYiggIyN_2bhse2uW#n5IyPq{%oun@6+Ccgpv9h}~eQ4WaP=i_C~U?^(p zpbolKPzUJ=s3R8CQ7hdF?eK31!bP|iu$Od#9;)5ngZ>r$dyxB-9XMfe>2H+A-|&B+ z{C&XRQT}%ocw8;e4ypO85WMoU_TYptRxMyCfk7ZJu77C#OVTRD5feH9Gz=az%;v9Q zy#RZ}ZC0tK-#8l(yhz`E@U zwy#J1TqB#%2?q3@_hk}cYMHo!964sf(wv#0H%{I~zBX=na2mOj_0tO=Wb>+snW>oC zDJm5KAVu128NVGqpN8!3XN~vYVMY?jinvbzH(hyMA5Zz)yx$IOz8%@za#fA&@gSDC zO`zhw-n&1*oj7^@d|A)x#um)#*nIlQTn*dYVHTcUO^meLCgQSpj7%IkzqPV&s3^p0 zwl#G_&|L8n6Jb{Q+Q!_qb8{Kv^KO`^xpRRo#@n6H(|@uv*(GZ|1Z&dfM}i zd7JkOUt5n`u&GGZ;)KEN_RYXp%!E>g-8Y}j?|##BZiy*erw%sgkqJ0^Ua>C&>$+-^$E(V1Q1*7U!sMqq(mVoMCNWN zYh_7#yo$V{af-^ZEm;2LN`@lyy-!GkrEsQm?PozA;qW=aU+#o+5DPUhArtk9=^!5M<3a8p;@G2pUrrRchQA|ia4oALaz$Die4q}12F zmmv6BH;U}ywBr5n{QUn2dkdhrwyj$jcXxMp_aMQoad&rz1Pku&?(XjH?oM!bf+rB< zbzI(p^z4uoao1&^2bBwX}UOm^`z4nY17tB2Jxz~PMJeX*BZ4%PwB9Nd!oKx zoilqsgWU}IN(Fyz)TF?x*gZ+y%B#qJQP;PBche&4=oW^GEy;p?XZmFZ`6TQ@&xo7h zvSq5c!r6<^*`b;<+h)ez)D1=jg&pw8oWOaC=hKMXZ&VSHpteUCr*YJMFw$ihCD+NA zS`}94M|YV(p)ZzgE4cXPJNGIZc?N-_0*jrBje|cH3GPe3PQ1%>7j+(_mu`Uj&H?g z*uKn4&E+YEKOUQJG1Ldu7py;3pV$|uPM2A!N+g6t^&;#!j5a4bc2*y>_O|cz5h=M( zLvv_Sls0~xa{qC$mYg0rt#@l_z-|com50v1^dNa)@wTbjiFZvkAjQ7eL@p4x53F&` z4NB~_T+>HWb|=*1)Ij`52~mS z-5I;8AtOWxYdX*BbPMp$6Ho8D)wwwy+^gcxe%-7Y_NFu@IXf4KNuTy-m{DEd9(9xs zzqn|RJ>Gl;m!rH&PN+Us6)W0fav>DTL2B!;y=+=BqqI56pA<`(F6p%8No!iM=-;@% zZ!mV=&Sqk%{AuqNb2t{8x|0e|IPGe&y!lDrXcMF6OsVvUs5;|&DG{e#$m&DchIZ_` zx4T(!fv5tu=5lsnN@t_>1aYmU&ji29PId}l+t?&8#NNJaLY>dvuyvM?W z^_w~xB(Lk)5n5wM(}bJp!efa0VtZ%B@!K=rfq9Q&DOb^qIe)YDxdGpD(>U`|IrPMi zaP7OvZQWK<VoeE)qlDxq+Hu2YXHx6FMcc<_EXY4)pU&dR6W^7fGHIPEr z9bF!a4{XOe?vzIf-Mdl&4WjxUFIX=4eW3&xF@#kk0^aD@1sBugV&Zcs|{Smwp3F-*1pZDXQGon*M7p2Kc zGjAJyltE#8Hhj@FQ>{nt#?`EHW=qnDH+q&F79Ea_sNDg(Y|U(_y;V3d)qo9Q&y7|t z3#XwZtX;!Tg#(#-Z_A>*L``OO3%^G;q1f51-m$V<7>|66sYO7P`{n(Mdgg~w;6b=zF@ zbA#>t`+m#aWLL}g#PikxA1Sz-jO`vqbFsCp@9lKYimE2hKX~*ynM8`jKf|)6FdJ{Y-KZK`I?p zo1oRB3ajI+5~b?oWj@^RN62DVuO$mJwBJmPE_;5M`Alt;`qseBPA@%bAK%Z|Nf-xb?N`fdZ~HLzfLwX9%%U(*}dX*T2KNF=!e z>AlW<4t@b0q%7p%<0oWp!)3VD%<8Y*o;|#^h;xu#N!!9k)Qr7{tqHP7eRN;0Zg-hI zF0<#_r5zRUA`CDmHyC+BP2#TUf1%xq#^BeG8#?p+b}}$S+o5ZAUP$5z}z|7SeNdv z`Dt_=ld7J4a2>)@O<{r)5{9e2K(RnCxid*Wbblvs$uR z#pgQ669HG%F}A$BsVRT}aV>AxJAldA+zDy)L)q0!eV>Ctt+3y7z2}uMs!#oyV*TQ;feF;x-3)fg`j;i?ngS z9WVP}1d~(MesPi9+t%a*a*L+k-8N;9{j$)FJG|{GVDbZMH4pHynK|C~(;T4HTh_^) zbv4-S?@3p)@&WrvylNJLReIvX}3-V8>YeZhtW+mBr{<*NNfW~Liu`Hp>nHdqLepF7~FZ_8f;&4m9bX%bXp_ zMEirj!%FXM?!WFlIz41tvc0%McQ*stQt!dOH(0SGx6bD9BgSU7#;%@SS5{Mcu8M5Y z=dU!Q*oTnXOPJ7(_oVDQp97%v*8&LJ(YFry}7 zGa96}S)iuhWz6kH*VjVVPxnr-B;?J*pJ9{lJ{{n1T;LxhU~xrix+(_6VFVXl)~S^1 z%YIy;X>dsOvbi?|u6Hp|Z&prSOd=J8MA;lB0iP(ILRwdfTGjh>1aWD*nyI=tpNm%c zl(o6DI5IuwgImpuTSIsaPYEnHbii4(p+YKJ)zcLOE~=F%&_i2Ox~pzgclH-&Gs$m`E1w&h75VjCcKuYyp_o}tds*R9v_@KW(t$;+O_~)Nj ztCdL3dfH&L&+k>6G1~~ZwEucwr(o{5ToV26=58bJX#?Clr7}FAV>6(Ws32WKzUMwj zJ6(>g=We6!X_E#XGUMOU%?VOyW?1HFlf1s&xQ!=X@zvdCeG*S$i0PKB0oQ8Vtdyu> zY*5GMp|e?F`!3x9NO7-v+(L6TUZ{Hy;c6+8sf&}on{x_O^h9`L8_#c^jYYM)dE)R< z%ORS~~osG4qKoVi782&|CFezlh65Jw_h*;d0Z`#JREZ-R&l#_ zJGS<6r6Y3sNQx1AMnrNQG$3^^^76x&R!5k@Yig|^t52^}wL~Px7_^QM1iz1JXP`LQ zJLep5=9aXaO>$+yEb2xrTESo6<)8-zk&3ibI>G22_iXp`@rss3neH)D#Yn8ub`1bZ z0Q1fWFv3tALuWoH?}Se!#Vpy^nfSgoEWx&p9(z$|@s!8>A6 z_v@PO0}-|t8gmPUp_7d;7lpu}6h|c+(+^1~2uZ>)dp_$xfMFt{iOA6Tg+f-RhhA4& zp=TA=m(}n^8*=1J1rwRr+&+fHvi_7|5DW?#2w|NQuS#hTUz6K8|= zF&afAQYDR9%y1TC1i{`2id@X_mOKz?tuw`yP7K7*5-KFm^ITGi2dK89)c)G?>t_hz zJgkgGn$UW%L%R?d5a-__HT+_`w;?bMFP}a`j0C~_itL`8a*SUwJ8qTwjn=4B~A&N%eK+vZ^)B(21U z9ikBA+bI1oq+sZx5c({cv$EFev2Z>CVsxzjE5&HxuuaT~5^{MS?b;9nP-2Zqx46P# zAf#aY9H7^@gfjVjZFsPcZV|n0D zHI&(Ks315Q{-k9&eDe%5)TX@|6Tq|KzlUa78v>;Lkz|#S?8ZYBLhv&LRS3-f?b1(~ zxg+dXh+AByg^sCLEGq-!FOeL~m}Ds2ByH}Fc>j}+j3|ULl`E5uHl)ORGa_j~jGR#q zivK4S9QL+g+$a?P;aCJd!ynoUZa*sVJ3Z3x(c!_=*^OzPfzbPu4X;K8 zXFiUuCXSvqj_xk0iO^tKn6mrb8v}nn;vWX-w`+GnDlql>f0tB;3r^`8!0k7sLN`zyH@Dv6;R`@4#qi=le; z$Fru?YfTl6D>WLZkG3YYgM5)cdQd;~ePlR##+vG;IC|%BM7O)#*$`@C;}GNf7ac|x zM>j90H-koZI!1{*j0nUj;q{+rynXIHQT2Vl55}ae=DtZG>-Vzie+UpkA0!y70*;_4 zo6qRe6W8yO5oBzC$vhQx`DjJnyzD)4?>|l|gpXjSW2K}YW8;~eZg{icx!cz6C|OwF zyzqAUOigc3$-BQ*d%Y=TxmN+k15!W1)$VlZ2d(Bl)zKe6T73HA{x;(N=Fgw2AagF; zmW-dYR8ngSFrU<5qp9DcUr)SyF=HIK2wmL?TV)oa#4|9})-=yBu#C!gSR{dw&^V!y z-O+U`fvU|Ny!cz#>Q2w<58xF{r*+dHx%Zg43S_!S^fc7F{N63%d? zX0NE6*^|JV&S)^6HxyE9sxWbp+6+@mtnW*%-}{7q>hSdNqQT%<6Zv-$Nc0c-COh&ObRnu`|A%*M#TKF!QAGS~V!e!$yJ&ixJOT3Tjz zdgjf`#?P1PS`WK{79(FJv&ioEgoSQ1eIapB1NXP}NlUn2fWZDX)4)4=Zklp=gYhiY zZ%CMdY)5>mm*beADNX+uJ?BVA@cRA#)Z^fbD@)#jcyU3YefoHBc3UX5o%*=HcL>k> zJlKFptDs^1Re9#iuE;nOdA6V-*P}OX!3;R3DGMY&lJ_$f^<{55u9-k*~ZM?boYjF z3}ak;812b^=M0Ikzf^Q zJ+XzEqfC=zJh}v9oA`aI7=oRj(og%$5ol?Ca<>X9<@R}Co__&ldI~j_Bx4yI!4$6m zSJ5!Zazw*mJ-@0JVV=PYSB(7+#!LG^Bx@fLW<#*0IkOyTh6qQa%ku?D5g+N^DWO%E z`Ei&m%JexX6dU3^0u74{#{s>!H8_4-HCNK6 zr|XL-Q?dWn*5*IgBx>Nj!LHEG?aQUN$p-J9*4DxO&imqL!baPSq*o)CO3$>l;oi9Y z1Ng*9FU@Kn`Ob&8x5<5>%q!$ZQzvN$t8|u+b^GSAoG8HP!o9*-@RWhz>HLtKR0+=+hHc6$&OYLqe zAu+AjgYG1p22j@5hwdb=^1JYerL*tU zQ;jB7^dsRRF*F`CxRFwzr&9v#^dCt)Z3QE^AdM)Y1P;FyH~|8%Ky@#l6L~s@$T|(9q;3t4Qyop4-#$#T3Nosk1vWT%KG2_ zvI0Hrj}=eK|Au%f16qOp|FB}j=rDNr5b7kfA@R=Io5Eva@^&3>c-6Yc2%+_p56GA5 zxHpDO>$!|6YhIbCCOf-!h|b=btsfW$Q|oV>JM{oAsbjSSOTHXD0S8cPYk<+4$1ZM- zOrWijY2Ofvi5=eA7v&Fpwpkm=Xd?AD9G4Ku^|81Mz>iQXeZIr7dEbqTmP0WLB`H>z z;`K9HHKZ$a4{E31`ydI*lNhcz?^EeWX2)_c>?r0^4PPP}2}GR(CK9ZR2!e$N!{?O! zB^cWCF_RiD(4yDkM2h^S3L!P$aNHWr@RFCB($0$mk@7=sJE}O>z4;lJn^+J~Y@7^4I(q>M&k% z(fMDf^&#>73mF0r*;qE(I8b4n1Sr>4gRAV9qNvh=>4JHm0gQ`up5|;eAK0y78UKJ`n+aERdan~c-ZtFRZmWGh1DwT5Q`>#zD!tm7x#WO52U zNzE`3WxYA*QpQk1rW8s>G5%C|(&!ckBuLNHX^3J<2jt}{!{-sE9u-nb@d&D{Ubymv zweAE_vd+YO%aM7idI*><%E>*d2op)xO7+y@n6M0R%Hmp)c@Zy_(tdR2H=+`ln8!F} z1@Wq^Q5Fa3v!D8H^CJGtUv%oLqT?#!5uP-85$lsuWyZTRCy5DDvi6T;G@_WvQ{#%_ zl!0ifO5-^gY7})eQkZ6p0d(iHW{4GO{m8g#s%a*95faM79ylS5ygwlt{po-+fm?-U zcJwC&OxlL}Kss~gLRuc|KbczZr5ba9GNi8Rlyq{D3M-9@iq!BwQHx;ziAsVLLP@+- zN0o-C`Y#J~>wp%-!(;uiV7fCR@tNddEpoTa6E(?GLuoi`sWXBO%4}OrwVwKCO+knF z{8voMzxWmuk_o^6!OQdGpGik?3kN6;-n1NHTq?4GKTIv2q+0Yv5>4X9sMcWYx)_%#FQ(F zHOW#E^-?tTU>=88QiUq{LWioeng5en11&rUbE=@$nxAElsUSFt9bf$0jMO?+RCd~1 zJyZ}r4EKuw9Srwp;fwkoh4t1OjuN0D#eu<={@8UIAVK)`><5V!^U0%Mnv%et zjfr{h=KdR)UH$W4G2_R#@}~}wV4=|f9t&f@g$5<d%^wmcy2atVy!BrXm@sI=g0q6zLuaZJeVgQjQ}Q@UiT(&yPwRpp zbjf-Rv|`i$uh0DM1D1FVq8M_5hWFF z!?m@@dw0q^EkNaM+KeOuuk0C`hlo2ZIv2F5Om8OUT7Se1_Et#G*`{Hp>oF`{2&q)K zbwr(BD$iim9GP(tpFZDRBkhUJr>^Nnrs;^#$i4zmUhTr3f^uS~pv6a@Rv$8@2{*s6 zLc1~KS^>hhH((fWSL|hQMk@trs%Cd{9>!IPo}WNw8~f~gG7j;{k2>&yxU|tO4+&Wn zKgPP-9HDgmyLswozrBZ;(>U@uM<2A(^z|#4v=GnU-y)UaBrc9h*5m=I0AkJg5HMGAZ^9HkrGyx3G5^9T7(HT$<-VO z&i9%8-a!(ItylIj!-_wALSPb)cnTLL~2od=jX>AjNaUpWz1`N0@YnoI8Pk*P!~cnD~^B z5)1hM66NCY`}3cF-aS|ROB5$G(Q-hy?9<5S=wIN!aQBfJ6DxtYL1ZF)JzfPWWXK1y zfb?Bfa(MrW$F+;`#|ybpntkLvjPIlbL;WlSjzG`;OA5LFuR)l<9TR@due^n(&KQ19 zaz6>?`%r`U+c6xGnl3}G+(scL!rS{Yx@Z^|tXt?QEw5vSKg8DjRQ^a}AuI&SRz9u$ zV1biF5gzNq0L!?%WYV>C` zcx`6?$hn2acLa{cK5~f(P>v$p8w%2KV}gRarakvQav$eDviTG<5U_2{=h>=xqcITa zY`t^P>WF91J&tz^kVUGHa%ia$F1u6X%;x>8?4o0@LoTQSYn>sMwu|fXV9FE zzEiv(ew4yiy%ga1Yk3EY=?-Z;8+tONy)1Ll6g1pk?vWG!z}co@LH6{cSD$+vqJptEsr(;wE#c z$9a3t#cd!cz~yW9F%YKo4@~LbFnWN}XXQ!4KmVtbb!>$KQAq2u-M+pT1cb%~xDbCa zX1)tW>Kv$_{2so?@pa9L=(oyf_Wl1E>=U4r_hNp)DrC_%cyUTa5&K_s*2A~f2xHcM zczaZ3;{aSjvyYW7T=@9|61^Tv4pNI~>n zoKk{B`VUZczvX_ctU3hG^qX_W*4|Ji)T<#-q+V$|A_EX@L3qHb#exJg`#9k|iyOc$ zVg}%ucFf3h%kYp%?E?}+C~arvzjeKghBl)I%R2VqosPelg}&5;LPv1S=)B-)^@rq{ z*29zHnSMejDqHl{gcj;1l%s^F-LMceaQ)gNvt=?PTk4hgtT zSPE{^Dh1FSP8-W@df%H>ySTEtEU2{V_rosZ*H#rtD#tv2X(!`$);5953!od+UVD2W zUi>jb#J>VZ03cnOW0rWT^Bcer2q^Z3T9D!_P-{2}GPQG`EF7lR5^0{WL*U}hu83uj zb*DwDHWIaf+R@nAn}xMW znvmWb$f2bstDdBx{u7cK7?Sra)fr8pfQ7Eo!o3srGq1lh*pV25gE<}bK|TA|wI7J= zHl!lF?O9xEytD{bM%}!`_DZ}~;4X@QLz2~rrv)fsS9-IVhjVpj@QPUydi)b5 z@Nk@;^&rQKJDeCsC^)t{?C(rgmF37R^Q5RlL#?L-keGKr#M)`Cp$UULI&}W7dQ`+x z6#VVoyG{J42yse;H$G689}@bH6-N{gUicoPPAxSxaZEJ5W_B4`Z0d+kh`g9+jUyA~fOLW7RZ zqsQ~-{tDh(4Jc{iMtM7DYfuK^DaO7;zo!r$#iAf3mu`-sn=EOl!xXgEwNP{bIs+WQ>0D2R0p$_x3|YuOCrP!*gvdOs+q z!2s0Ij)p64aSb+*W!JaJeB4TpH->??xNI2IS-TD8uqn0~RTv;H!KQ^>5H37JgFbGx zhwFU!K;?ozMmtuXpcJP;5gKsza|VQ)Dl2g2Sd95i-5;&<6#mRtiZnrP#r<> zV&aZFab$aei7Uualm=Uj#V=+qh?10&l*&km0NjEe4;+;fq(htYHAMiDM!E@Ne$P_V z35y-7om$Q^@fO&JO^&2vR>b!?0a+34xF%m&OkybRCoTRWRdJ8(mlcpjhYQKOECR?@ zwLIKbv?VFsV~8+L{o9argg<G#`JC8H5#X#iNjkd^A09h^`ze@PhI+0p zn-?naS-{w09_lMc8+x@_?4NH63$P=;)+hHYOq2XoA!%e@?<3_DL<5bin(Rq3i^o_` z?IQzXh(863%UE>OWs6G`8lpwD6B95j!~vR8!~vgHzph7RrdLKG%)))JdHsVYD=k&Bbo|y&2PA^!Jk?o{8CL z9j@i_F)0}Mi?=LjbZ8w4APnMu=+^s-1Ir*_SX!yGG?QescewuIz_U5>5-~Dqn$U

    h0$5U2KwxRLp)fQsGbre>H76GV^2d3Na?HuzzV5WyJF7d9Ve*@WL;X>c9N6EMU zn-m+v-JNe@_Up(0=>1nHBw^4C4gzul`(K^1T+Ccut?VuS+Go|QzUBO#2cu`F)Ua*O z9Ja+t?tu1;qHbHB$`<&L0FZ`nAa)Pj2?+TLJLDS?<0XV%vp$E z@(`1a1>u+j=0U`0>FK!c=T}Q@UyV3eQo7I5Cx+9u_Jy~{!9fJrl=IgAD(6NAJh)Vk6dy)tYAZ@y8KFUnuw8DBJ=d*}UFk;g zGB$HK+ht4Bt=edR{&~Ro!0V)wSj=F9G{A*QjfZng61=W#*2Vp9&`sL*2>9{?v;JV} z;%aa=%K4|VMlIG!(FsCQ3MEb;_E5S)T!f(GYhdB(8a7TReZ5ogvC&-C%M>C%bv%}5 zUNF^*V-_UyVrO(*1_r{h=#;s8bkqwKCGq7Vp~wj&PNoun77s{d{KY03JPbZ$6t5?e zEEGic)nYUiLHZG8v^=DZGW&0_h)tQJt(k(n;7P{$qNY3-ahZpfxB=_&E`7?6lrR1a z%WFd`195}`)@w>@LJJEkc-oSP$y?=Iac{T6NDVELQrj`Gd{{vy^$umd37BnQ*7CEx zvH1#U8&3d|aFuE+NQIj5_D?Khbt73mf%r;Wt0T$}YY2VJrZ@UvB)W&QQjw*B0SI9i z>Cd?VoY*O>73!)sj}P-_j3RS4k;2K z#$BD@V3`B8yuIMUYZA_u?=aY+6E4q9p}4vC?gphZb1k~t5ECc_gH0n3tux%Z&-eyZ zT7MHY3-M+ky4%!~bj>9psN3@cvLy0z9m;RqLED&jamFtO0uP+vaR4}zj=G;vn(iX- znuFY2%;^ibyLSMhxk>xhZN86cWD3F`-}{eQ~wm`&t!@sZ?R+ zT@QOAD#5LT&&M8VfZ0w4F0DtDd#QaS32;x@S{|5M(s*kF7MitEaJ8x3;u%MLlQ z8T}~{2>V*`jdA@nrXV$Vq2=&6yuLNcbk;o}lhf;Wbj@H^gXcv)S<0`sn~}EkaNnc- zZD5_k_a2=2<>aVbO8oLA4l zVS>tmX%y?{1U4MP&Loi*WJdx@)@I;lsOguV>{?tnoexx`XQbuZzIfA2yVCi8_S>^T zsqg1qE}0Vl2;DLnp@HFtiN?yfgiE^GDAKQhd_npg7Cl5}T+Y@YeS!jfRPs1(R2~80 znkK*mTU5jz?LJZ17L7a9HuA^2N$*%-NqKl<8ggAk*6aBP z^PUCj*pHMTsN}L0RJEE~ccUZRzjehu>-+P$g9_Y>njfm&fR*k(e!qlq^Xx{fttr># z7HAv1D2dSUgk{e)@o;0sPZL*n(!Lw#Vf4tqcLXaN8`n|qay#nNHOsQk89qDP+gKb# zzPPEV=cdE%U`Aia9X3TCjN6Vkax)n~6rKZFHH(J*fI#`w%G$|O zKxL&Sa#0)|wlJ1WZCS@)nQbpUhh#a{3-{gl-G%j|xvke=syA2AUJfDrb@q-5O**`4 z0-wc$KW@wFE=8zCe^=Ge@vuMTUNA*vw5o330TPUPy8g$}x9}Oa*VG=Wi&9Vd8i|T; zxBsK-X_5$8+X%4Xawi=K2}NmolVJ2U3Lj;w!mIMbGQ*xZ+U3|1GQXq7~ z3VE@0`zC`2%5SWj{Lt?!Tk|j*FbEjMZdYI+F7HI~#67##3fN%Y_u=3 zqO#NtcSlBDUkfdE}#_l-bU%Q$AG=iBqaM(S*Tr6jZd zr;ZIzb>A?I^=jagN!Bi?fAZ2wi@*6`k_bpZ-RJ*1@fPQTq-Ki88lJiHBjb*WA9VA4idYZib664JO)+v zU(1pDi~Auh5IW|L8|#F%v3iuzHeWP^OO2+4v>kck8AmEFIsa-^Nu6g(Oz``DSVwHUX2a*LL6cR2C~NZpI2TN%?hv_g zn1Z1%6{O~#nde{Egw%WQO*>^bY?I#rE%B>6f^U6%TOmzGMh&IEH$Dq@RJzf++=R|A zaqSK5NU-_OdVTj$;QwJ|QC7-WB~$ss)N?iB+V{S5Yu;^E$8`hW=<}E1q`VDX2S446 zk+aG5!g))9!${@=fBIhQ?@3Xb;RNhBNMI7f)S7LbObA7CnDotqX*LZ*g(P{p+qsP2 z=nTppI!@m(Qc{qxIUjyX@)2X`EQPNuPaFs57u~b zkcyQ#Nb@}Wb!Bjd8eKFXm;G{>u8<-{E8mD`Mcs&oc38$D5BV&RHR~Lu;haT;+A$|G zs+C&jQ~af+u#BZVb?#?VL3J0+_kjS1vaN^}ZYr2SdpYis;-CPPv!K-bxQ*55HYS0&;q9WzTw!(OHlUtZ>5lbq# z&L=1q3d)dL)mc424|r_ZviiMJ6Gc4 zOPd7Oa(nMH^)H`gQ)9k4221hz;ZWwX_gM-Idj<|b-@7g5x*ipFq~O(`cQ@}iAyL_& zcSZP}sk9+$m8MQE?``oRjVs|Z6CeeXe&EM<%%l#J_(__p7UySPAED; zjCKn9Q@M&oo^q{f_>kh)y+p_0G`e|$haPb3nI!auJ$$vur!iCfCVp8IRst@QM znv~*-hb zi;9vJ6&O7&mR}y3o=7#U&9U0p@vh*8?g`_vYowaQXt|~zmD8Cc?NBfqQbVPa$C%Pk zAP{AX8#9Nr7_=*-HqC?Orf3{5QkvWZdD9`K-dJ4@-@N9I>lYv78`klE?4>inI>++7 z)$09%{%00%ou1z~3frF0KxCns&C#R<34te|_v#N7cg(uwa1v^bsFV z7%$-q!&p>Cp+?PztC4>B4wcZAP-OhE9oD<+{?&2x*iQZ(jF^KD&?+wN;t1z;B>^D* zd4DW?j}m+lECQWXgJP*-A*too<_<}!0FF&JK8|sq%ZjxGp&kTg;aHA%S{(-aHs*-a z6o6ha91v-%k>W+w%z-D#d~8M8yY8z_h@*)5!c+srV{}!`n6pJ0T-yehY3dxby#7CQ z2~Hd>cLViM19cJoL)YKkVgIASWRe!ACVB~$ zbI_uf>%vd{*6pU2x8Y(UWVr1tr4H5Oj3^9hX(TC=LA;twCOK{m*TxoenH}#7&%LCb z)G7oLhfxG<(=w6 zZ>w)${~XZfPC5BKpkQO5aGZY#|07w^*}>7}uTjm8tG5qi!4Uu2GjO**&YA~di4i6R zLTj@uqetlOM`=sGAr@Wn?j_I1X)^k?#`SucpFrp+$lkDOj*fbsiULNpl0QErtE-oj zgM5syhELE6lD9pOa+Hk6^~;XaX!Rl#6B5N8(NX&J?dfKh#Z(Kqls&g6)X|_m{&=>~ zbf4=^Bo^Hk6Izmq6Ao3CUYD%T7%ce@Ea0wE=T|jurwlWt&lfHWb8PF^r?P449CrJ9 zTDb~J&5XTHs3c8*mn-k!?V7{z>h0mM52UV$3yKHBUjo~#UK|aj6VSizQ^Uz-< zo7b{eCe!p)*+OLz>~d&dCZo}PcX;2u0k4q1UT*>uwvoayT)3_S zbxLgriS6fP>$@iW5cI~@V zdXz1HG zy9Ku_#Vr$cr>@#C>agS4osV1l-i9$2`4JWeMl-zA`T73`OA?N^*W_~Cza)V zR&upIOG)YUsSD@(&yo3JVX_fZr0hfvw8m`ovshte0lc!@JiO;CN%D}~l+srr3S6BE zemgS{>3&|E1hCAszUhH93fEo~GRrGshVJ3;sLlowJl;dLcFyP3FuZg}fAQmS_~Jj-W@zd(sOP%*6-Hc3r?7ap{VLD zqK9*S19)6@KSU$1em5ImIQ}&5q^duO9*!aM$4BUvmNcfGy%VlT?%h>Qt?7|=Uws&W zwdtPQyY9Y`(-({GzWKZZ-LI#iH*y&4CC&_GpN+})y&Ju!KOBYQ3m8J5>AAdiQ{He2 z3dJnl+x-vU_Yb5d;&9_Ip2Tu>&gl9VtXuCqcmUg}nAM9p7<+kcJ*H{|Fxw4w`bu@M zd3-gMsZg-){XN?0hr*l*)~B6mzPn~U?%yyyP*eup$JI_y$4VR*r@|TDpLTFNZ=2OD zUSVpGC5nbsI-?H4MQ{FK$}9X%rep4CsMQw!R|9&-7qiR^LmKxQZBSokFA&<! zjJ__W0J7s>KpsN{yg%wOR9&;26z2o@l*NT5p;6#5a7M_iZ#e}p48U(Uw~AmDgW?Tl zF1Oa-da~}fTxNN_PV5Ut3k(M5?$EqoSrEX@+(jOmdM53gYaDqhWiBzfTtQA-+XwbQ zY``oLCJGvtjI}##+ogBl8KMF>#zHt!b>Ogh2{8Qvt@k>d&R|$DkQInGKWfRRfwLe8 z6{N=)c{_f5E65G#SIs0)SBp9QIfl^qiyvY+q{abb(@Cq9U1@iG$;@gToB(>~jL7~g z7mv7B(p>da(^`dnYov)W8q9!z)32G9%ml_`7sxQuXWK*HA`4kj!fUyqez=zBdx9Dx zRc}$J@S1cDUNxwZ=Z1OvYPKl;Ha!#)$Fq)%Q-CxK^%zdjR-4`4IIq+S5I}DqW!|tc zep)fqGfU=6y|RU2bR6OMy_JCJ1$7Xgdk6aj$4QJN@VP$v3H}+!pojr0mp(P4!tR!* zTF|B#FBDy)V}fw3F}@aEbcT-8qDBQKiEsJW=62m>*iqjjG*%Yrg%BQp*MgqkrvSW#s2viF@IhQ%g?=s6ghXE*6(Zh$5p1Q+Lt?Y5L zfx}Vo5HKQyf?Fs-lZIf_Ndb_o2xOjJyP+W35D##cx9neq!M{VT@?rp6p+;7n|2|kom=Dfg=B^<%uuyL z2O;HgJw9v5^J*Wi_jh07NlgY}2a^S9j)F6^@Bq?K@?zq}&g#?qm{=6ig4@U5!#6uc zx5oE7i(fuH(7D~O<3RyJ{kcPx*bywPehEtC+dh=Yw6uYTcpbMX{lT+>OTh`Q8r7$W zHM0PBOX{HJAf~;g(u3mrh|3;2c+Y_PRrn|Q_ynDLC zDgCnO>#hS!X0Ot|^7Pdy&Hm@hXE*J0s=2l9R_QzG5CxT$lU~nR_r_{h_{%qHN7WmF z_Y@o1W~^QKA?srN`^mnQX`gd~1?yI^OtyV7&+zOME*76IZ==p8l@8ygbhZoc7gV{# zmuTHLSNrU6NKKz*#&7OBVY6;pV_*Ec`qJ3niIO@qHw~}|8jZR z7ZkQjH+Q~cOXlj=k-&bcmx-pes!%~uI|aj zt*_;(YaTCKKCkZC&FAy#7Z#tsHa)H`_4exZdw*WLZGEqDd-n5n{dV_0pS)N5+y3vH z(}&}~%2-yd`Cf7VW&XLE-*>c3{K4}i4UnPNG*;9wa(BDs8sWI z_yJUU4>*p@4bu&z8yJrPjexZA!A*N~jU8>=!I?lM7l9fDQ8YdWioolh|?yTqr98KZ;2+c~DM>#O4h2 z10`Yl8yEv^P&A_*FNq$O=<}oqa}E{4%t4w&LD!Bx@q*C4p%kheZ5jsM1oVjrgb9zz zpeCS9OQ7pVA2mkkFRg^?M;}8*Hv+x?jW8mw0c&p@-2n8CF2Vq}Mq~r9b$ijxLhm~w z%(8DnHVd^UiEavdR|{cESTi(KP&!`d`qA5i2>l=1kg^zR>oCBZ6_|rSxk`{B5tuz5 H_kef+%vObK literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioApp.scala b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioApp.scala deleted file mode 100644 index f485b52ce..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioApp.scala +++ /dev/null @@ -1,43 +0,0 @@ -package com.twitter.simclusters_v2.scio -package multi_type_graph.multi_type_graph_sims - -import com.twitter.dal.client.dataset.SnapshotDALDataset -import com.twitter.simclusters_v2.hdfs_sources.RightNodeSimHashScioScalaDataset -import com.twitter.simclusters_v2.thriftscala.RightNodeSimHashSketch - -/** -Build: -./bazel bundle src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims:multi-type-graph-sim-hash-scio-adhoc-app - -To kick off an adhoc run: -bin/d6w create \ - ${GCP_PROJECT_NAME}/us-central1/multi-type-graph-sim-hash-scio-adhoc-app \ - src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-adhoc.d6w \ - --jar dist/multi-type-graph-sim-hash-scio-adhoc-app.jar \ - --bind=profile.project=${GCP_PROJECT_NAME} \ - --bind=profile.user_name=${USER} \ - --bind=profile.date="2021-12-01" \ - --bind=profile.machine="n2d-highmem-16" --ignore-existing - */ -object RightNodeSimHashScioAdhocApp extends RightNodeSimHashScioBaseApp { - override val isAdhoc: Boolean = true - override val rightNodeSimHashSnapshotDataset: SnapshotDALDataset[RightNodeSimHashSketch] = - RightNodeSimHashScioAdhocScalaDataset -} - -/** -To deploy the job: - -bin/d6w schedule \ - ${GCP_PROJECT_NAME}/us-central1/multi-type-graph-sim-hash-scio-batch-app \ - src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.d6w \ - --bind=profile.project=${GCP_PROJECT_NAME} \ - --bind=profile.user_name=recos-platform \ - --bind=profile.date="2021-12-01" \ - --bind=profile.machine="n2d-highmem-16" - */ -object RightNodeSimHashScioBatchApp extends RightNodeSimHashScioBaseApp { - override val isAdhoc: Boolean = false - override val rightNodeSimHashSnapshotDataset: SnapshotDALDataset[RightNodeSimHashSketch] = - RightNodeSimHashScioScalaDataset -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioBaseApp.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioBaseApp.docx new file mode 100644 index 0000000000000000000000000000000000000000..0e768c6603df1237dcf0b9c66ec4ee52e4ac2591 GIT binary patch literal 37682 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�tEWN+0p_QhR*G*oovI)0Y{(*=*aN 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioBaseApp.scala b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioBaseApp.scala deleted file mode 100644 index e17fe5a15..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/RightNodeSimHashScioBaseApp.scala +++ /dev/null @@ -1,65 +0,0 @@ -package com.twitter.simclusters_v2.scio -package multi_type_graph.multi_type_graph_sims - -import com.spotify.scio.ScioContext -import com.spotify.scio.coders.Coder -import com.spotify.scio.values.SCollection -import com.twitter.beam.io.dal.DAL -import com.twitter.beam.io.fs.multiformat.DiskFormat -import com.twitter.beam.io.fs.multiformat.PathLayout -import com.twitter.beam.job.DateRangeOptions -import com.twitter.dal.client.dataset.SnapshotDALDataset -import com.twitter.scio_internal.coders.ThriftStructLazyBinaryScroogeCoder -import com.twitter.scio_internal.job.ScioBeamJob -import com.twitter.scrooge.ThriftStruct -import com.twitter.simclusters_v2.scio.multi_type_graph.common.MultiTypeGraphUtil -import com.twitter.simclusters_v2.thriftscala.RightNode -import com.twitter.simclusters_v2.thriftscala.RightNodeSimHashSketch -import com.twitter.util.Duration -import com.twitter.wtf.dataflow.cosine_similarity.SimHashJob -import java.time.Instant - -trait RightNodeSimHashScioBaseApp extends ScioBeamJob[DateRangeOptions] with SimHashJob[RightNode] { - override implicit def scroogeCoder[T <: ThriftStruct: Manifest]: Coder[T] = - ThriftStructLazyBinaryScroogeCoder.scroogeCoder - override val ordering: Ordering[RightNode] = MultiTypeGraphUtil.rightNodeOrdering - - val isAdhoc: Boolean - val rightNodeSimHashSnapshotDataset: SnapshotDALDataset[RightNodeSimHashSketch] - val simsHashJobOutputDirectory: String = Config.simsHashJobOutputDirectory - - override def graph( - implicit sc: ScioContext, - ): SCollection[(Long, RightNode, Double)] = - MultiTypeGraphUtil.getTruncatedMultiTypeGraph(noOlderThan = Duration.fromDays(14)) - - override def configurePipeline(sc: ScioContext, opts: DateRangeOptions): Unit = { - implicit def scioContext: ScioContext = sc - - // DAL.Environment variable for WriteExecs - val dalEnv = if (isAdhoc) DAL.Environment.Dev else DAL.Environment.Prod - - val sketches = computeSimHashSketchesForWeightedGraph(graph) - .map { - case (rightNode, sketch, norm) => RightNodeSimHashSketch(rightNode, sketch, norm) - } - - // Write SimHashSketches to DAL - sketches - .saveAsCustomOutput( - name = "WriteSimHashSketches", - DAL.writeSnapshot( - rightNodeSimHashSnapshotDataset, - PathLayout.FixedPath( - ((if (!isAdhoc) - MultiTypeGraphUtil.RootThriftPath - else - MultiTypeGraphUtil.AdhocRootPath) - + simsHashJobOutputDirectory)), - Instant.ofEpochMilli(opts.interval.getEndMillis - 1L), - DiskFormat.Thrift(), - environmentOverride = dalEnv - ) - ) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-adhoc.d6w b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-adhoc.d6w deleted file mode 100644 index 2bdc591cf..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-adhoc.d6w +++ /dev/null @@ -1,33 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'dev') - machine = Default(String, 'n2d-highmem-16') - -job = Job( - name='multi-type-graph-cosine-similarity-scio-adhoc-app', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "environment": '{{profile.environment}}', - "date": Quote('{{profile.date}}'), - }, - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - build_target='src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims:multi-type-graph-cosine-similarity-scio-adhoc-app', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - statebird_config=StatebirdConfig( - batch_width='PT1H', - first_time='{{profile.date}}' - ) - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-adhoc.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/cosine-similarity-scio-adhoc.docx new file mode 100644 index 0000000000000000000000000000000000000000..8959f84d62020a980994b30e37fd4336be55e5c5 GIT binary patch literal 37198 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 z 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 wdRGf!idQo0=A1Kg?!E8( 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.d6w b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.d6w deleted file mode 100644 index ff6a7b84c..000000000 --- a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.d6w +++ /dev/null @@ -1,38 +0,0 @@ -class Profile(Struct): - project = Required(String) - date = Required(String) - environment = Default(String, 'prod') - machine = Default(String, 'n2d-highmem-16') - -job = Job( - name='multi-type-graph-sim-hash-scio-batch-app', - project='{{profile.project}}', - staging_bucket='{{profile.project}}', - service_account='{{profile.user_name}}-shdw@twttr-dp-svc-accounts.iam.gserviceaccount.com', - region='us-central1', - worker_config=WorkerConfig( - num_workers=2, - worker_machine_type='{{profile.machine}}', - worker_disk_type=WorkerDiskType('HDD'), - ), - extra_args={ - "environment": '{{profile.environment}}', - "date": Quote('{{profile.date}}'), - }, - deployment_config=BatchDeploymentConfig( - role='{{profile.user_name}}', - build_target='src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims:multi-type-graph-sim-hash-scio-batch-app', - gcp_deployment_credentials='/var/lib/tss/keys/{{profile.user_name}}/cloud/gcp/dp/shadow.json', - environment='prod', - statebird_config=StatebirdConfig( - batch_width='P1W', - first_time='{{profile.date}}' - ), - workflow_config=WorkflowConfig( - play=True, - ), - timeout='PT20H' - ) -) - -jobs=[job] diff --git a/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.docx b/src/scala/com/twitter/simclusters_v2/scio/multi_type_graph/multi_type_graph_sims/sim-hash-scio-batch.docx new file mode 100644 index 0000000000000000000000000000000000000000..120682b89f702aa0f56264cf25ed80eaf0010460 GIT binary patch literal 37236 zcmagEWmsIvwm*!!dvFQv?k<7g?ruRFcNz~690CM)cXxM(;BG+z!QKCznK|dooO|#4 ze%bwWRjr?_wY#eJ?oyJ4gu(&?1A_w-Nafb5P$`H@1P22fg#iP@1hwjl1MFSQ?OhDj zJRQuP^_e{EY#S2g6<0;jKA*i{Cov0=dW)lCm+m;wI55QFOH`%Z@MteFpU6Qx+>P^v ztIsHf!Z5|9r`-7xuht57`ZQAMic6g6>!)kxkwX^wdl&o8kgz*{$y5GsFlv6U){KOw@V+i>9uK(ZC=X41rS-9EA?6%A4WNX{T^dQ#l%@ z-lhMvH>%|JGVbS2{vhrznfbEBM5U2olZMb5!1FEK=v-auvr&C~zjKY-1bv;8rMhG7 zYEJ=*#~>mA?fVbAZYK9JP4*+0+LFj?RhyRHO0GnW{>e)lcOwBiY{_Nvb4f;>* zI@-}{zE(#;()eC?;wb6I-GQ{!b!7TqVN%)JV=8=t@A~fUXbWQA3q34_8Qjgy%G-^r z`wydj=2RE1QE3y6Ng842<$iNK5-0b)$qv?C=9N(JZI>_P_`hBg4pZEyLispYNBsol3WZ$SRk-uypaVVcJ z)ctMzw9pDHXJs+5}*rT;cdr{wJxCWO5 z-yT5bp|%sOZJQc#LxCbdQC_fB{I!HFAC_s%ZIP>;C0lxY0%0$Y10r)&X5LMZt^}mnR=Z#u4*cT;^aZx-_;W z9jEoNP3ebycW?vAsv0qnBaMqqOCFyu85`%lsx*umRsVw^woC6-7)Nd>|X#h35R0bd9v~3IJhF__pxO2Fn%Zk6+h`j1j-TG*H$?69r(m@XX z^)rK* z6>Hj88LT4FbSRlt>F*4k6S;?Ves3RM-z^c+-*aC;;T>6`7|_nTi@!eiUK0GXF4wE8 zxW}Nn*g}DUq5Zus#tsgDltpdKew78S{fQn*-{p%Htf(?xeBgrUjQBc!b$oi$+$j0S zIH(rZ9iZ<+7&h-`=9_T-I{v5n(WgaG3)p&vPwLoX54poij_U{wRbPhoS0@h0ouNvh zORzNt(DfY+r$#I0VHn|EQZ$t+N4?4GOvW#WVI78D&)P((KBy$jnE9DJsq%|#@C zxz*hFpC>9cENy&KW>Nf72KiF;sm!x@N|5uz?#+>QQX(>n6ol~$JJgtGnH9})m=vx& zDFLfd$NBgtC~HJ-mz!F%pXk|^cDlF%vlJr7#0(CXvq<;-2tRO5^S4BR(>GEMWf`Y5 zt6;ca>W}M4RclK$!!DyvV!O0Nhq8G&Az#F4B1gVcBw8B-dalv4v;x)~W1Da5O88?@ zWN%TR9{I(Vo^d4TR>Wa-h+-2OQ!xE%Mgdp9xOtEgDlQ?lz`tDnc-qgX#{4Q`MY!CG z{@!n2U`!Wf`~`%Fg(EKI(Xvb6L{N~k;pOPfM(mx z3W(S--n=gH?@8 zhZ>`Oici8*CI6tJ(Lws=8yfEezXENgQs^BwEPlyPG8Of8a?^)Svf5(BLAzkaAyxvs zEG)l$boMajch8LPbC zLdhw&AWoK_v{u5Y5f&@mkFvdy;I6pMI;NPn4h24hI^iRYydUG)53j64 zFL)_Rw4j4zOJr?x%AB=wG#kEvs~V5t>N&JIYV8t@^C8>l%X>w74E0r{fCY@SVy%u` z=Clyayf*0PkcijnvK`BBd>2oJCuN{lb!cc>Rh==aUJ4Xw-VU1Jvi5isD4OE1-)eyM zLGoQ;q>~(aHtsjRgp1(`TmLeo)Li8}_Jid8LC>ity0W}7TrjiQvoWKhjngpZmzxkP0w!rG2fJLAHV-ny z(kwCsmvj*7ud`GesSJ&!oth5?Sh}~h_}UHoIvOXQaWL$S{SDO}8=9g}8rgA*FG>Z7 z1~tq-E2TJ?JPf{;M~3bm)QTvY3w6XHX5W?R5qj2(hsg5u%d&vQoJiI1ENWrbY@6#D zK_d5>w|6IDv1-tH?FnDb9^PuWK5!jMy1N@-_qkHRE?P#UmM`5+qaxGTzoU{^m=}cL zj5MG8;O<^S`{}CAu6&+Vy+%8s+0Y1vFgd6_^k+z=wU>E?_J#qv4JPKWNz}k}nGnrA zJqt|SeEh-Bp+@%^H=li2GiiN`4Euy=AA5(Ufle-SCKA-3oMi9lK_cYQiPGKaciu2B zHiyKLXBKsbOVqGcTfZ=&Y(Bf%f7h*YLqbJqaljz-xHRf+;}&;s4tm_QvFdU6#!x_6 z=~#K3q~xASpE+zYB++;`T%hi&gM~ z7DW&4Fn*ARt?4xGi+@-wr=)*yu~=cZ8dnej1^v_qg$3Nt#38@xGRz*u{-Tr zXL0dxYmF@|<>_ottpZ^sC{+wc$UfD|>$e3^vd@HU^rq2tn)E zAJf&JyRg4cT7T}yzKSXavEY3^dqwCCNx&+!k9hYhm#U3Us;a;zL~14eR(x+$cioIZ zd?#S{j>|WT+HQ8@R&`;6ACJENV<1l?1S-~Sh>|&mfF)}3ad(}xx~NSBDLh|w4_C*M zfSCNuNloIX@`I0G<)0C1S}6N#5#BfC*o(AaS4QO@N~y+wuI1K&(3Y5q|7IMTmFeQu zMt(6-*?ieiZnGu4p6cAQrBJ64*ozKTvovp{Pr*rPv~zYaeRFR{==TC^fM8KSPbglv z7w{~v7lmO6rE!-I*~flwWHq{Lv0w@&;oc>lEY4O?ovykKd0E6BA<9Epo2nXY6Y_4t zhR6DP=4-!~0=$biEQIi`P-GF|4lj|Gjq;f0hhxFs^KTddq||me&MUoH_{~8J z(1(84wtKaIJvzm`=;N<3F_F;$>X{&&-9D1*o5GT<_2i9YUj--#HgBkLqO?dd%6=F%gTh{>AA8dEFl)-7sCA7xz^d%R6dqC!0Kn$w&vTZr+e1OJUZ%Y;idPb^HtNU);2Z+2S7Xxo?VT4q-CNiD|%z1cS1R4mbJ8-q%c0VE; zm!WPKqq3@y^s1AXlneDs_=eH?gv|n7-8!#_POJu~5e(EG!UJd3fVo=~iCHww5_{AL z#7dy19(rNrY5?flKEq4D^}9Fy`*GxOBE>d_BVY$t2ccsu}rnCO`ek%5B40L%W?9HA7jwZTb>q;uheL*`%^6M zgWlTpD;K7oPG%n+?i^o+WNxp7PtJtWm8BZ==jYD*_OGsfp7uGXbI^yh5Ef`gz4h&T zloF?3(WnO@E>G{>Q~I5gEGnioB}Z68O^4agf2l5&=y33s1K1LjZ9<# z1y6#|nMIlU@S4Q48d=OoX=UkR43)3!Wx))4SoCDFjEf)P;uTuE%KbJ8neR15+lR0g z%G+7f^1zjCFS43mO7Oqwd|`NfTDR)puRQC|U;a|f%DySHq-D30fR@h%`4LVf4S^D> z=Rm@d>?k2Gn4v*iMJ#s3g_aD?as#W|5bmnbA1l~XRRm$Bot6~QZlgRSPZ~~zf*vE# zA->6>U1jX!$INU3<0r4;F6OMRLC@E+h?H{2!AhZw=?mt5Rq=G7; zKC>qC_%DJpWeQLW!XGM<+M&&I{)fc>K*f4pR^kLEgGT*bm>U5|j|v*dD^~pvMp8t^ z|B}c^3PkjW>ZGf&z{tl{c=_5kju?WaSs z(3aT!5kWE_nfhyNadV?b=cZo^rtXrRGoggm+`ePm^3a&=D?_9plWx-U*}(eKjcbd( z{eZXVbKl~)Th6B?k1O5#!P%^;ZI7y-^FoRTd;24~+xJnM!um}&5+u>~J50+WiF(mz zoN@SXPYy`pjGj|QXbfv5MCqFYYoxcQK)0oIcjST9PA0#hENQ!Ar}%@GU;SSIRXYKd zF=!>WzBB^8R}W4MM~?4S&NulNX6?A!n3InW;&7(MewcD2>TR&fyAhjp1m)mw5-IG5 zTgP{p7VYh_KD_PuDvu(Zu|8k9`uVt@H7C4BE!c1lt6sQaR9z){KiV3pxs-s@W?f4$ z(em1}9yh3bOQ+W7l(@EWbmFnn)gPU7m;LqoB^6JXi@WNlNt6+su;bEt4@jsXI(3}w z62pbGz?awl^FqagF}4jC;_!Bv(KMBhV`*E@@ul3*wBieA@-loRY<07qHlm5LCkuY* z5*V8A3+I;2YCU(%3>S_Uv&0@yLGve^yr0kT?@jecS`?;qifo|-BXk54<_N~ z&JKi+{Bi?>J9~bzTsR+?ow#uhI}^Q>2f< zQ}wkBIajvRw;*Xcq3ez8x5h{P{MeXNY3ACOh?UX5%@-c@^L?~`!kTniqmb$G5qsK| z-|Bfb`eKmOH)4*X&#=6Y9!i6<3_~cBn^JIFIgb8Y+)RrAJ-IH&wry?--{->jiyUW? zrj@u+tR0`$keQvL&dDv&UiLcS?+R33v!>re?E zNnHKwHQx-?lA_>FWc}N@UEdQ8&bR1C z=I*IL!KUo`0HCCFTZ8}pr(+t{EJ@Sm8Ts35>Rj8D`{VV{%!5Ma7;{^=RBtIJ2(|AJHJSzY3xp7a43@Pu8BLw^$w z)A$kDmh9cqQEC7|S(0q(EE8u@l$k=C`+l(4udAcXcEL$a)@oM)m3P&|C}7T0$Im}w zd!R3L^9rX%R0_Jt34Po%^K${(rVUw%RJo&L_aVHK#9`x3apn5K=9@{YX8ZFn36^Wt zJSfzGflRslP0b12>Xc0wI{o@6nz$|UD2v>zd`dA4YtK&39EI#%?};;(2n zXdZ?Yp%te@9M9RusCB4B-9YWhey^7Il^h%?9ppO}UZ!T4AxL6Bmxbc=6n89HJ}D{1 zO{*c!@ln@~3h>J~wrB5;Rd&WBUnH!Z($AG=AlY6dqVs{$7Ja7u%IgfVFN+P3QB1q_ zH1E4|y5r?5JQC8@jp2`yn$jAtkU_k~&suL>GvcEOL5dRaW=-gyGRTlP^1j_R`aaz^ zwb{7Jxq5aMznH4tmx%EB?f&&~fe^P`7B!uPr)$ZBqgvgVGY>&Q?S1JdKAxr0>SK)o z#f!UiTlx1@KeI!X*}b+Th8_mI^7>L+Z|5+TLRKT`cxK{?a~BTLGzOaO)fsv(xZ0Xb zW>^;nZssjqdmvXOjnv0{ygaQH%JmHF1$6r7RAf`ADsU9m^ya_2{0J+d{A_yY_2AgT z_bcV5Ecq~zJf;;07E;Vs-?IcpNK4v!>;X9YlwQrWLGZb6Op{>EJ(Afl^nAm38M0`H z2y>9>$2h;OrJ7@r0#6&&!^QI)wjr}bhv)`M8heQXKB`{jdx>j=>1v#L2{!ptZw*>C2H@ z6Sb+e;{2)#)fW8(oTT|J>AtJ0_S7zE#erjUPl|+s8)HGHVT)kq+v@PXm<)aN#|j>? z+MQxVjdDMmr2LaLmDLvMM&~x8wnFY@8677*>k-y?$|0hr_pegiGVBT;CwN5JcJmP} zY%S|j@&$_uZqvz^omZf}t(&(aWb+0_Dv4Y0Td6@OM!p8DbQuzK5wQ9Q#{aq5+5B;A>*o*=fDI6bvq z2_sl)%WQ=o$556%KxsY!d1jV%{ACp_o0X#uFA@gj1AFpKO3Qe~sfLd)Hop@+y&QIa zacNA)GOTimvZCW{VV_!)qdDiwu(eqUbo<`rW`u0tWjn(6iE(YdVfzosq+~bs%(Pr2 zDTR*VBHR&aD!KGCDNvFb5>@>}*evSt_C7tHkIH*@ba;%&Kln_?K~Fk2+t2zgYwz+P z>`+ubT{TW{{7eIXET@??_j~;A2zk9d!BpS>*s(I?7v%e#lMPH*{fY%iD`ZZ?TN7M^ zMd_N0!I8f9@i`JxA#^O2si%sY8JB%klcaJtKabsluIpFVWO7>(YFbz2<2!?0cHjpd zfj1&NbfIk?n}Me09fD0t7*19e`@+WuhnMN1iER&rDDNqk0mPq^x8EV|Da$y%t}QJ? zYm6kSS7gR!Lb#>b*`3D8K4>bp=w-IO>YhG|OOc@BG79D+kFXxQ$!MHps_z;hpB;7f z!sHSMa?F{2yAAECKs`u|z}~mSM>MR;@y)8jJhg5!Aig}OdcK;qAi(T6ytBR`?fjNO znP+pb5<#SAE>m*w@_Md$HV+wMu{jyxuVMd=~ptN z?V_8IqLOg*oG2u==nEkh2sX?HkD@c9oe{=y!aTWiA^ zg3>^&83LOkA;^vz?q4?18-u5FwYa~a%-rES#K>PKu37d8&Wq;_toIz(0%{c>pc z{_}omt1|E6usE+ik+m*U8j|zAtP?Jk>Z{km4ZHofEJUgPk7vpX$g(+28`(bpX5d^en>QK3& z-|UyC+C9uz&dGu^W1Rl{YRq<+{7MY|OOk*UNyLFU!0)=`{n8*0XHHTP82w;vwlwws(ydRN<< zBErN;gZ_?v@e0*-Zd2(4B`Fgu4Qdb2olh!=P%~{}NV?$c)G+C7on&K5>`Ef9Ts)GM z-#+Ol?#mCI>qqBnseNkAA=RTxpR0NqtdcO3iO9p8NwNu>-DNk;Qj1TCampgTcaIoQ z41>i{V-QxQTz8u<;UDs1Rri|bRBP?hWacz+gAVWb>{~JIA9dJ?CPygbvh7zMQzU^4 z^1|X3^Xk{SQ5(4%fW$BEa{y#Ey5cZufl9MT6+bOH<8OrPYbKdY+Z7sP#dSASiPy!; zEFt1kb#gXzs4}%(%8Uw@;9x4`!8r0nR z>l5ocD;%E{9Pkmh_{Id<;pWb>s7eY;)Mz=w`Fc3%&KbJ-*`KKK$it!iE(h4=qqGyd{lY`m`jpKLV49s%4J)QfR-2cL?ntaYH?Z+=QVvijwG zgAG1%z;V&S_r<@xE_GH?*qB{Jt4DSVWp`vqBk+@{*`Qd1;%NN(tv0 zwt*VEH60+r6Zm3d0VN(Kbfvzhvmvv5?Q<(#sQ0TfD+-0ArVn+btKlbH4v(dUk|LK; z8YP*7LYk(EBA2{^K9$kr+4M?K?Sw!%Ns(Z3QX+lEf15)fYLJ)gj>Z)nkFvK%S4uwD zDD#2~p~ePZrTss%Niz(UdFByxJp3~-GOgu*DIUugf8ok3E&wx0X0qZo5l#$@P?t|~ zd!+-@x%nAq;+s9?rs#EAliTg5b7zEauv;sw^+-x3`Z@^tmrRUMjX)(8B=zSXbc9x& z2{bPz*`%){Wv`AckCzYCeu&0%z8#2^G{gi^9}FBRT2KZxgYKzAt0wO#5%W`NA35vc zV%BsG?=&hq$dY=p#nshCgCRXw!+75HmlmHql&WrKhuhl4upA+KEJjFP9TNqSG zlLCiT2CtTldIZZcYPBp$zl36en6ue{zNd$8MdWnI}QYEF%77LmAXr5 ziOnO}I_x*X7k<*`M#)}h168_00M`l@L>xql7^xGODx3sT*uXF%InFFLj(FU%g4qHz zgcB^gdCadP_6V{M+}$(b1Bc!_rm755RqU`0W~>8wXC4eNKrrH(Z(>~OFbT`)s-zux|zKpw(*D;~R@@tcO?@RwpBSl%Nj&k8*j?8c0 z%Ywgs_k?Q6Ir^TMv7QsUaS{IMTXF;h3A(UW`?7uy3>$C>8Bj87#7t>8i5O`doaB-} z`OdQt^AwU}3^$Bt~p#BXqEP%+Alrc<8 zPE!j>(tR9D3@&b-S0+VhITNgcsH6}cS!>#`$7Y@lm16L zBc+Vo0!*VR^<=oY&rbSa3X-5fxbs4;&hP#X5!Qbw;Tk5LEXg`eahv5_UdlP5C&llaMx2WEU@!Y~zB3NbR_4EB-}6)(5br_hDP2&5 z)wVTx7O&pSh>qJN`n^IQK5VXcF}$@2w`YYY%vRJa-U=<_mwqxS`b#fG#YORhv_2=$>u z-bBO52&^LdWNFXOA%D%@D8*;kzEzp*#qgjo52S3ae!m#WiWz|;&`%#qsb#{$fL`m+ zWGs_bGi#}3lD#ow1lo$%33{tq-C93YL)~c18^JfNTi_&hd)r|!^n_5h0QFO}>bJ=Z zco}*y`i#SWQ_KEAjRB&DmHoZ@9&g!LKu$9HgWAn(3`EV(^(XarO3Vn9|AYFXvmd@a zJj-yyr{zP35&Tg_X%B||Y$gLkfcq~pt-$ui_ie|*m=P2nVVWqi)%^}yQ{e~`}@$!tADCvUDf{YBnu zB=ex6d5@skq>S~w*X29xp=wJUbBCe9W=BAa;C(%ND?$d*TkGNI$K0Fy#hq^*g-}KL zPYhZpUw%dbYQ7HoE@g|-t?+8h=K0BYWKYuPIKPmw+faxP}mj;C9P|OjP!dj#s2LD^cC?h{ad`mU<}L4U*H%L334V?svf1%W&jCf5qv z@LS2L$ zeo<+3Yx_1w#fy-9>TLZZwgd;V#O$cIx%N>nxtEgFypCzSvOaMN4n+`z6DMy7HG`c+GO#S6XK$6#) zNUjx8wiU!g*N=nFM!qirB8pw!^!O69W)lDbm(qknnL)uBj;K$m{wH$tKD!+9UZqFH zV+0DbD`&eUyz*s+q7t(r92M=!r3D+ZiJx>}Kc$MWOLPamCGj!zx_Mo{xJEIqvED>uywY6=H!NO93_A{GP6TljKu{+`xDJ}hzWC@kpPJ^*NEfc7@lAD94-zdqrm1@P6z+;-W-VC{Z&oE+DBXu1Sf_5eSxh7U0@o4;0)4kFM;*hom_hL)~np5|*Nmx^br8ZFVPD(+^JAs284zO*8 z`e*X&vh@B+UUi3U=eLQa1eU)PBJ?5d9TRSk5l~NbLs}cDQfHTV(7<_>5Mn^6)4@V- z#gDRzl1ezJ$@D9q`1tzcMgiK?K7v=j>vPXD?6D+NC@5+~KnlL=4-6aW9hMWcub%ya zJnwyj2Y|w1>9l@+HHliou9YP#7!uB3dEHuS}iZ|749N}5JP*}PKj5r*4(5*#NvbwXgrRe7S#2yRPVi0T+$oVR5HNTcRdiOr-d6(L2sA8Lv_mgenzQNKZcWz!`Z&v&INNxS8^T@bMHn};4C zYF^TmO}@VfzR#U8bwDv`;6^a|33o6e?~iRF z6gSBX#YZ;}43IGUlppR!vCCK1*|!lZ2tlq%%U$8r78u3-20TGJ3H8Agm!eh8njU|N>7AWkXt5lwC9 z*dx3uk=@Zn^l=|n5c>hG@Oo_oa~Ut2Evs__F#2_o;Gjq>t0Y9|ny|PESE&Sbeo5^Y zyX&K}E5(EYJH@7T#)Ny-TIkWPHFVdd_=@d~_)78C2iiacAQAI@gA-ONlgH+Bc2OWn zZ+<4f0}TPB+WG9_lYGjh*Y300IeWuaXeQ*%4FuhN4t^Q}uuwsGl<3UfY}@G#Ev!bONq?V6GGbdsG9vdEut!f-Vo=P#fR$QZ%%X88 z2EnkOuWx{=h3y+W!r0GpjQ2SQBEB8|2*BdOLJ-kxOeukto0;H0fTQ{mfXN9nC0ie$ zg^^XEu%Gd&++W(g_0KyWL=~ZhBe^V=RSW7^MWBU!J2t=4R&h^)T2&E&hrCLL%-JB< zH6>e?N7s34eSjZPK5pyZ28fEc7DYFYyg+`2<`ICET0K(*fg~Vl@}QKMwr?2qFrWK` zULnIAH#^ha|HQslI~V^p7j!Y_y7W9$5STUiuVVhMxpB*TFd5XQ8Qnnvyje!1MkRbQFe8?I9QUbVt)aq~jtxrPqLsfPU%+@&XLM*4DdzVP04v61EDx5z!#M z#Rzj+$FLO4w9k5h7O@p9B1IDF`UrT6sKvUuch?Q5Q)5M(aJgnQ072vKh4+=B4ID#y z8-!Lz;iHi1*tS3iuyXLd&qp&e^6C)9N?q#kqH7~}$Kpblojy%Kc)P$Ys2X?LQn1r}OJ<(e{Jr_*9j*GQ~WBX8GJr_8Wst%wx{{6^e4r?CX*Ravt1>*+Yj(X;F z-4{Cn@z6XdLUQq29$8z>=MQX9L-5h==+XS0{Pj!nw{{u|)I0`tqQBquOGZ1A@oZrK zH-Mw!Z-ArlKL8x=+yi%^hT7nUPP&Psmo`24%F`7b+AV@2AuRba!wG`7nlEk-Q3(Mb zQ#$;2n@83BcL)0L5F7}7&>(v*gnAseH_HD~pc^#PPvi{YzvY2wGZczx$%o4g*WI6NmJXoaC!+8#jSCM?t_g0IH^XW*hV@SQDgq}SUsVYY9K}fu0 zNBf|kjdnS&?~w~c-z&D8V7|dA1TmdIhhjib)?D&DVz(=c=vy^KJ3ueCK!dl(=2vk_ ztB~rgMJIXg6l^TT<9&liVpxo0V=sn)#l*wu?uC+~Braq}y@H@OIs;HrNy(Mx$&Ksq zM6kB0!aB05GbO3o+kb4l@Pp~u} z7%UXffH?zvEFXu`paQLzi6gm6^~&LiR^y|A;b#x+Ow9x13gwYn+OS&79=41OxA=G# zZxSZv7(Y3S*7S_@nHI-J@mW}E*fPok21lP~eAp}j9A@%icC~EG-=ZvkNiLP^Qfg35 zjedEt^DIZ&*iX`W$3{PPQ#mRpg7P(S?{U@wra`*|*G>zJ9uqH7D`m3W7VDDDt%Gq@ zsoJ?*j?^tY(e-O$)bqu#MHcF?ZJtcI9C^q7*R(VYrsQLDb7Z`4S}6((BBth<$E(h9 zC~YTowIK(d>=(L>mgYxDg-aOUhK#l{0>XPp+3~=inWl`Ovay4EhRL}=E_)8gjehR} z8cKe}hfcEMX-g?074jnuYA-n_FLDyWs@x>^{P-6Y3y2CY@;4Pr#DK|G%@nsO$R^u2 zPZkm{Ta)2d^+yAl%tUN{@hh!&?V=ntY-Sos$B#)V{(3a@W3FzKNPH#*2KB~d-qoca zC^ZUM>90Dvk(Uyb8nG=8v{FQVVbCAb(AN!~+KyKavk^>#$|GIHySHB$Jhqp5XEYBm zGBF1g5`da?>?!1}%4Q>G>x#NCOz>b^JJzahVt!d(zC@ZnG`i*68=gp3#|ExIJ~axp zMgI4SLI^wf+y_B478oWP6q2@Ugaj9%K>kT6slg$bO~TG}jk z>AY?1Fd)W+MChx5NM{AUV~y~{@aoz_2`VA%2*Z%?Rb!L(xrP}+*(Dc+n+*yA1w-80 z71>QCfGOKsm)^DSZCZ1YiO$?#MFm3i4;I^$B_{RuG>2NLf`g&sv?b8P2D8O)4s6o~ zNFTAs)wo`JxY!WC^^(jGG>q9}eSt3}z$=<^3U+6vik(J{o%Z>l69^B52}gw{7u#5D z=?z{);cqX}llGKnL<1~y6$^>4OtmTo1C+=p<=`sigm8sJVZ+g(sgV|w`gPl&1w!9y zVwCI6Q>no*08S?c01XPoO5cwdk+HXYH{j^5A?Y|a+sXh+WRZA&_%MJo7o-2`;#YKO3DpE_j}HnV$| zvX}_NsoWdHL)MVZv&C{yDMX5h$aCzAJ%m z>;+|uF=vY*W)M8WU_;p0qAnGEWzig7M8S6AR_hE8%7zey*3S;aj&t4Cn?KSCNjZaU zysub*$NuP+Rg?qabIdCmVjvQN(};P8Ot&=IpH_2RIF3X8Zxx8Bf2s)Sz9Ld6Q`V@o zcC83JP~=6{OKJLog8k~cByd3{_DqNMZYdaPH1+%3qTn7Gb7@+vg!vg7TQ*8i9PDf6>rtUtKv^lBve6%n$vG!9az)d zU^`J_IU+X}!-x7uX=LyOXk5jZ1jTl^)~H0|py_GKUS(F>N9m2-CK%1u9ZODW(9KP;C;Qel|!4j1M=owWqU#S+CEedPPn+%>7O{ExVgC@g#rt#%4X8(|{-sh~CNII$6_VGb34K=Au~ z5$PO-{Om^cVnI+GdeI}a6Wnw_LNa-oO!;6@yJPhmOt!QB! zgb&GkGH5XbS90iv46zeXT+I3`$idqL=$()t)>(U^g5M zC}t*sk&TS`PGUd|8jS5;q}<*Mm6grur&h)veWYswo#GeC^2ZpCksb~{0e+(uc^BKl z?mUDNcK_=4>fzb>)q8c-~6rzrj~#+pr5CZVS7pItw&zb8}FORm~+BVR&ZKqQ}UjdUvr21 z>YlSxU)s&7)s5E)_wqt~g5rS`9SP4>wV`2X=1O+x>cHX;ze?oGwb$K?56n|T{8jdj zJX?5i_2Fa89`gI2=!RN0Up4YVS1`xye5{QSwlE{o~5y<-y0P<@I)xr1ma_ z_nMXU;T2f(a@+T7rT6ZPZQbFKVo^CfKvQG01Lx8HuGK?}$lmP2s!ML6(d=HeY^n^4 zV{%FO?V_s5WgG|aB>&1}Q0E@UokC2DbhO=aH$r~9-Hc0#%OLzx?|EPA^IWZ{(B37i zrHJzSG-TLVHo>L6wz;WTR1`###9T(A5fd|Z^Ypa+(0em`(Iy7DUpSwcZ^9YC7BkHQ|Ap*l%xyy|oBmJ0G^CkvO|5 zZ>PpqZtSFM(lc*U+6-}42M$hlZhkWDL30-#r9PbBI!?LIiU+2>R&Uy?-0GT+Il|dW zGFK@^tXpdWqD**z^4c5gn@wdyI^KElFBOBm%u^Aed$aqXqk7rEyu@?j+HK z#lUWOuf3xAgQ6Gx-cS-xhDS=s9`heX^Y(^-oF6&O3=YVZh7jxch;Ld#l^X_=f&)Eq zKFPh&s(>NYngkStslLdsQ4Rv(RVMF=d@`xu(GzTY#D~|SH*JKi(P1++8s6{kXxTST zaZjb46g63%s+%)#A27S!6HD2z7)Cl&Fq*dTX6Xi>S)ihZi;qH@&(CXhe?6*YF#2NQ zi^C#ar-X?2UaJPWe1viRP3N_9B?G?czWI!;z3CQbJst(!gzfFAad|PpEL5!Z-m$~5 z(tV6yD1iyud*UP?B1o~i06~jlNf){t-L@8D0n1$%C@ZmA=`R}iqS=k#BgJ48Y;jd_dD3vWx8dx)uU#lo2W?bc1-NX(dGn%#HbjUWD# zv+iG$IZqvK_U*EO5)ZRyQ_1`-YhtGqqic&5o5{Ybt@nxpO%*>!z5{ffLC>$Nsl=0h ztEthZr!k(V7bM?bww@U(g})TRLXoWS|H3{y!wr?+@#0y>o8^6X5NRfqm4T&TCX|_B z=6yUTj$q_g+VkrZR2>D>{_~?H*sx+2taG5x5?QSGg&AJ3IVp2My&;NK7S4Bj&V2o- zShpuAt0F*bVL*{4vZ5k|fFPNNfsBG2Bkvid11`<6iI=PPN7^bfwFb(TWu&ebjg z+(KVw34eJI&O*#r!IV~^7Xvo~_}EB_*KBOcNQpIrJj&7gcRPcY&d|a-L?5f*c6`4_ zX~Mm=e!P-^?uW}%qwvT@?@8#S@URsMoDcadx-B8~32$1=QwMpkM2bf731u(*L202C z&qne^9HMeSoDBs#AVoF0WUS~m6iIdbK`B0}6ro+*@mxcAMo7L#?Sdl|Oa7*&u&vK^ z{z}1Z=S2Ab5%v~9acx_-Fz)W|?(RW?TjTET4ha_A-QC^Y-QAtw?gURD$m^VQ?|t`t z|9kJRE;dC~Gv*j$?Y(-gxqIy?c#@a-`gXvV?O~wM-*b>C@LoTL=;plc{rvhGD=wIM zKA%V;z54KEn)gI~y*g+1eg?Z4@|6ny+^9)`SFwANxRqCt{i3dK|L&$m z*3m5t6N!)41mlR1I&6wjv- zx!1D~>Ajy>{p#Vx;IoV5jynL0aj{hIp(Bv%9(`-Ci!?Im z)bMHBRrf^_41YW}-(si_sxMf7sy?wVP@OKbQk6&u ziRwkza~N$-cI>P^Xzgv^=_68dpN8hpq$q9tIOYE1Vl6p6a$4`!(tzC%^eYdYf9XN; zz~XIFwG;1}YCwv8v58zDa35IXnj4hR5;*iJ?XBeDgE*}33W+^ z!OQJrUY*GD9b0-299OI_5!wQKC+#P%DUI13(RE%|`))y;f&1@fJe^Si;qA!@4an%@^a?hO(H~S%AG$MkRYOLI5Y}{_)#(=CpC_K)b*po8Jh)fIpZ&U7 zGwe-iOmcQE5R*Rb&oHC9zCG$F9e#1q9(%m`3NA-^m7Gw0tSVNt$K*mNl!MgPVSCxM zVn%6ml0PYyGF{SX%ahi$V$r{Gf8Sv2yq(R&Qu))~E#`16HgzWzo^aaLVtMnEzR@N| z&6!f^5m9x<_fjHGyO7m~vJLIncW-yI;sQ|xY|Z8D!j#TN>j~moOP>jTm7VMq^z00x zN1f~W3R>Uu`H|8t?bsNdi+PWQ2kSR=G)P|8vm>;|j;0AW(}l+n_r>vIFX<)(4wrE=(r9pTz{liRwjq{waNvokc<{W}%H03~^YYi#1L?QR^r zj_*$2{mr<6D7?WAb)(#^k> zHK{mod3NvBPW0^6uKx&@$UFIhGL*5(CV2eLLe>~Y!YA=~iW6UGvV`o)k#QjGxcT&Ivte&Wy1DCh^Ca#7=~tWZ=LvgD*NVbY&Ss1E(o9>7sT%*;^4Mw*ClRh&)b ze)}VMB@)yTUO(^0J!eFxgf2>xm1f>H{3wIM_H6i~Yo=O{+>NVQ<;<3(5pVP?IV?IH z8&SIhcG;TQP06d5N0LOxgZ`Gz__~3akU9 z@oQkrQO%h-IU@%dczLzkLD0N;hGwSc0 z7=)jVagog`n)tiz(nG5|4y&?juDWy(%k*X3(Al%IA?Cb%0z$k=fGS5gve%u2pp*$f%2 zXH2E*K1ZJ1X9>4A-%HQpn=JLDQ%g#b#jhs3I5Mf~D|RHnM66$4T|z?+7ipm~uMV7b z+_BH&0QDo&xTc#~-us#4B7#&psy0EZM-^7bStUx<$;*7W-;a>Ru3k$PW@x{e8eR7M zF!Pz(DEBRE^`aZqddjgVS*m*h+lBw-mVxE>Ix_MWF!{VI50*0(qu$a-Kyd48*8>Gy zX@)Kvq|OjxrKSxAhp&H!cVo~>On@D}{f<0JR0~sT z+_zzb;*I| z$>rNBz1K!z?=|9y4$DF(%MTqcM~B^QMNxJ9W{gho$ui1Ke8W0Bgn{le&e|B@1F8(P zv{E!qVh6hGU2$MGGZ*9n5q_4C?HO`!X4VV2ZSs0?J9=Gi%LS6)$WOkAZ*}k45?>>3 z;yaI77p540HN5HS@25FHtGBF^JL_t&+uutRNy~2OFR3Yx4u47gS+d&27d0r&VRUEB z{1xLmx_D4{cRLDVGt-u95zxVX?YJ)w{$%gyruh40+r8gb@aO+OI{-)IeeTyyXU;Zm zEM#zhuLJlt?sYh&Y*z=e)m&tm0`67$0^e(Sft(lpaV9MWGWte%mlouoP}hjOrp-#S z_55{F+5_F7P#Ys8o0(Mnj)d~{v_j=p&qOJ2mc~z$2CJ1Q>0kD( zsr|XJ?E;Nm{p~ppr5tF|KbJW>l8N>QeTS9a+uVQMd31Wnwq$#8h3;+!w58sIeQ&U0 zNp79Z;YWiz#yRNLJ^jsC$qR(GxMzIeewU;oV9r6DrzefGV9Rx-Pg!Ibu*0c&x zTPUZ2Xu#m5bueBuOr1koUSUQ}#AY-|ZL>g4zss20jjpeSuAlCmVoAuGhd;w6-+em3 z-?+d(NWkKX)O1x0io*ylx~x+v*O&dcLet=o>Sc3p2wd-Cpx&&Ux|l>N2#K;eOaeYp zJcYEb6t$}N=?LP|b~RIVaXuHV@+oU`XK`eD&Ih-e7q^D+8lDnZZs>rsXhVfmw5q2o z2wYSvQJ{ymrgT@`s_yJB&c=!DH>egPsq|8>sIaI?s$P0$H#vp7Vo`96< zyY5wMomCql;qXC!e_8>FO7YJ>uU0FOob|N9XrJG!Heb=K*wf4Cs9GVhJ4R`kaoHpThHA_-P0xwJY>edrJEC^(9E#R(Ud9BvThB zeK+S6sOX9C#x|bcJR6H@ck{&Iqn1N7naiiH=1a5alVt2%pAggP)ND_w2xNz9X@_dR zR&O!`AVqhZJJ zctF#!HnCbgO>_ld0fAZi?1Fd1qVCr<-3KCUFEr*B3PUFwVJ-@RK`D+(Hl`nvP!N)Y zVfK91fdIoqL=%yr^9zNnP7l4Vv_j7+tS_tKi#FuQmkK5_vAKN=iDmsM!yp(GG7!Q# zC&n|?Fp$1E1O(PcjtEh1Q*769;wwPde}_Z?{ddTVH49)!x68jm@;!wt)m!{4WEK<( znQ&Mil6+r|@iXvRLXm<1Ee=z4}##8Xg%6d%ny1 z0v*d;tsM-it0~-lFwAB8Kw3ZJ9}gIOOy@woRucfhFdzuieJCmlgFIPciILS+p65p~ zU#P`EAguFwqn&Z+g}2SaKuB7N4?9F5$hT4YVMxKyMIrQAGG}G2)nnm&0>tQ8{a1?7 z!eN`36D8#GJleG(2B5?mlWuW^!$3&E_&GqYaSOeMEA$#CY*1m+=h|(pFmaw&xq@K$ z*n)X&P&L_uSp#*_`e9HtU&r#mpK2(x;ZQ+vGW8iDH~pm3eJ2ST}>Q4Z5-WQQWK%UvM^=$yEg{@e8fKt(#i2L z(OA@yMx!oYqn2pLTFJr}@sm{<+f&=0N!~_vj~hm#F#F}!=(Nv7KSvj5k5?ZLW^nlsn?n+8dqvGP#y+j;fQW`xw9eE#Ks}U_b)n(ERJqoPHzT{?sSY2cNh_fQ^M;%(RlmZd!p+5ejkiU zTg`owLe}qP)&CG6f<8zvRs|eEQ8u5^rzfu8B_qh#{*rkr>hjTwym{Gs(hpkA zeX65Bezf@X#r{mq|0S3%}nwk;VyX{n^v6ktB7!A4WRN57tU_hQC4a1pw?6Sm4M zM2Tl$s;z0BVPF}R@32S$BcX9ZBfF#PRsvO}aL2~aga}~&R zk?3it>%B@Asdfja))!B~TqK;~O3hwTIkP8$H=WU7JZ~tZ)>L8QBDEQ&mRR4HT)+1< z$2a^u(MAmBX!eQV)Q94$MNA@T(k{I0A3vXVgFT~y7M%g}p*8eCz zN9poO?0Ua76@>Zp1jSjgnODU1jnYM#_^})(>A6T@IA`ywsnzW{;#ZKi>D^xQP%@&@Bss^5?>1KE!FR4>OdK~tLkFM7_Aj^OqC|Eb5p7gv_N z1@Yp7Li_ab-t4weYCH9DfA0{U_j#}Zkyb&&`m6HHmtB#8K#E6__FFGeK`mJt&;fXm z3ax4-@M_es6B6&=2P@vReo29yM;ck=QnJ`tSeuyW*wQOfpc>IkK7=5ugvOpiGYQ+i zrN8;JiazL8E-urT;B`xSt>jx+-rH9um-_QSaV(qk_gvnZdDN5Tn!e?LV9?|V%M+qk zIG!o0w*~2@bR#(99|@h~W@pcNwA# zGk*jDPYmwfk@UqBFu(h zOLJy9(hL!fMwjOckRm?Py;DM~F!SRuS(NE>P$)LUc?2338IA*bg=@tW>QGCdh=RW` z{w3mESd`ag?IU=_V(R>J>QPfD;xjv+xn=rJ>!Vzyf5YubDLP-_F z;BG@y^qN;#7y(S0SevBMvDD3^W%Lxditwa^QSnl+#@Q~3VJe>e`?kas*c7d(dH%qB>vSNUCd#M0S!>ZwMPD*6$4ws~E_@bZOS!FV|BX2Xu72;w6JyvnkOOG|YZ;2uF{FGz6^A`8M=N%Ri;glUh5%WODA5RTV*x7Uekgw~qJm z%?38I{|5=T0x0l|9@C9Vsschd z?M>k^F?qX=H@s@yV}#K9$p_?1b=(_6ruAILlr^tRRFj=uJ49#i%+?PKgQ@j5&YgMy zm(;OZf+b%Lo`3_WwKc%#&0`n0Mkdf!$+T|>#l#Np?2GaTKHIE~WHgcb8;(nei@hl|J9$*u3w?Ma!WWg_0C2O!4{|ts2r5x(Bt>?|qO2)!l~%S|i@C^kGKO9`5T_jd?pGZtZ-C^k}e@{ultq77P;2{sgyA)0?s z>m?W%YcZP|E{y-6R{3lG3w0PTx#;{a)cTP4{)G&IhiohxZ5*gDP68Bb>8ial^<71E zdOuC@`j8^!0G?IWBBVfuc8PT8FwQI(MogO_v)js_D4ib2(; zTM0}4TpytRMXw4KpY4yLCXhJg+eUcU7D$;TQ_3d~oZu1Y*aZZ^Fk*Ym0OOF}6d@_CYxrv%cPGeChVDM-x z!$*^)X)GI685ZM;R3yG3ybu{f`Q-`wNX}_w@F6@Tm}ZI<$0aT|8k@||K+{B(HPo^$ zaFm4iwK`9ZO#z)lEdC7X%HbWr@#)w0BjD6>$WtogCWf;gKs?3D0VVqI= zttH#e|C=lxhRu7A-Y0bpf0USZRZ!1CFf)$^TpPMCJ^o9p2n5wzHF+6N~kE$mpxx#7{c8EojK3^uR zyNi3jnuk<76($HG{XEP-Sn$nCwAsvQoqGqTtrM=v$dlxf(n7~*V)4R-WhD5M>@}%k z@Up71QHvr1Gq5;ON-yPyxV{1sk)&prh_c=sbSYyfAyWz^qZofGJZW@`0}`ZX>NG?# zr33PEmErRUQ;!NMrFaBYRxez6!diENC|PG>zU9a~RXqeu7vaZFeS zIAw9I$h?S`N@+hj^BYkKOw41PvVwS3)+mdE^x04Sws{eM<}W(+Rnc)3@d!_vyomKl zsWRi;nUlnXDOvkRG8$3Lk;M&6$gjsA4NnZT_=Gduc|0w!%keIT7Vb0IAc_Mc3x_fm~HKp9e3bxJz9 zNQIR~MMY}(pQuH!|3oE03ZW!ks-sFnRQ;C)x^+Mc;^DFWSTNlgk@!sVuok&n=82l* zsi8ESwbU6w2W7Ucrdm(^v!#D6p`_lI zUJz-7HHRm)xoJ>z(-w@4g26pvQ}e!0>sR{iW(xV^))`cTP>B+tHyJ~B z9t4yGpIAs%nU4OH?KS<3U}DM@#hPR(iFzrTdN7Z}E2%=2e4#_t+06gRtbrDugE>`D zYt7HH$5ap;#f~rjZANOHDk?ketsW`}ABOuyfDVTHv+zaz55zsF-S}DzLb1XG?kT%u z`^#}58M_wWdl=a8V*;%hkdc z%IS8H-&3Vc>F2t1x3!JH3#_c45rhZM#MHIXDYM+sf|bU$4B{L~_H;wG9Y+b!kmA5# zOMmP-4Ui!GdiH}vi}~cyFHK2c&&I^OcXR&@%&z|VubA=UTlrImNU+do0FQ++;6j6v z_F)suByNnJZmvTWPw9`+5ICSx3RR#|fTAFHoFiX65_M=Z0n(T94_b7&5i4YgS<7KdMAjtPTT_vYR2|r(I=Dka657## zHis`%*aN-h*jkN`{xr`%W&5^TWz-(kthMYZBF{tC;Neo+1+nSsv7pH(VJ8Pig)!ns2DH(RhW zWJYRbB%Q5r69Qc>s1#3jnWuF@5V~Z&23oP{|JP@J_W?`122l(-K|}u_6NN1+W!TWn zf5in!n~pU;p(KbQ;K3+&C`n(uqT$+FnBhz$5Xk=f3 zD6e*5PeD1cQ_$k0Ppc1^(uA8|SfSk*a;*U2+Z!+pxGVNDIHQ$^IS=EiM9)tk zvyFZBJsF4iE8f?>^GY&y<`2 zjCg2SmWVZQn&2-mvm+t|cb!{df*`A5f@!S1O9#j?!moSEL%6rlL&PY)c^m=10zq#> zX^^(!-be{6%LMk3cP+w%n&fJZ1Lylpe(xX&#a1kYu~?w`_GL9&%#gkN{R%|n5q|}} zg(5AYdf$t6FA0qC+^SvpgnbOeX zVP1M(APp1p%O!m`glNxz5@9j62&R+*iTnk=kDS){Wm@YGw>r?$Fd>q6Lp}*qUy$NC z;?MAdjw4LEL(ZMRziUu^SxkJ&M~Maee~EJO`2G3MKkuF^{w0bNnrJzoTlQ(>bM!Cp zU%30ojER-N+aNL#z8=M>#pBw=_~V7#D9t`{9>#Z4f}wsE0!N@{ z|0RXo|JNYQ-;N2t=2zZAQ)di6C%K;l^L?m6{OuTyNKKa^S8k&a6XETB8C^7t3)U_4 zl$O^q!yjU6eky+?u@DvlWhHhN$2s*-T(y) ziN5y3IAg~CS;F;x^C40zMm72~8oV~Mf8^Xk<2wRJV;{N11Sm%l?hOU$xG_P&UDKX> zAGwcnAK84083@?6=JRaTywMnlbhh3(Xm!Lh=pM(r1;`>*NIA6Bh;hZm>hyEZ$}|fc z^bOW(F?g?^MJzE-Zlg??;WKDXN8r4oDoJ?ov@L6ohwQT?VGAOsf+DaXY>Z%?CHj5S zL8X=pA|at{H@Y(slnu;3dUX>LG}ODA2NaX&Q9g`A;h+E0 z$vU<|fheSP*=}Fo3j#vp0$hl{7&G66B6SYbPks;I? zI5ybhA^3L(kf21J#E>0;yBK-#_yWes@R#qK?XZp=KV{30H6YA9vC{nMq z9gzWuwjexU)nY+{nSGpap2ZDd7cm3yOgm;|x@CCCr1k-cA(XZ=^WVB&Mnjv?gJm82 z@J`2H%tBvkLZKr#W^`U~wE9ExOzYuE@k~D<6qPM{YeEZk6UtG-({5M@8n}M#k=Zht zDcRwgF=4tnS=4t@i5pWjNQVU6CM*RvX_W$K4yTRfHofo7s$E=JT^3YY_4{F$@oTG! zB$ZvZ*dcInXII2B$hy-aRU3&~K<#Mk?9D>s7N)aX$z2h`b+I-P_DwHE z4`+O~dj0;iCj`(x`Ynb`!Q=(wO_T9{;7tNo?9(kr%lz~8$l2+RiRGi(+wN5zLp=U` z!dToXsG$!>HDMt5lZrIlV~=yS$|(iel`IV<*|aGAS-Lvf2w)084b>dvpf1YjuWg*G zy+76coR&S0?HO)`#IS>;g|jdq=qtEcV7vfzoR>Z(Qj@JPqYV;fzf6%fb%Hv}zFwF) z1)QWMHe(@LlT}aBQ2z-@4GhV9mg)H=Qb{kR=-u5gmHC|c-E2C~+VtXZCD{vP@z#+-%#M1(l zuq!?FJWU$JC4?A5h*_XB+DPMV)SCy*MSNaXT7Fj25)Ok3fJO%KGcT>KWtOut4SO6p zqQ1RHsuBP$`NO%oGkC=;2|fOa5_mYy&w7yK#T`xzBNQB49rkx7tIBd@mU&Xtp`q4O z0!YleA7bsa*3g7O9vwP=S3N3XDGL7f?%gJSRD?Js!W$o`%MS_t$BHA02XgM+askU& zXEtQu9RDFjHUS$gp{T4}FGrqNRs|EC=a}z==O2d8P=gvqgTjXA54;HjJlxO0c$T2@ zC=oOU-@SGw&A|k5f?bP`6QMyz=h5T&bAJWzt#YrW;zNqweVx#u4uhc5ZQcPM6 za#n7e<2fo))Fzk2d)>TaN}eY-xMEv~=|F-IFpYv7AJ%r$>N4h}68|13T{7mtFCB8+3 zW!H($L!3&vHDJ4pLM?b!=^5|~c#EVxyG@mn-pz;8=U41cf8BRzWuyG8V1z|k+De>& z6f7nP#w!ywUKEwTUwRTEa-1lCZeb=Q#kVLgvV=+8#(l(RP?owi7c?9u6)0kiS?zs} zTNK2)2IYnP>$Pl#ai|K;8@(Tt(_jEa5*{ za@Z8xj4BKemtfPvE(jN%p+O(F+QW4|e4ui{AEO;BPf&_eAv|1)EpQy_&R-J-6lw_| ztb-xl|3$!KxA8EE3|8P@1gMUncrkIuoj9_+z{C~gC`yAZ#^M(<7eq-)NlIlTL;!9< zj|Yy*3DTj>`I;gCNh93^F~4W2>4e1&)lMyEnRpBA!zM@4F)QNxoPex|c3hLMEG97& z_mdWXk*c^y_R9*$qQiycT^0dkt6CmzE83Ej?lD9dr~YloI>H}5$v}j^3@J$g2lA0# z%?x7yA`qQEwFd z5`(fpdhVm1rS^jUbq-yWnwCN~jjwPY7Q!T_jibUDpo0&$=!3@sR@_HaxWp3JuYs+KCAm7UBR+DdK=n zt6$fnGSjOoXBirzfjDG??p!(by+mfynE0ASBa&o>@orWL4Galn@@Sf-d!OsZdg`Rk zk}z5t$L3-;{oah}FZ%n*5YNPHv<}yD`Ir<8{KZ=qG&-~n1rP>tKXmK;#eroIFf6Uq zS(-^Q+B;l-ap2h;d5IXAG)-v4ADK0K5}2UTtA&h&WhF(eJxL}BEQ2?yAh0AhKBbGd z%ma~3QJ@DCW-T;bhM};^Z{uM!P4)Kk86u0M1R$`q+E5r8m>HD$#sjYy*lq^vC^8BD zL#T*9%U$KElYB}SP>fmwerb#XPg8|C~{S)&%~r04`8DTNXz5PK+HAudAD@ink; zbqyP*lfK?5_}FMJ>tza&pE@4PGcTCx#W4$#d9gD(E&~JMSaizVJv!=zijw$pkx=9W z5+_rMKZ^$>GX7!{4ITy`GK$v|Nfrts`)V5=ovAU5gpFn)2t<@3b zhc$#gX44yeFcRIvS*ggi}dH*08Z=_)(Ul1oAMuG!HLh6{Zyl?k@O90?>FKy z7ixjKTshMvg!Kg9$@@6~1BVm|5aX^+aInmQTHao8;WY_o%Xb)T(FvF5rcm76dv}A< znYk9-ZHNgJg2ASdht?Tx-Di9QDy_eXnuT~X5Z!I+NxJ5e5Y+AY0a+6Hxenzw?x1bV zyEx+)1Azxl@HhaRNk`pJC{1?}c+Ej>F6Q(F+}%3>(cGkc>o(s$3y30iJ7y@;c-sulDlDO&!=xM@dD-idp`x2jH$>!Dgvma|B|k!7T~wp^R9g0cD7@LfFDADJ-GOJG=?!H`@Wb)G5Hw#a+b9&{hxwOa<^>w{#HkG^1f2kbxMRA+l zl>aGjS8Oo81;uq`zKsSs`DKTk*o^*^2!wsD_{O+?8dH!OywGxZ9A4iVWjgB~kjd%w zJGy2ttHJXkpDg9q+s#N@dbsb={x+~q;d>9x{Bm+sz!<3%7%8_WYg+sSOf9iSG+jMH z3qwmKh=xVbAfpS5=Z27(PTCVPZ{&RcfsrHcy2(SfJ3-ISpf7icS zP<=HsR{5_BK6Sa7~k79v{{CoZ3D}D0>S~;6zrYZ-rU&T0=v$5PjQ9 z!xJMjz&_CkiofDW9FNF_fBk@^dQ9(B0$t= z*QD&!#jrAVnuM#>4Z!L?<>asmTHrEb@KLmkp4_+%c6j!aM96OILw9pRM1(FT#j<%n z*|58V{HJ5TdGlOMfDJ)^!-0UH{o65fVE_ z83UDWB&2B)3Ev9@ouCeDBmPRbec|^EzilkbRh@L_gI%2G75x+iXaEeZtEdz>DeuSZ zv+>8n8=-dVSB3^EF*>@oAANX^3JrMhxP@No+diO2?xtM>hDUS2(PA zQu$(KHsxd50#Q7wi2vvf>Y(Ty&PC<{TN-6j_!^C?*www=$WA(y5gUrx7tx8D*er zRsAz`bFF({Ag`v%9W(-#O6&FfgL%&ab?iq<5L9y63aVO7t-H|??%%rNp7s6t+(8BI zMa>V@Zoo=+AHQG1xOsLX*4C8katpK#UX(;=c*3&hns~Ue;-`tLJ89pI^Duhk-#dbp zjg9N5cex$)>6&HP=M0~n?QJX$B46CzmyR+Ud?;aaJuN0!xpUKDcQB(bxKJn{O-c~ z(cIQ+Fx8tYXfKBl{yKX{g(e+dHG$9K!5_C}b(bR4qQ9$Z=y=$laxa*oGFnx)?*IwL zJYE0e=v(-V+iPkM)kUeNe2qlKx7+{G4>d`ItZf9?in)^x1O)Tnr=+W;nVlK)Uq{xz zI-F_C16yC>^!(I7={Q_^*>H>K5WifzS}8$9YZZ-c64SAzQ6f2`=s~=4>hm+&svCs6 zY#FSp7KXoEc+0RSY(Y9Tz@c4_piy!@9+v-32|Y^oEa2U1pnS7@5lRI5JIqP$?MeGc z*#nVerv&L~^s3n_@O^j%Zx`$ZiDF6es+o4*X0=wY4Xzdj+XF_bZML?r

    T{mo~YL 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/score/AggregatedScoreStore.docx b/src/scala/com/twitter/simclusters_v2/score/AggregatedScoreStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e98009f797ba3c4e0ec11b350fd331dcbf05710 GIT binary patch literal 37096 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 z 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 gj>I-_Bvh_v6sxv+C(C$q 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 ThriftScoreId, Score => ThriftScore} -import com.twitter.storehaus.ReadableStore - -/** - * A wrapper class, used to aggregate the scores calculated by other score stores. It relies on the - * results of other ScoreStores registered in the ScoreFacadeStore. - */ -trait AggregatedScoreStore extends ReadableStore[ThriftScoreId, ThriftScore] { - - // The underlyingScoreStore relies on [[ScoreFacadeStore]] to finish the dependency injection. - protected var scoreFacadeStore: ReadableStore[ThriftScoreId, ThriftScore] = ReadableStore.empty - - /** - * When registering this store in a ScoreFacadeStore, the facade store calls this function to - * provide references to other score stores. - */ - private[score] def set(facadeStore: ReadableStore[ThriftScoreId, ThriftScore]): Unit = { - this.synchronized { - scoreFacadeStore = facadeStore - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/score/BUILD b/src/scala/com/twitter/simclusters_v2/score/BUILD deleted file mode 100644 index 13e8c07f6..000000000 --- a/src/scala/com/twitter/simclusters_v2/score/BUILD +++ /dev/null @@ -1,9 +0,0 @@ -scala_library( - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finagle/finagle-stats", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/common", - "src/scala/com/twitter/simclusters_v2/stores", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/score/BUILD.docx b/src/scala/com/twitter/simclusters_v2/score/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..12ead8c7985b8819da710e8668316d60761e8c79 GIT binary patch literal 36784 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/score/Score.scala b/src/scala/com/twitter/simclusters_v2/score/Score.scala deleted file mode 100644 index c12acf97e..000000000 --- a/src/scala/com/twitter/simclusters_v2/score/Score.scala +++ /dev/null @@ -1,22 +0,0 @@ -package com.twitter.simclusters_v2.score - -import com.twitter.simclusters_v2.thriftscala.{Score => ThriftScore} - -/** - * A uniform value type for all kinds of Calculation Score. - **/ -case class Score(score: Double) { - - implicit lazy val toThrift: ThriftScore = { - ThriftScore(score) - } -} - -object Score { - - /** - * Only support Double Type Thrift score - */ - implicit val fromThriftScore: ThriftScore => Score = { thriftScore => Score(thriftScore.score) } - -} diff --git a/src/scala/com/twitter/simclusters_v2/score/ScoreFacadeStore.docx b/src/scala/com/twitter/simclusters_v2/score/ScoreFacadeStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..1e0c863f398b2d250a5d5e1fcf0e63c79228d201 GIT binary patch literal 38089 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/score/ScoreFacadeStore.scala b/src/scala/com/twitter/simclusters_v2/score/ScoreFacadeStore.scala deleted file mode 100644 index ac084e737..000000000 --- a/src/scala/com/twitter/simclusters_v2/score/ScoreFacadeStore.scala +++ /dev/null @@ -1,103 +0,0 @@ -package com.twitter.simclusters_v2.score - -import com.twitter.finagle.stats.BroadcastStatsReceiver -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.hermit.store.common.ObservedReadableStore -import com.twitter.simclusters_v2.thriftscala.ScoringAlgorithm -import com.twitter.simclusters_v2.thriftscala.{ScoreId => ThriftScoreId} -import com.twitter.simclusters_v2.thriftscala.{Score => ThriftScore} -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -/** - * Provide a uniform access layer for all kind of Score. - * @param readableStores readable stores indexed by the ScoringAlgorithm they implement - */ -class ScoreFacadeStore private ( - stores: Map[ScoringAlgorithm, ReadableStore[ThriftScoreId, ThriftScore]]) - extends ReadableStore[ThriftScoreId, ThriftScore] { - - override def get(k: ThriftScoreId): Future[Option[ThriftScore]] = { - findStore(k).get(k) - } - - // Override the multiGet for better batch performance. - override def multiGet[K1 <: ThriftScoreId](ks: Set[K1]): Map[K1, Future[Option[ThriftScore]]] = { - if (ks.isEmpty) { - Map.empty - } else { - val head = ks.head - val notSameType = ks.exists(k => k.algorithm != head.algorithm) - if (!notSameType) { - findStore(head).multiGet(ks) - } else { - // Generate a large amount temp objects. - // For better performance, avoid querying the multiGet with more than one kind of embedding - ks.groupBy(id => id.algorithm).flatMap { - case (_, ks) => - findStore(ks.head).multiGet(ks) - } - } - } - } - - // If not store mapping, fast return a IllegalArgumentException. - private def findStore(id: ThriftScoreId): ReadableStore[ThriftScoreId, ThriftScore] = { - stores.get(id.algorithm) match { - case Some(store) => store - case None => - throw new IllegalArgumentException(s"The Scoring Algorithm ${id.algorithm} doesn't exist.") - } - } - -} - -object ScoreFacadeStore { - /* - Build a ScoreFacadeStore which exposes stats for all requests (under "all") and per scoring algorithm: - - score_facade_store/all/ - score_facade_store// - - Stores in aggregatedStores may reference stores in readableStores. An instance of ScoreFacadeStore - is passed to them after instantiation. - */ - def buildWithMetrics( - readableStores: Map[ScoringAlgorithm, ReadableStore[ThriftScoreId, ThriftScore]], - aggregatedStores: Map[ScoringAlgorithm, AggregatedScoreStore], - statsReceiver: StatsReceiver - ) = { - val scopedStatsReceiver = statsReceiver.scope("score_facade_store") - - def wrapStore( - scoringAlgorithm: ScoringAlgorithm, - store: ReadableStore[ThriftScoreId, ThriftScore] - ): ReadableStore[ThriftScoreId, ThriftScore] = { - val sr = BroadcastStatsReceiver( - Seq( - scopedStatsReceiver.scope("all"), - scopedStatsReceiver.scope(scoringAlgorithm.name) - )) - ObservedReadableStore(store)(sr) - } - - val stores = (readableStores ++ aggregatedStores).map { - case (algo, store) => algo -> wrapStore(algo, store) - } - val store = new ScoreFacadeStore(stores = stores) - - /* - AggregatedScores aggregate scores from multiple non-aggregated stores. They access these via the - ScoreFacadeStore itself, and therefore must be passed an instance of it after it has been - constructed. - */ - assert( - readableStores.keySet.forall(algorithm => !aggregatedStores.keySet.contains(algorithm)), - "Keys for stores are disjoint") - - aggregatedStores.values.foreach(_.set(store)) - - store - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/score/ScoreId.docx b/src/scala/com/twitter/simclusters_v2/score/ScoreId.docx new file mode 100644 index 0000000000000000000000000000000000000000..7dd83b6c80511e6bcacf2e3b7bfeb321719feab1 GIT binary patch literal 37749 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 z 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 w0uHq}mWx-`XN4>90`uVgAcx-?zhQ}S?+z`^_< ThriftGenericPairScoreId, - ScoreId => ThriftScoreId, - SimClustersEmbeddingPairScoreId => ThriftSimClustersEmbeddingPairScoreId -} - -/** - * A uniform Identifier type for all kinds of Calculation Score. - **/ -trait ScoreId { - - def algorithm: ScoringAlgorithm - - /** - * Convert to a Thrift object. Throw a exception if the operation is not override. - */ - implicit def toThrift: ThriftScoreId = - throw new UnsupportedOperationException(s"ScoreId $this doesn't support Thrift format") -} - -object ScoreId { - - implicit val fromThriftScoreId: ThriftScoreId => ScoreId = { - case scoreId @ ThriftScoreId(_, ScoreInternalId.GenericPairScoreId(_)) => - PairScoreId.fromThriftScoreId(scoreId) - case scoreId @ ThriftScoreId(_, ScoreInternalId.SimClustersEmbeddingPairScoreId(_)) => - SimClustersEmbeddingPairScoreId.fromThriftScoreId(scoreId) - } - -} - -/** - * Generic Internal pairwise id. Support all the subtypes in InternalId, which includes TweetId, - * UserId, EntityId and more combination ids. - **/ -trait PairScoreId extends ScoreId { - - def id1: InternalId - def id2: InternalId - - override implicit lazy val toThrift: ThriftScoreId = { - ThriftScoreId( - algorithm, - ScoreInternalId.GenericPairScoreId(ThriftGenericPairScoreId(id1, id2)) - ) - } -} - -object PairScoreId { - - // The default PairScoreId assume id1 <= id2. It used to increase the cache hit rate. - def apply(algorithm: ScoringAlgorithm, id1: InternalId, id2: InternalId): PairScoreId = { - if (internalIdOrdering.lteq(id1, id2)) { - DefaultPairScoreId(algorithm, id1, id2) - } else { - DefaultPairScoreId(algorithm, id2, id1) - } - } - - private case class DefaultPairScoreId( - algorithm: ScoringAlgorithm, - id1: InternalId, - id2: InternalId) - extends PairScoreId - - implicit val fromThriftScoreId: ThriftScoreId => PairScoreId = { - case ThriftScoreId(algorithm, ScoreInternalId.GenericPairScoreId(pairScoreId)) => - DefaultPairScoreId(algorithm, pairScoreId.id1, pairScoreId.id2) - case ThriftScoreId(algorithm, ScoreInternalId.SimClustersEmbeddingPairScoreId(pairScoreId)) => - SimClustersEmbeddingPairScoreId(algorithm, pairScoreId.id1, pairScoreId.id2) - } - -} - -/** - * ScoreId for a pair of SimClustersEmbedding. - * Used for dot product, cosine similarity and other basic embedding operations. - */ -trait SimClustersEmbeddingPairScoreId extends PairScoreId { - def embeddingId1: SimClustersEmbeddingId - - def embeddingId2: SimClustersEmbeddingId - - override def id1: InternalId = embeddingId1.internalId - - override def id2: InternalId = embeddingId2.internalId - - override implicit lazy val toThrift: ThriftScoreId = { - ThriftScoreId( - algorithm, - ScoreInternalId.SimClustersEmbeddingPairScoreId( - ThriftSimClustersEmbeddingPairScoreId(embeddingId1, embeddingId2)) - ) - } -} - -object SimClustersEmbeddingPairScoreId { - - // The default PairScoreId assume id1 <= id2. It used to increase the cache hit rate. - def apply( - algorithm: ScoringAlgorithm, - id1: SimClustersEmbeddingId, - id2: SimClustersEmbeddingId - ): SimClustersEmbeddingPairScoreId = { - if (simClustersEmbeddingIdOrdering.lteq(id1, id2)) { - DefaultSimClustersEmbeddingPairScoreId(algorithm, id1, id2) - } else { - DefaultSimClustersEmbeddingPairScoreId(algorithm, id2, id1) - } - } - - private case class DefaultSimClustersEmbeddingPairScoreId( - algorithm: ScoringAlgorithm, - embeddingId1: SimClustersEmbeddingId, - embeddingId2: SimClustersEmbeddingId) - extends SimClustersEmbeddingPairScoreId - - implicit val fromThriftScoreId: ThriftScoreId => SimClustersEmbeddingPairScoreId = { - case ThriftScoreId(algorithm, ScoreInternalId.SimClustersEmbeddingPairScoreId(pairScoreId)) => - SimClustersEmbeddingPairScoreId(algorithm, pairScoreId.id1, pairScoreId.id2) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/score/ScoreStore.docx b/src/scala/com/twitter/simclusters_v2/score/ScoreStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..285dad21fc524644bc016eb9be8788e3753229d7 GIT binary patch literal 37543 zcmagFWmsIvwm*z(a1HM6?hb+A?ruRF2@Z`1cXxMp2<{FcxLc4waQA;_X3jY?=id9i zUp5a_wSKbJ?yB0mtCeISp)kR~z~I0H(z&&&REpw~z`?-AV8FmIK&`ss0Q=A8_MZ*a zJRHoO^_kr5Y@3qg6<0-2znr~bB{K_=c!{H6mG3yvI55QFNz`QA@MteFpU6Qx+)eO> zsm~~dz%a#Srrr4vt=0>6c{fw(ic6g6>t|{fkU^Gs7p&(qomz13Nyd@NEK2VZ&JDuU zwq|<2pXLH**{$v8Gei$Q6U)^JNYZ)$i>9uM(Lg623Wie=9D@$6DVX8T>mYYfQ#l%; z-lhMvH>TwJGU4k+_8{&jnfiU=v-aui&10zfODPeBz=RErMhGN zYHty;`w$`k_4^OI9wxVOP4*+0`m)GtRh);elDJpr`T4W#;sFzIX^F;(6{cl~#Fv_&x#LJv!!26uC_@^%yI zej_MfIMs#gRN6&jl1JHjx!)X*#L0Yaa)Wf2c_kElIwTAQY5YY7yzVcMpZ1NRS8(s& z`B&dbKX(@IxvU1{o60dH)9St?5f-9##~D9)JtCG=yq6H_eO@eC-xD6YBg=onls5oV z`bQN#sANU%LDk!U00Tn={WWwlw{>P_`hBg6pZo~Pit2YJBsoG^V&AMTQMha%aVTFX z)RQ`KT5J!LE?(*CRF=@!!tNzHINLR~SjZ^AU!pIz4b(Kzo)5@d?A6+&y=ZJVT!Tx7 z@9-yeSKA5FwoQ+?Ax9Q5r@G^^&>#__-@q8urENH!5v>-JFr>4SMlKC1OF+9u{7j?i z;=?!#fB{I!HFJiSRJHxEbql{2ZvHH7wu=3reMa3!&8VXz&?uUIw3i3%!&nXL+jX-5zhiRf; zEOjYoI!!T4K5(Nmx?E@fOi<_-L{%%$Z9W4^5E>{!W&l$qCxC-9vnjyI{P#_s6+f=f z&w?s>=PfxWuMu{I3MVN;2YwX(Q5w^KsqL17Q{Hwwn`?4&x6n=}m)@0VlYjWiL1>-3 zsRhzBI6jy-B<{@LEF4iA>vh!xd+jM(l8(13DX8zP=W+Iu%977?tS3Sl?;S#IHl$1j ztG?VqC?EMiJtxQ9mnqV$R+ZwsLorn}`Qc0Rlo;2ZQDY*;#KP??i_CDvf`~aBdva}{rYHn$?6Lv)IkdR z^Gve!bweguPb7N#5 z{T3rwWhKX+h2pyEjML$w^4aQV_;3>`>z#6;?FMp;9>V zB>1dGo#zvupsW$SKHt=v{Y1;Pw9~~Am?alECSq{7oPBpcfbavyv~WuV`0Yl@p(5*) zW)%!4yz#h!M76$5GxRd*B(_^ibU2rn6Y@ozCUW#Ud6Km;p!XUrN6UZBF}C%#p^QHk zS@sqg>XBb;=^0ysZbckchcGswISs?NZVYhsi<{?NLe(Xt7I^sOkEi{tT8u;yD}v>( zXcRtEGeVMe<;nwu2-A(=SpUbc#HDFdrA!bOT7Iy*9$pP7ly;WHkt@ZaWdei8rk#!$AMDQtiS z152U!^8@P!a57^CeQI6oK#SAwJ7Z606R^sK3fwewJQp{`2{WTlTP<@5CzA~5ImRB) zH-I3|rCc##48xNdy$OFk<5!9IrTU_)Th$`OK}LIdy6ZOFUa+ACZ`CQFV-F9KipnL2E-4EiHw zwVf<;E?S(%fIu%LG2QrX++>LOzOq+eFo1tjW3~~!SCEdfyq&~R%B%_%=i;PLa)3TV zq2U4ji6MJb>%#yB-tIUl4w~{37P%hjkd;#a8%F+;U$C5fQ{}Ck+(KCqnJeOZYIXw8 zs0gq%288iZ@7XniPZu`tsvKv^5`0mZQq!9ac@3hzsPIQa5$8$039s3b8vM8z= z)+1jPV&R4MAzJ*;4kGedK6GiDRI~+4Hij;T+mSFFGsH3QZT?s-)uwQ3#Bb3IC>hnm zTa{mN5y&3x6FKLsN5E&_Fm#)*YOQToxgSdfay28V{mhP*;S`a-!MOfI^ZK6n+|`- z!8sQ<87{WJ3<(K#7_=E#>icx*!|$|4WX#Fieh4&caV$j|Njx=Ju}V&%v^UDsu-FCN zk8`Ee+o6a9@BP!M=6BrN^WT~E%zlF<3Q@&XlBT>dW*HRHx8RzJqmmgBNN}hKvO3!p zpb_Zjo7UDD{V|A6@Or|ev4Z@!?str?X?&8xu!V`IK(^Jt#`Ox*1b2VJwr?-_8ct<$P7yduphU7qt?7;EmmY`~ zDrbg1pSrzS=C`%`4y&%oynWkpu7n6~Zr&IUEq}y~`P{D$o}+0tpJFD?M7IDIE0X}L zK&Jr-9lY>iYUj~fpq67^7Og|bo+Em3s%J&u!*s=0sR^eq9O`Jw21;%6U;+U}ik-vc zI@3DR5*toufQ%M6S*W!Q>e0%^_C&1nW{ec7Z9rqLH(dO`Q@l(lGK@|AzG; zf;E#t&D&#$8~I!-oI6oCezwY3IkNtFhYe8qy?lsQv9B!6uY{0GYwjl5+aZZ&R;sBvzYtz+wa(_?qsbzLt zhxar2wNb;mZH_@=prD?al;ZSCRr7-t|NEQQ-j)P~sy!Y{c|rD`+ZyINy9103jH(Y8 zP{Y$Y%#kcFR>m8WrQsj0x?V4N&Y<0IN<#O8O$ShTH4)d9%jH^>4la~-J{hwK4!?U^ zYwuGLAGcubGZ`c!%FF;V^*p{|W`pdNvuDbHS{4XZk;@K8!M{!2Z#4urPEOnj6MYWl#+mM$f>=B|ol=bPVK{mnfCvAAF zuV)emJQd(Sd%;2o?+Qhh5bW?0YS}1{YkoKu>^o0I_a~vY!**UN)z~*$ljT{to~eQ2 zeF*%{{LfrRRbcZ+FoS^^s6&IH{43YapFM2Noqw;Tpa-;s9jSVs?(X~o!{;A%u|Z(N zQ}$r-t^~$jo!NC~?DFihzrKCL`4n?v=u1f|LaeT$uJN%vzMj7?8(WEXPcth)&HUvh z$G5}w3}{Fko$+$I&fVXQ)YYbYrtwrVd3x0j0KVXQ^FQpLy6c=~C$GNPzno?WFAf7< zA7b7fo)*udON3jFclGZd)-T#q=G&hRW`EwahlK1NdA!sMyxP5e-3Vp|t`Hj}mz+=c zAB3drZI7=Ww^Y20A73_ltl4sx2oqQK_H-(K;SG(ff4jD7(D8bjUmf>!3m1NK&;syt?ccb+KdBh`WOx@+ve*x75+dri1TJR}duiLdE*gJPFwRYxJgOBw70!Ca7Ls%N zaG|t491?hM$h`Ul66Ln(yK#atK78`H?!)u#MObW7@I-S1w7<9W;*;_v0t!+1Quz+P zA>OvnUYs7gjqh4FJm7vrf^}aGGVRPciOzUBPrA8uPbcIazm5PpF?zo6dXiryRP55a zcyxKJtO-kq#rOs@zjm#4wYOA`Ck?Xt+O@Cwbm{4yb-mn(KU%1y5cNB5t}~--0#hZ4 zy`{5HNZ$r(9=c6>YsTlPk{g~s>x2N&(kbyix5IayZ{W432m?JL)Y`rIPcTSp!eXy$ zQJ{-LPSN?MLmE&*YN~}_Y7Kp~g?)H}nLFBJ%!6@!UtSOTEqvi#uGe2ar|Uh}0+%~B z1q7?y&Q3#8xKFdW6_4M149Qi?=A{kep zY?q?2su1_76Pr{D4M_Ne(t3x^0$p6Yu7^*o2B{GY)E>eDX4QcCTjWVOG_4YQ)CfdM zpr&4WVdYu?=)Zl2mjUbdZ~FHW(o3*H_6n;m<`8&v#a}5-HeWgf7=($FYo^_1)^uW3 z*!n_Rh7*>mkmv1h`hV7L`cz|@YFnE;rz{@qIXYKj7nVN8pq;lpEgD~`(OM6rS>6Y} zb?8?wOh28>K04evz6{IUUJ0L^31uovHR;dKo%iowUHv@mch2OX4{jqU(u{iR-*+!3 z%Dkdc4@6x4ws%kIdrrKln9-6FVGZ>y)P_F1wp@}&1T79+g2=d#t*hsyz2|})KVt1o z%iP=lDW^0Npc%uQWz`Ye5+1y$#pjCibn<%s(~drqXy`kdHx}tF+;>rLLPHvv$Rcu{ z1fesF3iXjSiDxy^n2*xR(xvDsiR=|Y411XLq_T{QAK~H^zIIpoZW1uxYm9XaV=h#7 zux1p1E8AY=w7itzrRsz;ygsd4b@ErA4HPbi*Rry2$}DNw?IfTUazTECQ^`P}gz7zz za3noSCdmxVV$!tLU3;Tp49u!If8b|v_s167%7=-(e&_Ai5%Bat* zN!|a8;7pku)PnGbisTMxv%LQy@jp`iwIU z@9oLqoj9Y%v=J)9S{Y&H=HMF1?J3Z8Dbo#UaJ7rccQ{Ad?${~*pzYT{IG|?7zd8oB z%+`lSpzrFziQ&lc{mS_!|H7;tcRO>+@j)E+^!N``ZbZEeR(V$p8xh8=6*p;Y?nJkC?4t*26|LN%myHH&X&# zlcIQT*{t4U$INiycri!p0R=RF!pZx3k35d0+fvA5Rf|Bs%Z>pk@aEw|!@@@)(n6tz!n`dNiujzB`({7K~!J4F;a;S^V?A7s9nylS>T50hZIX3c|4 z9T32j&)?FT(4$V-g03^5kF1H)CXc+x&B~_~!?5=3)}*f>VS{dvTuWi=F#yBDjN`Bt}#-R-VuFh?$0>V2&4ki1>$$4LOQfT}k}la9!y z@#7)FT59Bxa8v$T4gpU$jqnYvsLN$%9G`Qsw1y4~v&x*`FLz^LFQ(KTjd74zP4T53 zMQ~I2<$a6zlrZ4BuT9x$zMxqDmW^QSa%|c5P`=|bzUSK*gPv;4uL%r?qdJ5<%P7B?9(q1Fw(DBG}2F#BzFWM52%KKf%7k68Uq zDWXQDuT65{$(qV)n{=~tyHR^F_p*$Rlb-b`YdqyJVGG5p6t@h!!pBJ-QMTPeL`{+9kBaK}W2N{3EiDd{6-AeWt*T1$*4_OhTy0#0 zm>yD7lo8Z=*dNWdXP=kYo0%z7_Q)c8s~Ny3<>?V0wHBibA7IIz-9w1u0h40)m5f{_%fp2K57)ta8;UqB^pV0W~wKMJCpms*fIn8!Oqu&Wes_et-kxM?9C++p8TJkIdCtoPCafl6LedJE)9}^>)nQV) z{d8hL-LY?qO6XhJy1omy7M9 ztNSLF3tT6>H!Y0JR#HE@=d5Ei&N)mYuYm}59(O%M9=B;v7;(_~4=(=VUYT2K!x{YY z0L&SDn-U?&&N}X2HqjeHr*rix?sp?@WVK(A&I|l5;SztiHwWG^UeA>%^K~vdHJY^*;aR3Ijb5qSBlDcU4p&iAS z4JoR8ZZ96kVrLMJ{{eC?x22FSgWg790EYWsZP3Q&%w15904{1x3}OH?Z85;UAI5kN z^fI*GAaBFsA(AQxW)e#rP#tzS*|I+9r|Q+dSA?9~VkF=~s8H;(4d3CUB?jP|x`5d5 z;~GXBA-k4Jro6Uz#{)00d2xwPcjau6^E*X_Gx!Hv!_vfSyTp=4I(zVo_dYJ4Kd7tl zKi$~DsH|*-;6-vEKRZ!ShWcKn1NExAyoG*k_Q{RrQl@>T&1`kzk_RNE$ZuQtm6yD% z?oQ6@BRET^-r;7>MCJw4%WO;5YtM2)iY|p`(_ZjKj3KGQ&6eK^ervZv7&$1zlEtaB zn<`({fbfxO!8{iOSENbVM-|j7H)xb?7O&4jING~OmnkrCFL+ONq(1>$eSD2|^YJ#~ zTl@06k>j#pc^qW`C>;Bpk5uO$;iZ3t&;2|6@OOA1kyvNB57)K*cgRam>z7%{xr_$u zW*5mEWoGCOr5=o)-Mk^oPS&ZzIDI2%i$N;THL=$#q({vFvmR4!;Y z`<3Z-4>Oi?vf#{^=RuxU$TR&#N0Oap{1mHYxdsM`r5s1W+(Be>6)TI9XT?gjE`oE` z<$b438PQcl$dK$H1KZv@U75})K5YR+}Igo z7gZywnesO>)f*Ts9wR+zw}K(Em6#_ig0} zm^f+B-m@=Wp}5R#Dt(|NVS=SW=>@v+Nd*#UW=sxC7oD9NCcmu{Z%m6_NfcCyN3!zU zC;!BG`Jr?D=zJ};PpvtudUWZ1)hL5m7HTpXd6+jvI%%`J?5bIA@hK@zS;Xh=5gm$Q zs5ELE!m6C>Zu2GVLqV+SUhAA{yRGa6^@JUAoK? zEba>Y*2E(8G4o#j?&vH#|QqWBk&!mbPs_;$&K z5?Za1^U)A93tcH34aidB_n)F_*DSnW+ayKw`*f?0ln;6t)S%QDAdYZRFp<@u=FVTA zSl?S=d#_-FkGjS;C(w?xcAZ64lUt%h%Nfo$!bx|{(9O>-9URd^#7|r8IJ;nidxT&V zgIx8)m%(Y(@)9ag{D;jr{J+?EUH(7WXhz)qxi6>};~EY=mDE`4Kv8UdN;y8PP)<@Lh>V0#pYh-35D1&(C3~WA1Sg{G?a`D{&NV7L z;ex5Lz*lMi&ur3+KxLn~2Of|742aBV`(KL367DBlox=rSCeBV#+$O}1ff4HVPU)z2 zU^+KH<4k(9r`#01&S-JH{dDe(kP5rC^0o1uQklLELg6J7BUCd`N#&jT^A9=#tF8o^ z7n59)*U^es$F|4Ihgx4m<2j#BL`oVW{HPBGj^u5~Lz;p2)FCxfca(^Q>9miWjc_q* zx`uZe)t#ity}9D*>Y_oA?yRA}H1N!>g?E$y8Y|9=iN3^IWW_HD@n#-koV;xeDkRAP zBPv5z%SOF|mFPA*e$xJOgs8lJqmX1U0~$Y|(F}hg80L-GQnMWgfVG+WH^55WrM1Nt z;BOrc7~u&&>2o6&EQj6c)Ti$B9t&VY3InsWd?9Pd8mX*_P2*i;@!B!Z(SFDK6+BvjL245+0so^>I^l8!Wdv?7h8Ki31VVlfY2Mf;J8DM~5M0KfRT$wNl%bBXPj^Bz= zLovVkCxG$BV$gt_h%iVQpw^{U*W!jxxRNz6p~muSlX>k+|4k!#MY@i1@nW9LZ{N#; zzkTidy{#FSEUYBYz-1gI(W#3F3#}2_?8rT#!4Kmc9(3FHRR7*}% z>z$+pf1EZB+{n%CgsacVe-KwWI?AAmHCL^xwB+`xf%g``lJ3G_FP)jaTmKNkqU`LR zdSxT+9`f(sw$d>Z*C@C}57>~J8YbIihFDe3%Hf4wm#*7N`7*k2)!aua%SyZGDxIms zqZgWO2ODKIG3j0O5`gLFR5Jh>4e4%l@NX{H?>{5wufCivpy{dbT@XjyL0C zOWV?2!oYIc4{zD1Z2+34g&S?^_G0;@Fls`vI=Wc-RnYEDx!Ce_WT@DV(vyc9>eyn%2Xe^JGprPWos?PVk9d@1h&8ceF&wN2@eBWy+ez! zOh(>tH9yy%)ZZyFB9Q+N>Wi)c_>Qm~ z!wv7Y51mHvM^)v$==QVO3=IBmzeu$LI+`ikkA*QJ$lXIVk!5QK9JI*Hw(a}lxlBu@ zYX?L+cYD!)@3M>Dw|LFH`-}Y6Wdua73i}6n3o8dk1k?XPK4T=a^$?x1x#sj2d7qKY zgNo)of@X^{=J&qO-(e3`+v1oz4GlIs{o4fZ8`-}iWD&l7JskU(e{;XMliFDfRZ{rG zpoJX%GYU|bIOMaGD@wP*t1(;PE8m$_b#&p@ydTS8S-vp~rlWk)B&SH|;?}>a+0=<* zSfBol^QQ2tV3`BCZHZ9wx<>HmfIDNXKm3hY?VJ}WD&;X4CC1VOgYa=vlQ*G3o zABi=U4RF_3HS32Q+i6&~mBciZt!4Q>KJ};Xs_Gx~HypwjfQIOkGCD5^Wa%*ZR#=9q zWp`gl(-*+gslKg=0#9u!OrhYeuiM?CMLFabo`=Ls_^i^+)-dE}LyO^;rqm|66=n-d z%A>z_Y;#n-2+60Po=_|^Bsjwn^(o!&L~h=DmqXsO{HSys zUtxCTY`2V8zQRycVpfEssw1VmXhSyXlMd{sbP;xmo`APxK88M5&+D&?mH+anb5}e% z_&2aCuUWG{O#bAky6GDFI@`GNFO#ymN1a7sf0_(Q`fZX2@wdrNyZ=9vJn}Z()9w2l zRX~tQjAE-dKHKb8LZSj3EIj_`3}bUDM*`3r<@&JIy`ANg1Mt>0YDUOw$)rY1X)G-r zX{L~Q`u!HqLEN!hv#ZLFn})_t5AHzgZ_2z7;=S54sI$5gyt;6Za0p&YW~eU+o=dHR zfo`Y(OgQNBbfFwlf6rOVKA2!X;%Uo3=$2p#Y(CJgV+%5r08Gp;6xmmpFdzpk9@#mO@3IQwa0@dz#ICtCzA}JV+EV@nr`7Jf z-W_}cCgxm>^w+_y3G4Q+g~l{vlwL$sTGS4(ILIDER92D>FdT|7oFC9P(9ATPyFXbB z{5;-mL*KUOXCF*r_Zciu8HjYMb9VHc3?~jEo&)8AaKh#914eD9^5Bu#e~DJTf~knu zS%W)~=#zl98Sdar(&)@1h)3`SO2-H@#vNc+xP6Fn%o(s(q?Sz-kam3uXw2=}f-X84B^*Lzi6QOiF~DTG zloEQ&da?)7+DMf;x6GXe&a;dF9YUQB7J4gw zj8&9G!a+@DK>5Vm#}6k8(606oy!L&+TY+J(C4oXwNi)K`pu2&9(9ymTIYIl{*>I$J zuNzzd6gEqj_4BJq)EZX3ENRiOa6avNGMB0)mzm|9Znzxi%VBs2wOZ4;sYR#*>TSC=Foivk3n>eeQdJlyQ;Vs zQ|xqvXYEF2=^ixVaNt3+7ER0P$<39bo9`EUELMv_ut^}}tG3llEO+$kd)E0B@Ezg` zk*e#!t4~p8Vj9drcA_Riiex{;6lXlc%lV>lgY3$tTQr{UN>!3}%W=ENf8{q1JwVjF ztR+R>Z*T+8O25!=P|uf&m@ISvaSu(KM+#XFW%-!rt>=U$KL&pC(rm$M72CqfY6{35ye zlL~u51%L=j0_4PW+B7y|3Sk~O%@qbNX5(~?r`Cv2_mQ&k)3d~I()xiWr@djS;T5CB z>hi$>jOum?#l9t2E9L&8BsuDpcwGed)k_by;<4T7l}+ahN1u?eYqsVXtZ#d0r8g7WpfG4zOkV$Hi>jmoGl&c0RKfq1nofv^Hx4 zoz4r;%G7oKqSrFEpWuSg@!u!snhhn(tB{%A1t~N+@bpo^e&O0Xm!8uJhZ-1&Z6Odh z$qvCoGY{~WLYf88WMxvLT~9P z4wE6~msOP0u0!h=D+-h=6wb$S{m`yrcTcQq3XlvXLasc7&ss38$XO7l6#9s&wsY(r zR+Gf;_*wLEA65|S0k!ygZ4_e}HDYEObp!T7#ohhBCjT_KV%+ zQQ3ujQh}X((>iO?t!6FcXxAFL`%-+x_C|cAbn63c00NMZ`M${sGo8tO^EtO9fVi(P zo8N&3A5!gncJWC*?b37iS?!#?X)7cf^5zDD?miDM0|8j9AUsBxdd)Ww?_J@-wb>a! zTpm+_^-OnrTAnj011Hv$rM+gT9^o#RH~abUT2Wtfd2>%$SH#s{!?)8 zZ^7rk1y|!AySTDGXdK&ic|i-S5o^-lClQa@RuGTM{RQmaTay$R^Dkhfub<7LaVCer zu%54PfU3nE8$7~T&vK0Sc?Tjsoqhr$DW$h`>W$B}3+1kn6g# zEz6_pg0+6Yk0@`~_0&Pa(yc|&%_C2cpW%4~V6|57bWs2?NSZt-C8ix4M!n4E-XT{= zFvqRVboW28uGP-PQ|AIN=3JJZhl>JohW=H||1~$R1rH`e+B9Q3$e{e@0$e(`KowR z;0%KRN2oV?i>LR3sn2n-o?v_*3as}6drH*-^u~VxNz7r*-Rl}Qn!9MipvO_qoUZ3$ z$3GsL2U$oie#<>)tM&YW4Qd!Z+6^t5zl*cQS{QLJ6~m{fsX9ftJA^f)75p9M;Ff93SxZ!#ocTZ-B zc{UQ+yugPYlghw`BdX#N9SGK_(*C4B;P{Ka#MDw?3mRm8f4ddX9s%CIKgjXl;k1y$ zyZ0~G*eC>4eh_%w9Y8k^NX!VsSQ$hu0a)qy#3U&S#yp3j)3dhD_)*m&F4^QFw~bt^ za=H&yTcWbXp697WlS;~XzRu}+bWtx#=Mf4{oSRX=G)z*TleJbC9?qz)vH{!n_2C8~ z&t}95L*}3!*40UR9C@%vrHAu87|#;Ni*eTjripNcbf5)&G$Hra?0gHi)-O~ppMM+f5j&cP-Z*&Hrq>_@WERdVf;fY{v zSA}(CRcA_8wYUG+s#l#7#c5=;W6Gxu85K849TCjzRCD57zwA!r-gRDuPM=_DJ~&h? zpaF9R_*gjsr9lN+FOx>|l^T`9lB_1i0>aK7I+$7qClo3pwX|WimfdX`8E)}#E#4$d z%+Y^xmaOR+=`$^kkKwVf)Ujn%`VWmg&v>(00yxa%L+$F>m{X%He@QM?>QZV@O^=1Y z*m+dG+t^Rmde25bep5XrCxV=qwD&k`0n?;ihGVA%MvsA;q?I;RX^VNu=Gw`)s#NP- zDM#WOmgJI{6!m;DVv&O~Vp||nDM!}1pO}$>&XjU&ZjOYTs+Fd&AYy8seZ1-%hunVB zP#=8Y!G593XlZ`*u6PMOb=YVt%Rj7_gdG?BnQ7VxDii;5;179RX5FT3bM(T>cK+n zX=^g_RsGRGCOZj>U;IkzeTOJV9h;d(^6_JGnx7sG{kV(k)H^k}%*-xxi$wIN}sG>Q{AziDZ++-35% zv%`QG6Oy2>1|yvn_>MKglEP~14<)FCup$hDzt@aU+2u2ow!-YggsA zlmVt~Z$I~~eQ(#Ai%fFnP81ag)<0NmSC*L4+tVEWN);3Y9j7gU7CMwGesf@(F-Y== zHKE4!+RMd;nA%4?gWoi6j~NbMj*nY1?G)t3OcnbLCH9;52b}kusNO#7dZ-p~A%`%G>YIqwf;; zw!_$prDW{vK}b$hS9g zNQ%QZTnJF?_8BZuDS)0)B@316aoD0Tx4cN5F=$Iqu&q&O?+YHxgs{8L6i9*} zbF|3|SwP>7TlACdFQ^y9i9w=7xY>SY!Jl42tkebpsr&_m^&3d{-#~W1f#!TCI)T!8 zua*mNw2|v&<`Dw6II({q2vmUP7Dr}V3|i28KQa}XW%x8Hg!8P}AWS&gxp2(HTZE<% z%p+k19pS=1d|*oXvlBMB6|i{e;YMNNxodThL)r)v>Q4u*Va17!N{w)+_yK|_3Pq&z z6bf^j)k_6IacCuvq<=avLZO~Yd}+dUW)Gi{24!MUw?yeFtkaW-sWKGv}0%mzR!N8nrV8HPHd2V0R>hmW_3k!48&wn1__t8%&kg7jwe$94Y(vwy^yo%dv#{G3!vUyJGqUx+1>GIFz9;Q zpWZvoczZZ|dwe~1Yk$d^9$(kLe7ZSpuc<*fJIlER9qr%fTon{xG{kQ2?yMwg&RE}{ zeFdOoq_|}$=4hadyBTt?4!cbm@$fu%FP`ihx2;kR?MK|4MXbM+wWS~#+Av3iT)nx# z1j=0AS^HS+-bQoPjJr5p&RRUxFH!s23sZM50X@84xU8;R>I{AK1Z!@6i|rm#EP%eg zZ_WC?Zq~c2<35Gm4@_4-r&c$fC)~>m@d=6tQgp;TSG9(QA=xXrA*+LnKYXi^F4tanFFr6&5A)a9JMwJd z#x;hGGrQZ90TA6q zAwLlxvA~*r%}(q``@661T7>py7gpVJ3(aQtsuj}}m>g3} z!fzKfEuSZ_0Z;O;Oa={ZaolM{wC|3#+wMlmZns-;C~+8sUm88`>%E_A6%{(Vg|!rs zU!R5zn=2-{wAVH_6-!D2iIbTth&5tj#&4dUwjcU#W{(^n-m;UAeb16(7I)w9iTB^i z216!SJ$=1%Wnl%+hzf*>l52kEXX@1(6!t$mKUN%EQ@2OfiQ@w*ju{D2Fy)AmU*8(m zx7!NFOS9mW`Bev9Z!<#3RT}JC zRkL%}MWW9vx#4!7mXUJrfv$nXT{-JL!JwwYEl?9KsEPgdM%YV>;I->vTlyVmclGV` z_{xo)bX{ilZCbk__Uhol$QTS?{` z#fWulO+b_h4^UovV|}xwVpzwkApWIlsE>I%B4lrNA9Pf(^U395*q}Tvhue)fnxGWe z1Mj(4GJjC=qTd%n?7{Fz3E6A@qh#LR5RmsHua&_8soD@?9S`wMOQ?FoU`lYXH_khy zFIp8atXh|Vj4<6FnHc3D5LRPCLFk=L{hl6w+dV$49<5~~bd3&+soC&;e@Dx{d767V zJcNf%|~j^`1z|e#J1-p^DM8jW%C*AVYS;h zzfb}bwAbWGAw-~JZ4rVN`I0VlC7NwL!~&+9E>Kotwc1ZK;6<|suUCq}D9Yi({+5p# zKU)ZGIbm8q=1KH~ajfeH`=Jo@TB$8LcrEfZ2%btbd+^D7ZHR@?W5E$n_ zwEiV&1>%Si4FDPj4;p6k*RURdJ>nLNWYce)bqJn!-+$x$eZb#5*Ge@)&*_qFfQF%i zhW)mNY~xfR^N4(Vbs7B>yhpmHOZ8kMlh6SM^q%u&6lQE0zkwV+X2jH(o~AQO-a!KW zjPSu}_)f-8H-LcEt0HE)Vsg8vR2c9s(q_}>?cn(|WN$BPtnUsZ5?@BxeH^&q%H#TY z%Gc)oc3|`U$mW)_YIv6$vBYg01?TnN{Q>U8$?NCKT2>d9Kvw(4(@&;q*yeV#@a$@$ zcROvuF1yD_M3Hlw%X~1PI;rHJ>QtOdB5)&qO^pD1jD`wbz_u2U2H#O^) zn8JDLaIPB_CT`tlCWRS^aviIM`D4bM!kv*BSKux|&Wj<-3|5 zZF(Bxae6`g{|I{r=*qUOTR66D+ja#NYsa>2R8+BT+qP||VpVLX;;N*Ax9gmH@4M&w z-+O=CEh{ap?ex)mpKHxM=2&~KvGBJ0%1|p5Sq2S3{GI<2^T!YDF!_Bio-Le3Ufh#t zQ^C9(41lR%ZjPz<#gZtTp?l@Pr6oiYImGeniv`HILLRhBpwAj->-Ft`FUQkBVW9UQN#MO<9MR2r-RJrBHBMYG>&W+B z`)%=HvhlT9NS}*9u9E4sefMfQvO{{6d~R#`{4 za8ztb7VJAy_ixB2;TL*F+zgkk(lUw`^a*#W&x%SJ}un2pSVu>{4tR`msoG zU-o74U8bkF>mW6^H`xW}n@QjOx79D6-VDCGNFKO@uoxFh4W2pzc^)yh_PR);Lr#sK zwq12!!~k0>9%t>{WWLS`ZP*Okm)U7~JSFhQOSi4MD%~&;^toqzo?J zHrF`uuBis5+LxHf1p)VgHLbZp30)pBF2~m5N@O_FnvxzFoY|A^dYRHMpOa9RW*WTQ zPUY8&EZ?zZ^ulq)`4OQluy@gZ@}Ab1-4R{qb+zvi#2LK*Zr00e(PYE}`|Q?OFys}N zWBzsWlZBhY0;6JD!NK*~9g=DQU;_Vql^V-aGUw5s;70*BcwQ8~+ly}@X#wXBvRjTk zay{OjoY0_*K2D!t^EmxMHT9tfV|NW?qzGYc*IB)8A^v&N>0OUHH^+lVb;8-Nn>E9} z)TU%-=Rz^*(}7Ggs_WaM&a#mg7wz%Kn=jyUlvgQw%_|lI8~68(#?IS0Oe|GD?cHJz$K%p=(%=baTrHM2Kj|B7V$_}~ zl^qe)WPUFr;(-8o)w!7WTzIg4Q%8g3bv-*mYwB#CbTeIe4E0#-=&C$^d&WC3?^P`0 zD*k59-(r1kz_;8y!Ms!fJ-H)X_il1qzm*)d&3tx-2D^W!LKvtdZ*YxG{H4Q3hH#d#}CwM61v@Ta^?Iq_A~Im&cL=+wsmj^#MT`gWl&pt}uTIBP zj+83*4CPa+9wB6dX!Dg9MIEx9F4)()XAKxAxu>MTc78uV(ygkhkTqAZC-l#x3Z@c z2QSa=y*r4Wy*uS&enK3MZx-u%YaEG0No;G?avOYxrq!Ak**d*_4;4Da@1|4@e`B`>Mb?Ksvt$ z#vIk0nL~kknTyWL!_wlfGg^MLcy`*jH@Pj*kXTXo!~=uLs*JtF2}G&$2AQz{=cHi# z9E^(`R?(#2?U$ZfJ@Hso-E%c%Ls+IS6Nb)SU5&Bl6_XI+%^E-NdRDTk-g9f!1R=2Gs}aK9JO;Wo$S=)OqmioIq_1N_MOHmrn{1oU}IMD>&{`wY&&Br zTlYQk;yz2fz4=~tme6deC!JPWhAe(H>CKTv)lj)30VZPo^6C;6dbmgnm34LCtmA=w z9uH_3oxwHT%=X#OA{P;)(owYuUOlR`I?gUts!3Vq!~K4QEOzx;y6}zmtEtgt?+-KI z>5U4%@-}a}F|DUui_)d~7qDIUUv8OL{;#8>Z-Gi7}i00uWO%!UqA;b8#(0o37Ok)8E!SJ=1Y%PFK-><9AtO$ zwy+U3W8Yz0qAXHBo%_}8F0_W3wiaGdwn z&Fdf1in`Fvss4_-Y`IJfH+!BPYgipVcPC}b_aeK}AA0eG#7M{MT3(klq+L!%V=4U` zMku~(wjYBer^FDLJ4YMq(gU?Wjjm(U)KdU!?45iIhxygo2tOovJWWJTe$ z?245ykr;|n9BupuT3KOMOING;T!(lf;i@~wmv=Wc1rQ*v<*j_tL%mfJj*IcHXO>*P zuF`vN6!l#rp6IYFbg}%<;c|4?-BuJ;$8W*t0-q|U+{8Dmw?i20IpeI01wPZuKuarC z<0Njdr@<8mW;1I+E(qagDcPPO_hwduklQA&H@Bnr<+fZ936A{Ki}+U0o-Oe;;wHZH zxOGvg@fSnfmSAsigw`05cJ8<1WnYXCa;iFa7s6fhHS-sY z>zI-u;oa?Mh|Mfpu0=p6_qF4`JouBnqnqOIlWmUyTfv|I|Lg!9QTKUYHk~=!xv`MJ z1H2F5+qu`_lyY1h$X4@^WeT}h`WorAMzVfdT;mmb?4dTDchRk%@wx08Q7k75B9y$iY29O zHkThUE~_nW_3XN;hSFntqotuLoUU3td0MC)JXWHy{5Sn|#mdAb-;W z{}2I-D^l}S2`CODxahJ@m0W+$;|fiqLz=hEy&-VDi-CHxa_V9dr645A<}d~LMDY~b zwo=@t-mfEwOWWN-)y?@_yvnDn&7IAWK^V7Z|K&Y}$!TG^(ap&)Qk zqeOuo)|T2+eXF{&zc?E&w%@3N>^Zqt!+BPNd6PO@1Lsf!>mV-}))tGfg?Iu|rti8} zqjgqegoMKf{rzbLBsw*q;JikyRC3nK2BTwsuf~koM!==x*8@8RbLZuf=yx{{8+k7q z;NB^fkwG1sL7gN8>00tVk0IKb3T!)TD+c;b~` zJZ#pd@DzrbZpj*Pt+vg|h#JR-bZj2FS_HQ5G8}*u_i83AG*=UZdiD^mmZF%tIq7>i zr$I$egg3VF{O8$NRC`(`4gN^Zdrw`wCB|b`J(*j4b->FEleNl~?TF#Ncw@5j{#md6mWj0e`*+%iAJ+!4IV{S; zXd0|u_LX|n<;1Bg!>5mA{qfhMA^SXDf@&g-5mKv7qjP27(}H!_LaiuFN!o&^BvqXP z&Ih~w!b!;E8i|yV*fX)p+qK*AwU;X$k<&*~jJPu*lI!3>se6%^AI7vg!VKQiYlYeU zdR?leBDuz(^@Je!{Zu=HB`H3+=YTV}<%P_{`9O3~@ z=i20I%?!~MfCU6*>9Y&o5sSKi_e?*Cu)WZ@TNn(TY^1p;1O}xzD%rSxXkuY#GKSgn zStkMv6A?{hrp_-EvU)xA`m#zrtMLBpMt5ziNVm(sLh?O@E;U&ED`Ykl3Ylo!r>sKVEi1Q*SJOABb9nhlQyU@8FL-BR+u=?t6ae_d~6}S zHmI8HA*?|<=>ssRny=&e;7_%bIdG^TIGF*Y<+*(G4Bx0t`!XkiXTyIF&9XKGNXH|| zDk0g8rznKrX9%iLnEl(OpE7et*sl<`xJ(P3)2~=o2FC7D9L$(xDBL9N9*%hblaGuj zgfW#Xla4l|#Cr=OX<)3JQ7=lsClws__7L1?lz@>q1U|zb+6xsZp#BB8IL7Bz1QPl@ z?SBT$_y0U#079}~V|PxEPj|q&Z~EpdFe~8EclpwJdQBEU4*}hnf`CGh|LkiR|4zSe z-Ss|+{xEHF3p_>M}i=9iL`t&EVr`79B6^*Mj8mW)ArnH0okUx4+KlFWNIC{sM>!&&T z=5R!}yFJ(tYUAP&69yI?Mi<96FK0G`$96i$h&zo4#3|wRpJ;r1@4Zm<{k{*yrmyC` zNg?a^vFd*a5J4X#8mj`1peS3;=rfYm?@|zCY=6l-6?gk;McusYJ#z0qPANo;VrO8b zW*lSVnVfF;u;6*v*6k=+Sl_(xcKc4xY){L3yw!NWDP?<91118~KEc)Pbn6GN<~`NZ zA3s`ra`$)}^>_>5&r^^&mu*kMPhKjmGXW7dR}Ez({DE(8%uSx|KrJjyf?colG;vt+}}Hd=Y1Y(M5I;Fu>PX_&3#v7Fo@!jq~q3GR8UKn26PY}q*AL! z3A_e1{Dj2k_rZz}t$%V**O5jxxs)t+Hr6I4I=1wR6sSfFlP@8NDxtBL(6_{Gzp~%_ z*~K4pD;Jj;OYpj-eOB_VEbkpFQ%eK+pg5Mz`g<;KEj;Qea?M|JK`?0Yh2;s+D;>`i z)!T!0Q+p7caSz$X&E9nPMsN({WMDtDG+~#bOp~Oqcf7iRDCfjGKE!f}vAYaYhMPZv zfM2@Pg`15863eBuMk(!Fxhfc!(hFjx(;EU!5deM{SU@V$6yp|KM`hQh^0BR z9BHNqN0ZC*1xPU;>E0=!Rk-(Am|}S zoS!Ce0_GT>`h`nLGeIFGBFuZ!E!}Cq0Qvlh55+;6X%wGSJN88R3N}re8L^L1 zh>QET80Y`17)uR~-&QSEv>6%tBFa?kzqPgb&ozk}d2g^Qwe$M(=xuVqduFtCaKH1u z_?xiNwjk-%%B9gWZEbioZU0!{ZSdBt@s;m-czc`L7s|RqZZdU}cCgA|`B=Aa8PAOd zj4j+NoP|sq2wpyA3=Nz+El1{+BbpE6Gm081J2!+ja1(}ATR7rv2Vr`zS1PGu7~E}$ zieB>y3nPF@6Kj)HdA`)`wh37(Y?6xc72#=j9 z;Rx@>qwv*HC0xa8VBeOQ0-K@@H9z2(j*Z~jx7C(H#0@l9;?({$)Cq$XT)!1fKPIji z;8_LVaZJlBj;W!zJs47|wEY>gX0vf0MN$9TlZdB?Cq5`1O&!_d-nGS)1X?n-ux0R_ zgwr6(`ugyld`MdL_5JQu(OvmpI#lvcfI8k?{;lJEVzZHr z?EgW+txzl5Z{+bsF;!Xr>t9x&r~k3yN%`LpPvt->(ElG+j2az=j2uFpgf%AJS^H3U zPEOsfwxI$`?mE1!(e*-jdP~~z$JC8 zmT1YBizna!YHbZLdh^`Ht(6I~RWj`#MlrF&J9Ah5z-ODak&Gcyf5UMJm0TZ>zX1FQ zv(o1~9G~~wxM)2TqfnA!g(+D-qg6w?LieP0`n?a5s62(?it|35fn;_p2g8nHF4gEB z*+d}f95|V1T}%)nJQOjf93a8aQGl7;c!3tP7B5m9AXNmZ`G(`xWQLcr)SP}^5`9LTfET8tFL&>@il9nP5z!-#1!j5etwLf^%-5{`&Fj2F(S?Y|tS#H~}UL<=2Q zq0e`UVuM2$z=^5a$+*HH^dGKD7Gnj~P2des#)#4}#7?y)Qjnxt&M{!(KryJ=bSvR0 zpBnM+$UKPt|qMjP~T3p;kNuRo#2$Y5UJi1v-JFiS3st(J~vq##c3=G1q>d8W%y{a zG=pWMD#K!2nTEtSj29|nD8D>uAH_L?3_gs91k*yX;<&`+Mq`up8EBfQvW8mr1&(ry zTB>dl4Z|=VAUHLW)A)$GCO<_F+h#Zv!5DEEkFo!JtUQZxr5po!RF#>~HJmeAzpZrJ z`G1qe!?1bp)%&Eb5g=1XLi^5Pua|X}UATw1;Ag9L;&a3EC5Q)_rNS__o3$cM<#1+V z80)A8Q~fUV@@*x!N3ik}@^g!%i{8j!B~uO8SB8g8pE326WLH?NqE4|G(&x*>bq{f$ zSM$&sr=mnbq@RbG2n&AMNj96gZFBG7wDrQZnfa1jQd;O3%`D!yu#5zMlD%eC3|>}M zHfm8sUrgT7F zp)ztFY3f-irIdi6%Ib|PPgv(c5H0IW%(onsud0WD>7ty{tBNq0Y^~HlEshDx0H-Xj z6_p?PQYGzAXMQ6pfr)vHQ(l;$${KBPkTLsdz&1bf&-_KFzA8GQA|B~QlOMT0B~@;` z`|Tttaaz{?k&H$ZGi7>0QJgXeO;u?k7ekGro<<7Oj4_bzeAW!HGJOCUS4}nDBtKF@ zdBhVZw2Aj8L{k7Aa3*l8)Xa(bq<~4=*bqc#&Rj&xgZ(E{>$_BA4pfHJRh^bjDOO>n zQBjc^`6p^I>_1USkU}Ymm+Gm~5mo%y3v zf{A=;)!)R@$|5l`PK7a>(&i5xvY>*TCdf`TfRur?;Av?y4TDM9WY$Ov&%vA~sI}&A z*=s5Yj$+4`@b*n=ohmvf{jC8i7$1iFMSu>5`?K&x!wM2r38IUr3*V9&6I%t-he)u{XaLWJao|FOlJ;Q} z%p`uCo^GyF6;J7p(oi^{QVLa|Qh=f$c)TND0^_z6tObUG%(k}iBQ^zr6i-?K_a@;ygYO(z=qYT?0v zV3qR&1*qOMX~+~E)ow5olr%>%?X(0(vF~Z|j$)ZSC9%L6tubu@^|MUn|0 zHVZd_qYOOTdFs;ZT~fctyjtwa9yS$~z-K~}H&@yVY$=z+Mb$u1uWSrtFly2l)$Z2h}=+Gqd0huG72@;OIe$%mIlGBTua9+G|k zaM3n0qyqd=%8E5q7Z85Y=>cJDwepReyrytIlJhyeG&mP5r!XukRlj|tm!GM*gBS_W zvMiBn;4~rbFtei~1b1Cq;esHm;ezR`eM<+(vBIx=%EP#~(8I(ie)$}Mzk)z-!)TDU z;@?OKtI7rTk#{Y^g_`ARkAvp>O@8kn3B^?|gtJ(n`t@hGSbQUU_x}}y$Rqv=dJDbC z8u<$t<$ZJQ)>gnI?T2Z{R=5x_kkH?O1R_$u-9nq{eg?ibjDMK86VLCah-O+tkB52b zd4V)s$Ul$t-4LQ96H0`|*dl~d3MA?m_&#!allzR;A8z%aW#K|3?}mI5sD2=|4S5D^pei!nY{rD77~3O zfN{o*`?G}W`|3-iR)T8uXEbbN6sR>YyBHSAa(s5Iwf`_I(_daqz z=RUIeG&2yeea-jTs%4`o2Iq?B?E!;imEj6!OOP1BLTACl7uaooC=D-hOjA;b(ZM&O|ysY zLcDhBjoJ7^9ih0LWfL+SC@2QbcV&2M#66ZLXQh1MKtaf|05#B|a)bJQ7Hb>{t-fCm z%G>p$LV|tqU)&gXX@- z3I(Ew)@8e6eJ>aYjSFxgb~k3e3q$G}Y?%5UvB&Xc&5G!^%2>|*{~7EPpp5roe$Xm( z(KcjpT1652Uv$~ULHY)gs0uG5HxW8(kruN@~w1- z>zfJF&B>y^lS=%!szC-M;5Kn7q*<#BKyx@_EVt=%Z&u^t%IdP9(xyKEyNq8~T`Z{_ z`{>?5#_gADx_CUP&;~NqG3LF7|bZL%R;;G($5Chn3zz1qUinCCy@hI5T z&SR=*gj!3aWzr6Ti#w+>jzQLg7OBQa)BKcT6lFH9mH)>KNh)=aa_b zPQi`+II4+*A)i#F;U0UPYgA4t$gX5*D9L6->CZCM(MAE&0BWd~UOJnjAI zp6B$Od2Fu;DTv*;r7cE>C-2uv+V0dS<}Et zT4FN};%FG*sJOUWH^cd}k{QyZ^xj}DEj3xq6b<#Ckkr7Cyk}|7XbOcabX67}U9g{d z1DwH*#1I_J>8KAH*uSj(KxDTe72)m3=2GLOMX)mJ;U%_L;4tWG{HKnc6j zQ_s_+LtH|LF@%~0Iirm>-A2E8(p)6uXQvlrCokbJr~qhW5I^(M>RM(yE7P#YlOyWe zd!{J?;8H%EYr25#K$6iDo+yEbG@74p3+IQH#Ynu;o|(rm@#)nI4k z_Bo!TVnuCoNxaw1JEoL*a)T?j)t7Q$x+sAROc&X_U^tMEiVY^EF-Co-w^#35^7FG{ z=&3iO5j7US6tj9vEr|= zz=J0Z^_wzapXP~-OJkxh0(h2a^6u#;Ulz0~0y+z`A>PM{>tR1Np^^NP1y)KD(3vB# z|2X4}23>$%?^4i+lZrSgO)zc2-s(K)ML|PtM@ubKsKsPUqx{Qc6C5Rv0V`Ev_1F*%`Cd66Yt;x_&xA(OJqt);N>Fu70>W87-*bNr$p z)-@67Tq>Q9YMnVMO7W{bN zsGKMr)>5D;0+2M)O%(HgmYPXi>{RX2a+XQ3z&>ntBptURzRwNJj_klS`NConOL0GC z@fWGedu0FYz-&5PNZw@;K#r>A;kKeJN!cDlq;cBchO8s};gbSH_{)&eRB#|4>D8=Y zc6Wi8jJY*2XKmm(@%Bj5BRRu4SDFG{lDwN>xs#E}Y2d=ZAGf-bT1*UdotCur&wl^f zRD-lELbzq9=jwBKp^}~jj4kG&zHqdo*O@M-nS zdURGsP1P(zV+;_7Y{-Kvx1o>7Yz7lwvv^dJ%rL>tDzT9vkxU*<({%51{djM^)LAk{ zYt#5#+@}AVG5y8B02$($n2pxqS{@&hfw-q7)}a8x5blR=Lx4E23<8Fwl{QN= z1#Fas8z2rmo1-ofqmpL`jrgOoXHS9>HTtxWk+7_!sI{laB!Ok{CKUvhq^73~@z!}D zk|_%GP~xnGrppKvR>f@sjHapHegQ*Nv6KJ=mR36oLnAYTGT%hd6$9JNP(4K!!G8!9 z^JjagJav&z>w>Tm=9s1rr`-|B1;fa-W)di>wcG5-T* zdidg!;9B-KkUbVI^!<9Ye8;~@u`%4;`6cDNe*BL{ibX;a27TZlASbZ@)ppFq%+=M( z-r}!)RxRpV&fj@3dUwhU+xN_2Tb<+%XwN9>x8|iFx<@t*_T*cuavg8__)|0b z_iN|-)qxVWg(E zqQsRE8l(u@<>vTv{R-KYZZt1r3x~5^jx^n>jrQlC2aFHAPC7{?3^quET&UD|IL9O* z>&j-`-0ucGr0tIY_aB%I2h$fZHqqc=@FAmly^v&~Aabr2W2gu+jwoZ~A#Ie|e~U$K${cNdE6fj>Vw^8- z&UX=)d1#Fvw4UhJr~F8D4`5hc8(tZVCls(=Q(6;RSXjZ+mPAb1s^E%$yA?)iY?YMS zj)mpJ3N~qQDDO+eYzMQJpY4k)P(a&w0+2+g)L20()J}AKVi~U=&Grq#SK3+~Reo4Q z=w~*)(FY^ZJ)D(_Dhmok2*1d9&I{zkPGzlBSGB45Ar_MKTs1&7wi-p>$o76CE_0z4 zw9Az{Q%cxC@SS{s12A|I4VN9Hiyr4Hr?Hc(#0p!4{Kvd2R~D&AoRwB%PIK z(bJBYNFf+v8g*!$>DF_`H>lF~o2W&IHxtprrh%k;E*U}Ho*$4cQIO|QapM8n&b*5= zaWNQl-~^8Yz?pK?{e;qd7m3#r?B-%lU&!6F0}#zi-nVY|dsHJ+5dNqztI>9?i?BXB zP#fgAW~it~PWJAoh}zVF-E@>xWUQR!-+BP<`W0-E>N7_mmKxfUz#jf(a~%#nyoN72 z;qwa_cSp$G)q?L!bqJ_e$O*OggA+DOmk!W5IY*1lOplAY5lXYHj$wy2-$U5lyQb-_#3m>-JU)TaDT zdAkyWi7hCuEAwqM$SL<7a$+<3Qz8)dwUQg-h8avjYVab~?HLh%NBi5rI)&doIP=TNQ6XcLQc#rKo~&uf6EL;J8r5|53@ZvN zlOP%qL4%b31=l8W&9mOGJg@JB2eIY<(r3B41NzVHm8aTADj>iXRIR|DKP_?pYC-kI z%vj~WF8G+a0qY?a1duuJ-oe8}l>^gg*3XG-ID}ovBCW`d1eB~Tz|BxIFF)C}xNy22 zs7TL9E4KacW|(%R3;yi4XM-mUkUkw^f^3c zn9R6>tx@^}1^B4s3Eb#>0>U*-f_Z#Y<8x~JV4<8XK%o;^xxN)%3Zi4vGn_t>e!ER307#@#!yY4U>{ba-L z4)ULl{pQVgF#+~a{S5~Kg7$C6%z-U~RgH{o|7xVVl{#SmorPfZ$Ja=jv}_sMq!tWR zy3x?)DI|Pv5Ojiitc`>#;f{sh-}r6gSgz`&yB_S~y{_n|DL?~Za9u^Ez)5*OW}l5e z9^MGG+rBU~Qi;*gwg2eHb7U9biw&$|jaizQvK|Mo4Di`TsL-FFme z8{J&no;&2#bcKUP;8IzGUO))%S&)wXXeok99$R5`o2hjVI>P;1cl@({0G|h_z`dyX zq1p{t+3w@_OBgq=9>luZ3SDl2_MwZ?NDVJo_B<0$H&*;~adju{y9pjf&w_hLu=4Q< z9rbRvqkdhpZ2R1iv$MU8#UbR2+xxOHW`hqUY_6xpL@N(&I_yqn^o6_;Q{jUx2*0`g-QZX!I)T87IFBjf2?Fn0vP7QEq*CT0^oR3H3zf(ewkv$9e^cg7MEMJ5Xf&LD6l6!m7K2r8X zB-trNdK$ZG@eX<)S;5-{dqJXDlDul6-M3k-(`$#TgTeNMk!qi<>u)`RL)E2CX=e;0 z?Gpn(oa#U|Bf_{#h>=AKf=*l^FR|{}Wbj1!jdfEH_I+h*9%cgu0i(q23Jk>MohX60 zch{PMpapiLWhf^}iarxrgU37NS>@MsS+^|CT3E5cX(i*VQ=7=$w^^>=mN*CrWO zNon!~3^9g6xw*$7p&TX=6dBFsvo#N#d$pIx$EhqUtIA9c$Q%8-)ho4yF6zCx))I00 zXN*VRss(B3c(4%;$VAtv80Rgiq?FQBg{JK@SG)_VOzqIpT!lqC?hAZ1boo!Bi!}A} z7DXF&nU;9CndXA>z^189_Qh6Imb!s&Jw9ldEoZ`uBxo#!hvuxZvW?Bk^L0f_QrYfK zWU=MUSf+*0#L6pa7tLF+7;DhRc=@Q!l(q1%L~K43BJFSk!--4TGxsOSn*JLI(1mti z352zbV^?~=J|AqP%??yaGV6bOIa)p#t0Q{Th3JEQb3%JR{>}XE`$GHc;`xh1u1^cd zcvAn4-^*p2L7%QaiuCYBUEbU6{`!T3;KzL!wRk%sRG9Q8hkGbLUl zWdS($K85QLvCF9_BvasHaMi%I9BF{KKhgrBW8Q?ZPIx=3XE|-lMPr22SZZkdkr$qE zl=4DB^%_W9GLH0y{Oc`P#~KCfT7YApVzoV8uve1sF&@)q@dcTDiXB-ITx>!dgrbWp zask;Zcr@pStx=W|KoU%#KOfwwffU+s&#x2W)n&ClZQWz#DJV<8BotYjDu1jC-BznHSD>9!JEoJ36R z5-Q3>)BC+c;y2}a2tnLWD_493o zHX9i=mi^xNEZkY;M(c7DHowHRH@qXk7BK7m-BW@8hm}Qn8Dq6f)elpz)yQkV`>w5d zw^<$64Sb`|?jy{)VrZe@}1G^T5D<1nG? zawS9AaLWN_p+Ij1FL66p;^Rx70@reT?>7yom}OIAzBvX<_5I;c?y~n;3Jm)j9Du%W zTg-JmI{Zk%dm#UA-f>c*s!{KX@H8zIr(6{Eaq)cdoxvWIGNm%FTnnp{SEY{9J~)7u~R zt1`F;mK$%Y+Bf?1I{?-@tM**LxHzjX1)kr}(#=VzjktmbR^gz)^eTS~>G)E8AB&@((G#Tox>md*!?NGt=(Jr4tr+CMQCh!>5>9S*Wnmk~g& zU|*JmiSyEOj$5rJ+C|$`Lna4sA8)P)KW@2g^&W5UeSTSP25~u9qcsiY?-ZG z&FudA*sFYLmSoj_#cWl%2p%Qo2rEaPm=lAin4FrPn{4)5%qY)beBKn7}zq`Z!N8MkoVPj?+fcZHJ)NYRg zX|rXenFURO<`Wv&`e#Sds`%N~@DlV+S*h*bLKSdawr#?XpDuQO$W`qkRB`j=rIjiE zr;ZO!T;~>Re)cIOtxnDK5-jJS#V^-Ip9ZWuOf7FC#6-w&J6OsbY9<&_7}U~9Qm2A> zHJMCu-5RfrE#|U1-xr?yNV}+22qehwjcki?h+wxHoHDzE2s>^3$C>GxyU$w-@yJkpe`Sfd^)f$!&{43x zVf7px^*j{?jA|8sL1=b&A14R-IA1NFpcN!rNCF-4+vCvWXK8RkdEXtnWB1`424Mu2Sb$HEyR& zGo{ZLE(>#P>({5U>FOMI`+8b=3Q8@EeNLz(&48CHpOEd^!-$&gk?;?s?#K&@2g6?i z+pOLkjb)S2zwT4Xe*KSCTKrsCgblDJ69LTb{>N6$X~BFL5bT)5g0C9*FidEJE9E7vePRE??2N{sV;vi!>*&DeVc3d6Sn%;dykv_ zjk>V_iAGmfMx)91o%(j|yHrNBEq@Gm_~1k8zUEDG-J#ud#f%0$0lD|=$bviJuBk@E zE~|{n2z!Vvv`STe(JLDl+`-*~TejksiMmsFT{v}k#cm`#TuCRUO$bWe#-W50mEt}m zl_n8~hT{C?=!$y1(twl7asey3TEC^FbjI|B^Zn5G2jE|n zMg#*ktl#T^J8&&2@6Qgi#^IEIGmNrH))-Y>1k;a*obvGP2$~z0QqGBqYi`+*=v=%z zc#34?-fpblt$P%nFpoe{HCV)q<8Yp&3U$tyh8L_`pL}=#+o_n< zi#Zs3MP37@Y9uh*4RQKHb+CDSHJznUxbE{k#_5N`oC(&aof*En7Cr9YFuhPz20h0$ zPEf~692cj;nLeL(aJz0>)GS_MYLVn>Lu2%Ec$50SPXAuRH1N>y*&+POcTySa{?Q9B zFM)uMzlQ`3s;IB~(?jppwdHP4h)<7!Jt^ni-s`}&qpm*R#KN!^7i+0sfc>%->gjsy z3H5lj|9ZM!1d)Mds2gvsAHl`OumBgz+EA2znm1&f`lDd`1OA^gR^j-HMGqthNH7Tq z2sUuW0yggcYnlSCynxrIy^)nIleMFn#g)2^Bf1)fV3#*Ht=$X?4I>8hU>93|G2>@? zFfOa_rO8~yjCD?-(n<2@nN&t!7E=K^2`?azVFErM4H&Af*-nb{fqcs1!jjM^@EACw zWY)Kw0vHD1x0_qVu!_M62H!5X*57)w@3&lLdA(2U3&#o#hUV_jykS`oz|A~F9-4cn z>|1Ibd8%YCF}YkpPTM*L_dsmGEDenK0_4d@rmWKdU&IsG|?u!M^rV!5Qof#WmD zt5x0UcYG<#Y8;#Zdgsijfh!l!_%_l!^)%Bug?($J$#ELYz`)ZlS(eNM#^V>rFw$q+ z!(XF{SWzPCxS@WyRup)F8Y9(gQK#~nbPruMs*&e~`}k?LD*iS-6cWd?j*3@+Gz{|` zNz_)G-QGB_(h3wn?-*m=urYpGG1N0l;Y+)+g<*6Y<@mjoi0KV=kdSu=`vk{Hj3n^6 zA?6AG8ONZQ0V|I_Ewj?@mZwJ0rUWkxU88f7aJ(s@4qfyc9j8UD3QRKJ@~_S9`pfX6 z|Fr{O*_o$`X89xus4R6ms`oqV)Rmnn(|Ys+=Xy`8{;T?J#y(w{fNx6A+_rTIrsw(; zUr@c}b=BfYlfatZqfgwcVvcUvZam?9^U)q|77j;QySoA{rxTder!=t|@+ej9dC<-f z#qxzKy{$Gt5CbDQp@b;_O9kx7Z`3KeYwR$%y4qep63&|jHZiBa59+q z^NF2NzsTaP6V6D^c9hrK0^6UH8zx_Mm(j#}N^#8*zwYdSMoBw@E|53M(eg57*CtI5A56(Zb zTD;3(d&8ta<$HCi{F<80Po#EzoOZDFyxo=7NhRTHU+}Iw?^ltb-m-P-bghN8QHQeZ zvi{w?lYB4dUe>>lv-J3Hspbi9Z~onI`{dh4cI?92XTN@C_v9O}_I|IrceV8U{>Jk4 zSEScZt73b-m4UJOsKG6Rg8?}b*)vjBcpNcKku2g(ZPR=qY5U>cr0d@6j`E-WAo>2) zgY1>NfEQmaj9lpuWF^yb_4=FtH*$>Ho(TOm-My{h-P0XT>6b-ccO6(VdzJQ;r>{B}O5aI`D5$KQ^m@*^H&(mCU%pX0s@@2^r`X6gW9`BZSr_BqPxh@$ z`%@k znPTn<^!~dm*&BDS>7zf>8$Orc4%@c=*vr5zekoW!sKMaofy*~5&L_L^e-Kh*=Px)F z*|4=v!LT|t=k2B&`Jy-Z%+@8$d-34WoX{l~g%g(km&?n(ps-!Kx$_-cGFP`|QIBAR z@?puDFXSY;cYa!>@GmhnqVI!M?WqY@Ohn#DaOoT_)OlDjFCp^`^9%N*C+)qbbuaP8 zKe^N&KXu~vw8PJ)a87%BS9wnRIo~tug>SbnNlWXMnQEK)Y08}4%g*hozV@c+Q1zOl z+a_Hys;(^cefvoDN7Y@qgVFClub=Y7Be?kVt849Ybx$sCeJxjA^LW|vd3DcjKA%^= zu=w<~>2YwA^kv!Ac)x4ZZGG!#1ESVH%|QUxTy4Sm)OhL z)ouOfqbE;Fyt$#W`uhaVpXZ8|UmbB?Ia4_Oo3E9>cd*v(t%q*?4^CxnRefc}_fjU$ zLOH$VXTei1zLE|6%bM7vG8QyqCH@}cZ-&IBsC2-GNuqVYLU1YY+f=NExTqS3W~xqVywHBfsF3j>1yiuQV- z2wZz&K>;>b2j*N{vKd&_O;i|mGhV1k#U+(Fso?2K^e{j_P!guUfpMNKie|Lq zCDF}6pC?6_!(R+D2Wb)oT|4^33qt$fGN^X6X&7`9&?h1gCg@i{O+cBJK-Z5xYK+i- zs0ykdeGD1h2=x9p!ie3CSbO8>2B3Fz5e7_dLN)+fw-? ThriftScore, ScoreId => ThriftScoreId} -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -/** - * A Score Store is a readableStore with ScoreId as Key and Score as the Value. - * It also needs to include the algorithm type. - * A algorithm type should only be used by one Score Store in the application. - */ -trait ScoreStore[K <: ScoreId] extends ReadableStore[K, Score] { - - def fromThriftScoreId: ThriftScoreId => K - - // Convert to a Thrift version. - def toThriftStore: ReadableStore[ThriftScoreId, ThriftScore] = { - this - .composeKeyMapping[ThriftScoreId](fromThriftScoreId) - .mapValues(_.toThrift) - } -} - -/** - * A generic Pairwise Score store. - * Requires provide both left and right side feature hydration. - */ -trait PairScoreStore[K <: PairScoreId, K1, K2, V1, V2] extends ScoreStore[K] { - - def compositeKey1: K => K1 - def compositeKey2: K => K2 - - // Left side feature hydration - def underlyingStore1: ReadableStore[K1, V1] - - // Right side feature hydration - def underlyingStore2: ReadableStore[K2, V2] - - def score: (V1, V2) => Future[Option[Double]] - - override def get(k: K): Future[Option[Score]] = { - for { - vs <- - Future.join(underlyingStore1.get(compositeKey1(k)), underlyingStore2.get(compositeKey2(k))) - v <- vs match { - case (Some(v1), Some(v2)) => - score(v1, v2) - case _ => - Future.None - } - } yield { - v.map(buildScore) - } - } - - override def multiGet[KK <: K](ks: Set[KK]): Map[KK, Future[Option[Score]]] = { - - val v1Map = underlyingStore1.multiGet(ks.map { k => compositeKey1(k) }) - val v2Map = underlyingStore2.multiGet(ks.map { k => compositeKey2(k) }) - - ks.map { k => - k -> Future.join(v1Map(compositeKey1(k)), v2Map(compositeKey2(k))).flatMap { - case (Some(v1), Some(v2)) => - score(v1, v2).map(_.map(buildScore)) - case _ => - Future.value(None) - } - }.toMap - } - - private def buildScore(v: Double): Score = Score(v) -} diff --git a/src/scala/com/twitter/simclusters_v2/score/SimClustersEmbeddingPairScoreStore.docx b/src/scala/com/twitter/simclusters_v2/score/SimClustersEmbeddingPairScoreStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..19805c50757b932b86661a7324c289d96fc2f093 GIT binary patch literal 37494 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

    vRgxmaN&ck|0zBG%p`5O4S*Ee|b*nT?TweTJE1 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%0A5-vQGU`u>Ar5&l#(5e8r*%5(Ffe1Ox;d zIAZ}DcmFj_0asqY>(k!I%9hF6(ahpX-Nq4J4MVWYo14~d28D(Z1A4HFt-qM@Gd&oW z)%Vh5u42YIr%>r6dGt&wqc4l8fSiOEkjF3qpN|F%Ro84M#rZ%!WpQCiXcTx1oKZ6C zTTTHC1Mu6;tzuZk-~@wjms{&^z1jC$F0;JeC-#M7g$6@&cWB9nw4S4AFrc4de#&i)J#YtHqrD979;b#SgJuQscn!ndH@~ z?({pp6lOIJP5`}gX4Jryi)VZrX`XtTX`RBpHPYlb4Q62A>6a`^W&-2!3uGASv+d!p zQAMmM5p~>9KU^ycyg-eSYPP6Tc}=>9t{TlxyKdl(*nWgZhUD?7gI*xMu-b%#uhB`>dyMuj#<0M8B_}mcl z1pkaRMgqkrvSW$XNK^~E|23cD3#zxg zu39{45?IrF^oe^_%+W2|jVGLMKH9_0!r>@ucUPe0bOMw5lqOa~9;K>1584@`SiW#& zd^9e1V7|q6-BJX26>3*iYMK4q-qk$o0>dq&FSmGz8BVU*^LzrA(R7gsP6iWyKCv_E z7g@Y@!WqdKuRWsXuPZH6IH%Q-5V9(oXWG}B6XzVMdi#iL|L+5npRb!GyGt)!ah`t> zyTc*ABU3L=etrM?w|^&GdgLyZ{(tzTHaDPj^S@8&KkD|e&)@s!WJ{C%!TCp4i+34p zZu3*L3-{VFolTeeP}uC=f>>QI(l*1wx~ zlJDi*%lh|mmLC5t)jZ+t&A%INpM3ksj$L^B?AOoio_qt=-tSfSu9kk^-&nr>iuC$v zRcx=fGB7qDHMnJPFd#=Fdq&C%k0Zt@l103!ZJIA6Z9m+bblrR1QU22(B;UV!kiBvj z@Zzh5kt-d7tYliQUVrodMvhV26QSRxySFvGd%D9Z{j%umt^-SEuhPEq^wlZN{^!eQ zH|=w(xwYtg)-$-b3opL2o* z>sGN$wtX?r@az*V7N0I}qs}Ik4&SD9whQkURJp{LXx%qg`|NN?O`m1PZ|-@K?84ig z3N~CJf}kJ}f!& zg`7n9&QGfp{w1bH^nI|ZJvHHqiO3rXE}g@LIu9%6C1jpqe!-sfq`mjF?j_#%Cztx; zr%v3ScKF#8&S`J&D$i*@=X++o@a^^`X=%MOQ*ARpO_{TM*||N{*WNT8s$O$++oVfI z)s>~bZy%}tsJbh6F#7%H^;4dB1Q(xvb*){l?#aciujQ(19xq!yukP8+=kw|p7N5R0 zJ+3bG_UiR}e_p$7eXnwR_Vac9cK1G?yjT0%{_mU9hvUD>SXQn1UUC0r{<)gpcfbEl zueYdw_-Ot9*k6D9?f)+-H9WvO#V#ZE21}c2i*i+z_+hi)#)%&u7nL6F5_=iDx~>0w z^yEp2H#byPf1kkl^IWm=t0T@UX9}l(^R@E#4%XVe_0X;V!Kuuxs;{j0UdrTID5tml zEO_e0SF(YBSreO7#)3wy#DC+CZ-?vyycwB9m_fti91J$I%p=wYEuA(+#8>7>@ysfVA9h>&N25BK9pyj85R>`1P?#Tny4)Hm% zAy`A9ceR*xw>|?yTqr98KZ;3Pd7&m1msIAYf~PCd!vOt2Ntpfy##~zz&1lCOepxV) ThriftScoreId} -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -object SimClustersEmbeddingPairScoreStore { - - /** - * Internal Instance of a SimClusters Embedding based Pair Score store. - */ - private case class SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding], - score: (SimClustersEmbedding, SimClustersEmbedding) => Future[Option[Double]]) - extends PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] { - - override val compositeKey1: SimClustersEmbeddingPairScoreId => SimClustersEmbeddingId = - _.embeddingId1 - override val compositeKey2: SimClustersEmbeddingPairScoreId => SimClustersEmbeddingId = - _.embeddingId2 - - override def underlyingStore1: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = - simClustersEmbeddingStore - - override def underlyingStore2: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = - simClustersEmbeddingStore - - override def fromThriftScoreId: ThriftScoreId => SimClustersEmbeddingPairScoreId = - SimClustersEmbeddingPairScoreId.fromThriftScoreId - } - - def buildDotProductStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] = { - - def dotProduct: (SimClustersEmbedding, SimClustersEmbedding) => Future[Option[Double]] = { - case (embedding1, embedding2) => - Future.value(Some(embedding1.dotProduct(embedding2))) - } - - SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore, - dotProduct - ) - } - - def buildCosineSimilarityStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] = { - - def cosineSimilarity: (SimClustersEmbedding, SimClustersEmbedding) => Future[Option[Double]] = { - case (embedding1, embedding2) => - Future.value(Some(embedding1.cosineSimilarity(embedding2))) - } - - SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore, - cosineSimilarity - ) - } - - def buildLogCosineSimilarityStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] = { - - def logNormCosineSimilarity: ( - SimClustersEmbedding, - SimClustersEmbedding - ) => Future[Option[Double]] = { - case (embedding1, embedding2) => - Future.value(Some(embedding1.logNormCosineSimilarity(embedding2))) - } - - SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore, - logNormCosineSimilarity - ) - } - - def buildExpScaledCosineSimilarityStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] = { - - def expScaledCosineSimilarity: ( - SimClustersEmbedding, - SimClustersEmbedding - ) => Future[Option[Double]] = { - case (embedding1, embedding2) => - Future.value(Some(embedding1.expScaledCosineSimilarity(embedding2))) - } - - SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore, - expScaledCosineSimilarity - ) - } - - def buildJaccardSimilarityStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] = { - - def jaccardSimilarity: ( - SimClustersEmbedding, - SimClustersEmbedding - ) => Future[Option[Double]] = { - case (embedding1, embedding2) => - Future.value(Some(embedding1.jaccardSimilarity(embedding2))) - } - - SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore, - jaccardSimilarity - ) - } - - def buildEuclideanDistanceStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] = { - - def euclideanDistance: ( - SimClustersEmbedding, - SimClustersEmbedding - ) => Future[Option[Double]] = { - case (embedding1, embedding2) => - Future.value(Some(embedding1.euclideanDistance(embedding2))) - } - - SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore, - euclideanDistance - ) - } - - def buildManhattanDistanceStore( - simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): PairScoreStore[ - SimClustersEmbeddingPairScoreId, - SimClustersEmbeddingId, - SimClustersEmbeddingId, - SimClustersEmbedding, - SimClustersEmbedding - ] = { - - def manhattanDistance: ( - SimClustersEmbedding, - SimClustersEmbedding - ) => Future[Option[Double]] = { - case (embedding1, embedding2) => - Future.value(Some(embedding1.manhattanDistance(embedding2))) - } - - SimClustersEmbeddingInternalPairScoreStore( - simClustersEmbeddingStore, - manhattanDistance - ) - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/score/WeightedSumAggregatedScoreStore.docx b/src/scala/com/twitter/simclusters_v2/score/WeightedSumAggregatedScoreStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..94cb6946132296e46b684c7678c858cf9c2e5a08 GIT binary patch literal 37788 zcmagEWmsIvwm*z(a1HM6?he7-J-9dSE&+nOySux)LkR8`BoN&F-0s;a9!k5meS*2VQmjns|G7bd-f(9Jb5e3*eo7y=WsCw9& zI_WXE+uAfG$tkP}A%8i4#YkopAo3DL!YJRhr?RJu!x5{=xaHDXW;~Szd%U0I30Ip{ z425Ed%S^lXAy}*D@Aht{&=D0o)ziz=C?EkZ@h;fNXE-zC+!v1{mRgeB!=E35s%_2m z{y4({%CuKIz+-?KaxRjq9hju~2ogA3vZg`<4@x`z)e$c7Tb&9sZ(Ok`;eyy(v z(R~;mfc*W3Z7+k{ga+#|RDD_Gjf(ars#VC3Q-F0aMeW=Xc(%s79dGW*nmVmTr?ytK zs*mMykR*=hy(nVlNpB!EWdpHZB2+p{XH1oM@cqF3J#|qGnZV<6nEw6zoSf~Xn*S)$ z7j`wlI^_=GnB*~5Zq9dyV^I>H+uUHC6>c$kpH49YeyRYWL9d5P#OH(0kgM1a9|EfH zC11LV_g&Tk^NnTclBsoGlkf{sdg4Amdp*IIRD2W@=zCcz+1M8xzbDCmMwinEQT#_2 zJt$;^9)R831Oowq2mUp1G_`SJWcdAA6+a~n&W!ATE+9TiUSij*CRVtjFLoqXDA1ca zc~)%aD_OkS-K8X^r-|7|aCp9FY_^zDfV)gvY!jqmq_q&3x74S(MSa=WVXzL94BHt% z?5?^StYwoPaZ8FQWJ+<*VWv(bK)Z=Hq(j|sHY;2$B4$8iD~VVdT$X@x1Mf_w;o?I- z2Y>=d$TqWoEvahzVdM7oL9p3b($HV%IMyCTB~9Lh8H=kBQOW`BMpWu>Cb~SfEfcf- zsYB61r{a>~C`eR6McWgnQaSsjk^e-O%2U?W71q`{>j^0|E%b6G-D5P|8}02|zMY zO7lR&lLtS`PU}O=Emyz>Iquj%xZ+f6E9@R^>M-N1H6yG!*S0?yUordn;%g%W|N1m! zsCvNRf_Lir2>AgClvPM6P1&tgon`y$sgt9_){HB-Ud4x&&<}{oAM<8UODlx} z^I+C>TsHxOMRg%+6I_%jpM5ho@(@Sd_{~FMvl8!bE-jfe z5~a{fgfk(e+9ki!bx-9VHTb=Mdi%JHNBh8e34wiVj;K#P=O+60(tm~f&%WHOtzn%2 z`(gtD0)qVazI?W~|D!Fc6LxD%$equ$5PHsEEun>#u;T+4g=a-KaBAZ-Tjs|}q~jpk zn0I}B9>XxWzcAj0^EU84H;z9q37bJT%3G*mOg!d~DmrYyHPw6_Iar%IByoZ$hb+TT zA41V{Fqj#yT7aU5bxzYztRD9wX)v0+B!ISeQlOo2UPTnzZ1gJbkhk~#_F^g|{>!!Q zVeleJv1xfTRf$RAYX$ggjYWk==?p*nr@h-_t>h#GLskOe5?n>NK`TQ+Onon;raBlqz!UJ86>DXF%T#N{(j0xn3U|q<0xAiTSICDan%YpN$A{X^pARG!73%m$dcdb)qnG*l|!?$#+70+d%gL zl#q$m{Md@0T(x%z?=5g%kr^&+nGd%gUHIXT-JrO9TN_{rQchuQUdJLQ2m)Gdwo;M= zrZl$5ctbO>)VypI;!+0Jqy&o;K6Q0wFupJnT)<{LUgN$m-2Ni`=Y^sBwI{3;xF(4( z{P~4-12~#60>8B`w!p>d_m#1rt>d)Hh3>m$;P53B!5Ix#lH=4l@K~@J^;@sgFSIza_t8o>> zD(Ux&P$yzrF`|bvei6k~_MOeMaF z#8bbiLM#Oku1HDQ#BIsf&FPDhei`&0=0V2vNR~Vv=JZLmIPS-{rC8HYHn9|svXwZ^ zG?=pdOw@{0CGzREsBEhDW`s-}TDpJRdoYA72pc7Duus!u529dBNR0J5FKu^{^XvV{pod+Mjimq5xTF%eJ9~Q(Fk{apDY8Y&7`U#UsQ7Nz4grD>;7>|9? z4k4r1T%xaK!^EUgCB+e=Da&^h!KDOYOaP6NRqx0wa^4~?&`4An>xb_*VVJodC2v_G z$-ms<@agzroYJpkojGWiVxpOsojpSOvamNu&6u2tIn2e0d|y%U?b)NyFLYx4?i%yH zJwiQ=NB<{#eU--$N#@#!9Vxnx6Z#Cxl+iie+{(QS+*`q?vzrH)?19l?wsjcny)5bY zV%0!Qq49N4Pg!CGez-y8O`%~@n!S(5v(w7GT*#@I9?)MPCe-`*LwoV#?^-^~5-Vw1 z42n^=lIn5Ju~1ilJl$;FTNj=q(T8>;2nkw`lR_@_g&?3k2J!Duw1RQA#*3qq@Q4{N zPE{B(BQ}H8GQ7OmS~aVlTXzu(2m$6WHi%_2)tyqiT?zgixWCeiU>>Phz}tz@&;@NqCIYty$d#EMD`u?Ze*m5*A; z#M0V~b2Ks)svFw~IY&CfKy+z1ZE_0$BT`_NOUmmZGvUbfvG(uyCX6Cl z58+#O$-(fZ-W`cC6|#*Nq%*;p(=BPiZ=p3HT9oqSMi9~sD(-RCo9#`wsdVFl2!JRV zo{+@LaGXK+yA5Pa0a1Bm3dPXBWY*PC z9&mT!df{I;RM^L7sFkf>HhRx4DhZSM@)Csu3cZEr6RnHQUqfbbF&A|dp3Rn)J~^># z$jXRx)_j|aL#u8-8iY<^&+qf;3I=@tRF}b+etLaRg9@PQ_vXUz7Aayl|8ek{zy^ni zbN!tQy@}snx0|>V-A&iOHOjZqmva@?)lH*)u)RZNQR?)VO|wD{gUiSN1I z0y4VA)2}OGFW(eb0E^evG4yuhq$foZR$ZwzFU_>hmWi0%i4}sflYgCah=b)fB+vo?lTuPfS-@& z4Daw=ME27w<1+6lJI}_M(pn_m-gS+_#YzjfKH9*i2=uiWo){-1GhWRu5>@*6WB%d+ z?eo<5Fp~6TBXJhgosUCVqTaHs0a3= zK-4WS80wL-lN;`yAAY-iFv0VCh1Q2NYh1t+E#41!k<*PrHGojR&jcS}eK52f-!oe@ z1`%`X5ls*#W;QVT};xBCk(Z3APUTIAzUcbu*hd=qV5D>;(-bxF--dLM=XO&}}`}OS` zmPO2|fgd@s5TTl~n!0p(d_8Y}Hl`x=zD8Dps_E-%j$fzExvv3XbjIu12IoKzLU)_a zx%zX-)Y)|h!1oo~oA>eH%w78|J9+KZ?)5A~aA^ea_89a2_`Gx;T_V_WvZwd(xN+H$ zve5B-IQR3mBQ$jH*yFXH@6GnTeKUm7ca=~-x#VJI;4n00e`jLtq^06@;^eB)W8H?c zM3AtuueVF#3wKy#{rin&gSOZ6!rFwV+gHJNdriOq%6-S)^}((C$J2^Y3xoU6lBEIP zCINy0bKjNh5icz}*QL*2o(X2XVG77Pe!5iL83_$~FkoDJ28wdq^4mN` znix5K+VJ7}_9`ec#eb@?34Exr_2QB6Bk&a<^P}(^dWXO3n7ceXahuq)YIww!Mu2u- z2{!J^IgQSEzDT;ga!<$SoVbbbb)@%v<@O}KPN>+UcJb);SX~zs6N&K)VSMXe@9t=+ zoJbmC_OtC+_vzNvIq!bG6@4;OP9Yd@*xF!3+VV{mC-j!gJ|%u1taZ_Spph#|b zan=s?MM)>eaqfWay4b|&ND=h)h*0hD<~>Ctt_hF5sYQY;3Oz&RnF(z`3azOYe62O` z(Gv9G3SsQ*h%pVp@_T(d95C~PdA-?qbxzlPsr6my+~VV}ayvf@P2oJt=2SR&_t8K1 z<*&}MTY5(u>`snsUF|uQKU|9e>^}T>uhZ_4$j0q%*OB0Oq<-q<@VsXxr+j-@J87lScSlfwWVK#H>u%uSRH8DKIGJ6GrVF zHs|Z&+I=%}YB@v+r?2`L9yq7!o4-w(lta}jwoeI1pa>l5qZL%D1pxm$pnDy(`uMK* zFe$kVEnp|V=3)wlLsQ&NcDnW2$wwzhm|QdCHoLAJtIX0L+A@-`T!pw`cRTR2cFU(4 z-B`=Y=p|+8aNohH60@-MDF)@D?Rn|*wJNpMV4C?u(0iv|_2SI)>D-h3y~FE>)ZMk< z>A66rl0=i-@>eEzt)zEa|xlufr=4)E@bKMeeLMIB*l$bf7dki4tUNfjRa`KFlJeH#Wj#d^MQ zs&XQ0MKIkyIxVpb{gO0HynK64rQa4Fhr(lE*yaO4nuhhh%I#|Z_&bWK{yBC)H^)Wk66 zo9Mj;FxSQY=)oQ;LU5~{)I{*Mo0VAwk}%4ow5Wmh@h$#DnLqS+W8#ntvpXw7w#fmY zT3ll~Ldf!0n8?8iosgsSB3GEPfw7&Cg}J{cEr64l|C)r@Ap?L4{}o@|ghS2%!RP@$ z+Ap;U_Al&Hws>GF5ipMWk5p|SS_lyLAE|#*L6lLRTM@he7s0s_DR2bt4;9IskS2Nm zL*jp+Vm+^_F#}V8QGXZaiVM`Ej12UO-uQ!_2%i4GB+?VXPd}6y3zErdBn6Ah`I^XU3|_TLH)G+vWC>-t|jOFhW99b7ta)F(VRX?`sVSe`)bc% zbn<;};`b{Gt{!JM6^m)aG0d=&@ zW$B5G?U(p+PDpCe#dA3+9zvFeIS*^$B$?Aizf3Vy4YK0-6_a|8T@!=FlcgMyM%c927 z7PJ`VTZV4Q;O7$PKoyKks-7}wSIqVHbwx=tCtxWC+D4qJJ89cKXgH$ijvcheNBxv; z&Z{!E^b_n6~)|Tv5vs#7@GJhgo_Xpj>EvbW{hmUL8Dq@86Q%7f+w&e!d*rGkxxSYZc78V| zL0ZZ1Xcd4k*y?CW8M!5XRE~RQH(U=cC_Qs>LKK&qpqR+HOF@*3#BJ|XJZlL-QR zt6q41LF?)9R`S1O*M3nGdu$|nL;yTv)MC=!#zQqrBiImsTs}?@z^zD@NuOh2FNrdd z?{GT^7Ws93oZZPkt-)OD!l(SPmH-jNY3AhRXKWwjrA|Td%$Raf4+);PTXtbSK+Cu( zCy63|eBvR5dzv6@(lM@5FW7V|dClZt0V=_K-HHp5GBA)KpSPtop;wK(1yy@c4^acF zO%8F1lbJ^`hHm}E(TS~?wSpp9RqVn?bEeTKeP|{8c(sKcuz3QH{qvYb({ea4cRyAk z^Sy2bv&UUQf1Xsh)cZuuK6$6qpB)cs5m|SfDjl9h{l{a3mBi>1{+8U0EF6wb8vZ*< zQMb$P1TOnhX$=hqdX*`!f9~eseoU!53jGkFs={kM691Oq>&F(+X+gkEf18ryLP4?K z9Sh$0)%c3dkzD6heDAk$I$f2RUz2F|N%=Ud8ciBUVI|0=X%Q#$b}_15%2Brv`!e5a z<$T14$I6F!P6Ssd>1J`0SubQD*gZrY%2rOx%CR!)2=ctuw4wt1vQF$+2V<3-ut}Ei z>Sy%w<>&}^mhfr3A+&^Fs1v!Jzz$?E08$DWcOIq#*N*qxJjKTXS~@YjQ4%wnlT}ji zcQ`p4&Fh9dR3RUt_`H}C250oM#E!l0b_~CN8<^Q@USnT7KaXEZR~txz`||$q_OytH zRVjm%$;8#O?9NuJ_L;o^PF|I)+=7Q|xxDs7eMsT*KGQ~ytmbEKs1mE^w%EwykY~X_ zdi&ixnqtUWBn{VWTxtH|5wiMFtDPEM|0PF9i_t9e;?V7anM)t|nz*6bgtw=Mm3*bH zz8#VlBUV4g4m}RdJ-pt0lA+3Gb4G* zK1pO>H5~}K94-8l=2CRwBXmc1?u&)8_0dN%R2&H@8D-ZtVy|gBi4|h{>dGg>rKXZz z;SH7E&1Gvj?Aw(x{QIM*d+zM_aztBxY_mSIBD;K^G&8*Ve%`{s9wiquOcub>Iz;?= zU1j>GFQaN5V}|i`*QM##!jUxR#=86%o}#prx@Ghr>1}gWerzK-b^yhN1ccc+=E>JJ zE#80d#w`pyYRcGqnJ{Y`?w6wAqg{9>&T`SN^Wl9PTcf|v$Ee@vatD{yX zWssfwS6dM>16Q4J-=`+Ect-6$r4SL{HZoFk5T+G7gbQ&-WGLs;&Za?#XNlDej$kmU z#oKxJc|0lY-_u~zBmCeoo&-MW-0r;SIj?^#0JB9@wzzJdV*8l^`cz3ZZR+>*-2wb& zXNsY5@TqHc#4pI_B`?=EVJ#6IoLaz?in}hj4xQX3AC)b0UHT;wO+IuYouRLWlM#z` zO@pv{udsmCjHc&T&vZ&h2~tK+_0vcFJyzdOTzv2N*eC)!T-HM^t-H8eOZ}ag|a(%~snpL^wb0?uW`J2xOZ#PQ455sX{tTioiH9$ALGf z$@9snK|8bR&?mUMpm@2SGs8veI=Z*ICF)MiA}_E$T#dljHI*tme0{snI9~t{G25Ds zca*0V>%jXqEN~&_R0(y&Y(}At_OSXPzFmCWKX|z@V-2zs)YcU%R=hNdPG)op+hTV` zfBTu+B0h)pIdVf0qcCh!Q)e6dD5?uh-sy(J#b(LXeG9_{rVG}a8cJ$AX#mx8&LJA> z0;-W)UkEdgvz{)G)3`UBF!VEN*!q`Yf(>i2!(49p^9W=*{7?`FgBh z5GHQ0U2=!lj~3%ziuPbNc*)-~qMbVZIdi8j!RleU;!I(?(!k|)x9%lm?TyT<#XNztfd#UC~eD*u)2b^C;i~@-=qLvO4I6uhNQe0{|wvplWPRt9efp! zktpIDt`-oRd3zAPGhFa;z7J}%Cm)RcLjZ*8HJSGPlPBH0jM9LdPT{I1e{ zb*sC*1%7Sy%Z}xer#Vw+wmNdi0g_VWcFg?COJ3LZrWW+zoFr54u`_2Q^FnB)cEszo z<~YEGm%nCHUvfu`BdEa4mEZAy>#&3yJuJhJ!K$;JE?-dx^O0ylzYqacph`JF=GQIP zZNm+;-mJ$G%j`_hyqU(?J z(!bK@|DAsHJ3WX%q^sPAzw#}MuSzei+GL_BV?yyFWPYtw-{1NIo56b zX{=32pr=Py)b~=X&E+t~8Y@54t_<9O&TMT87nIwB%5>YuS@U@rP)78NU{6cL*@2>C z@h%fyvbC~YeSL*ew&M`aV3PTY)g|%sV#Qh){&}nNpi)lr1)GXQfdYLv_dI{fc^RiL z0tU6~cKv$%=u=fi#+np$oZEg}OO#`^)6fDpR{Gc_m56GF{LM_Y270rnNKfkR5U^}T z#wlXYR@JW36q`^JUd#FCnt_AxAlJQ=T%!B>{xl&5b}E#QtV`EOF7sQ8pU8NXERV4*1u zqvWeLiB$H}r1_kRx3O-N&9GCYK2h3mOObR_y22D9>gxNgiA!RLAFi7sC_vlF+LSk( zB+}d~;N0NTGyy_vce!O-jCX-rc}d;Og2oeR&fMVPF%{U=>P$(5|Ha+4Dg@nf=IRVw zBpeMGTnz2UqIrg#uLKmII9p&!W!x*&_>X^y$%_l|cm?zm^9mkmixrR%K^i3V2~kE` z0I32a3Ei7V&a%_G$}Lf1|IGtI_Aeg!Jt-{EosvsMlv+cl<6%Z7no<}lpryp`KZR9q zn7G^9#D(;5DpGQ@b znj=Na8Z0!zNOsTCEX*w*9@B!w&sgp{xuAo3grXG#T@ApN!D!ZUTNbJudv#qv!c*AN&wPqpiYST$&*vj1 zg<2PuIuK-QQmgXCM8=N|L~G%v9QIG;#o|I&QR-#c!vY${3PM-h{NB~kB)PPT5S@6w zvf@I)Bt-an^#3*ohutfR+DNJBKzDu=w$R~ zU}Q$y|I$3Bul|D7IUE2+!t4}<9em6fD1jdDl+J2K z44edNQ2hraios7fgS=52N|uvAkT&Ch255=WRbj7rEUq~9VMk{M# z)3}$Iymn1(fzW$_H?) zqJzbOrHK$Zf~dfVeFz&Gg(tzB!@v}cTah1Q706G%8RdAvy_tk*=*&yp$*P+xH6pZ{K~Pnz9Z)rzXr7c&;3HfBF_5 z1405nm}`BQzXyg5Ifo1>nlz)OHJwI`H4jg7$esU9<$=U+l`4ddK$Qc~zg0qj)}fW@GkSYB>FRU(AH+4b z&N7H%jWw$(P1*fw-v=|_lAgj4FYVd=yMR#qqU`M6dL=`xUefR1w$srQ*U31A4_OeJ z8m2m=hMASm%V7mwmv7oic`~}ORozD`%SyXxDxD}qqZgZPh8krw&}m(C6MWMzC}sgt z>XJREpx<0>J~|`juf3ivqUb8~To$ulh{!t_)OPDOq%{PiR*tRB~9(q-yU2Ia)&#i9{#3EtwgZ7kjq4yco^i4V*TjZ ziF#Nm-t>Fk71sp$a9-hlJhS173Pk3W3S>9)k8yf(DcMD+W@F0fa8vKy%;B^T{QBWe zi}~8W=Q|Ks!kmsvyiBLHJnVyteC@#<FDb!w{E~gnd#dHytR-KtNb*NC$%WYGjtc01EhRG?WzI8oYOo*1|kOV(w-+4&Bb3 z@^n9{JE>_Pd221%QY1541Sa1gZ78{>5f>dwy?x7Psf@Zgb4{b%%~?a>R=k1VOU3fe z>bVx;R(-(`wq?T%Gr8Bx7L~3qguKmHFHN&?hghGRt`BwKbNFv+nLnsefz;44zjxo0 zZJUb-$%cPWyP8Y@sd+j6r2bBh7J>MGP+xWr!ghw|7;JjCed;oVJ+3P6L$#aBrlSjR z`$eo7*x5|haUzHoLFyi+fhbcuXs=0PvST+8&tY6LQ#&ZswbzIGdzW4GvBhit!(Zfg zE~7wl73e?6TbS9xTv?Z@bpt#!x0$ombY9+fp7;51s4(7*RPe}_I&X^Ug* zGSJ`Z3TWehXk=}N%ff$eKN^?LzkOKRP3tv*-a zC)br#b$sd8d=N`#UcNa8qOEk=B&&e$;x@3R(bR=xP@n#d{kE{3zs#Q0rbHllLp@|{ z(49Uu0QOd-cHWB^nfwHV9Bp}$PVl6uNfZad^=X5)pU8^B+IR1>O4biqmb36|OR*UU z8}sr5TuO`YDr%qfHtoMI`Wm24Nol{rk)%WATVfcbmfe3LPG1B~r}(xm?0aTiVGIFt zbJO7#EzBmj_%bY7!eg0kvW_M<7gh|rJgqv#DL+?OQXbvjxx-fVDj=6W*Z71X#)cp^ zH|}Msb=*}SR_x+m49nILm-D=OoC^-d|9VDlhAfxB-gEh_Og^3BOU}AyrsIIE$`@!7t=RIN$0oZKpP&E>1BW*{ zTZE0I(p5o0MOmvGgsNoX9{q%jOFQezdB0vp+(Y_=LZ=nQAA*h_S(tkI;!@OlPtd+C>)p_c94F8o)LO9tOGt2}JAs zjpi;~1+5)=`5TSV{tjwtm{ntWVs#L{w59wDR;%qry*ub8RLq44@vp->Bj%l7i;ZcY zk^10~sgXND;=p_1k(r4)L9ocev3@|_LNZdZ@BL)b_xJd)19{h?mwh;e*{{Dyp)b^> z#@^X`I+8d9f8i?|jP+ISA#luQIu90+^_Otf8;G)ytre&vksc9no8b=1Ac@L23V#f% zuXqAC`?(Y38oM7}mN5hRn%KOFY~nxSqJ)2o!w$X>xwIY~Gur0@~a4Q(vH+yN}!X*sZXr!df?0XD4=|16$uj_zN@tL?JsPMum#VERiT z+yMOk3Es{GF6C4&xRs#_Wp0@}6^v&Y9x9j`4K(C-{5Z2Pk(j-z)S%L-w~s$o6re*@ z8npJ~fLnnN`ZmX9!qo{R^dKu!P z5y5=wjbsiLa}E>pd7ZDaz#oTU?Nw`y=c~@|aL+(~W`1*Zlkw@`z3f1|;H6CcaJcT% zEcAtviK>)e;kGu`mv5negNQmK2Fo@*6x>TQReqJY)kJhT8|)3TOal7l7C1J10OL(*w|SKRRz z2q?&=)=~n@@3Z-ys+!>Nvks=uYN}CdSO-hqycHa&TU0-Mf5B0nP=`OJf!KvVx_pBf zd{O*`dW(FqT*P3e4TyVe+B%lcdMwLFzi7P>?`^W)a6Zu3l>Md*ppcxb0iOi0*k{e# z&B+GyC>{Wd7yJnO0p8FTtROHo=b|-!vc_>eo2dsA2d%m9g-#G=8AE3aU=hG4XVPXc;ZyMQ zNU5&Tu+bZ5YCJVZ1$vH^K0m*RjU;UxYOvcGq#9h)o2{)J9zvYk}_t;(2w8OQb3IY#IP*1-P}ap0<>A8CKxv=$_GYiXBYNWPaAMA2kgjAxe3lP4Mvax^(LB;); zoNF?iET>Fjd><^|WY5)40sVzz|3Y$J`zyrYU~CJXs8Mz(4vJ}DfHqT~Y7$f~<1?%_2_tPak?PY2Na7>~%sH|t|) zE7-X#Io+Fp@x&$E!xE94vJinAywVyh#WJLYWz}D-E>B7>q*L;&q+3>5Q*Jfup~rhx zkUdwTt2VcytEJnYr~~1A@fjbQ9MRJm+_zqGO9Bb|3$uCcsc^wnFXon><Kx|5Tu|_*H$8R4d*m)R0ZDmh+ENsF&F5%u58=<_@-ce0PrKq+jS##2)}fD zNqFnn6X<7T0nWEtvu~y-kPs+M4p%!b~XG% zx-N6m`t@0GX=i>QEJE>WZhssUi2unlD_@WzV7F)$6R3fIP z2ZybIRH~DIf766CGf~10lW#%=;Q!paNLDS}#5SV4iD!8nJ`S#iVdHBLQVF{M<#={h zP7SP7u}2M7czx{tL{#9a+q=aV);4e(qK|oclpI-}s563S-SJniDI*IJ_9oPamJKB) zQ@}L|(WZz$n_iaqd+{~&^h{kpr?4RkbT(WHK_gRUt}@8xblJR}#QfNcD>d(L+2#Ul&E z2yC<)N;GdbZ{xDuovpe&C6|7K@b7p1;?WMoT$>pG4d9^g8{jzn4*>gnx4=D!kq(%V z(_Vt;$s}_-p~LxoIRd5GI-ym zK%c|TX60WBbb@9F@twf@x832bM?%red9XNP`W*I7X9>AB6Ir}KM;wyMKt>{};^FP_ z)+y5dq(5Z)i@wCzoNpTvX#QZQ70?j@+Ho+%_TTB$;3InvuQ!-TcohC%I6a-dZXV$1 z5eBhR@S1$klJSX25@hsw_C;ssZC&wWDn%SJ$wh9Pxfta%pQ^TnWr{s7Qj4Y(m2mu= z((`DdUKKAQ_!qI}cPiG5DjTV1%=qq@rmZ8|na8U#F>;VTRngL|3Rrf9L`Kq3_% zFY=%~OXNzvx0_{Me2erv0oOfF=-W4vsG;W^2FFfuunYRxY@7E+hEOC-rqF4G_6{Q- z#BlKviV8+vcg6LD(WxY)XW0^M54qF^3ECN3Si>%JE_eT!Q7z&?ZB+YkgQ^7C*7)Bof5@v zXt-<4qXixnH$@o{!su9Y>QuktPT<~sQH4sIU~W1zT+F8qbqS63QRctImn(J1)hTAizrNafRDRezNY?zwLOXF=JuWMR zn3%NxG-n3Yq*aDxs|iAjhMlCDHeG3he#PS2MZcz4>r^RA{oo~G&8oAgu;hn-VeiC%T6gv z?D){iw<&!;{zb(Eq{5E;O~n*3WVBs3!)Xk($&%{9MCfT_G}^BAq%W17guyF%t@*K2 zn5~Y*L_PWBDLKtwmx^}6#dZ1vk5Q3+<7Z;8+VW52>cz~o*Im5`%L$6j80LqXX+pnH zX-}wV8-~wpCaXtTaK8cDBU!_}e^4Aev7df#xBxITG6gmgfRudVA>gILVl86hg0wh_ z`)E@?(XM7>dR1AuOq4k?zU|W=o&g6#jP^H1Pc1EQC<^uB1om&5T1@wu+#Re?K*oe5$m^j$OG>guK&0t<+thP=%oboJ|b@n&e9rzaP^h zU~Kzr!qD7+)39xIQ~(r-BeDHR>dqTnOJh6oKB!XJ$WfFEDGFniZa;N%qE4&Xia`2d ze&FW-H{P_$Qp_tXQO2R^#ic<}J%U!X=$4Y-%I#myVZaNgaBC6`Sw}F<70E*)6^0Ci zOBaG9Qm?jhsR}$);6~6*Yx#fJ%hI;-hdg2{iQz-hepuDzV;U7NGB?4IS8{7(* zymYan&~e-~J4wN<1@ZM}g4QwOM8+gW*_8bO!DNL(l6mrlxy@>&{J=bvk|*Ln9T*}} zPA9%LVLP#Yos|SuVo0Y%@j1N9lYpTz3|;z8xHt~Xn~;ncQUuP01hOehM*^v`qqh8}@)-0UDAPBl;< zIR8AiuVLwIA#P@7YV7>y5q=-NlmdzR)8|KwrsE-n>|_w)u?e4PRIp+FiM`9Ty9a@a zig~^C>iA=6nik+GexV$H)X^Bp(cn|xRBEA*v2CnQBZy%SZ+>s?9^KDAZ5ve_C-++) z-Z>r)?Am;n`KlLlw*0Qo4fX((TkEHH5x0B09u4~4?*}vcXBqF0=kHH%CvF|DIWrR* zdRNc4XB{;)NayD{cfh0ln_X-CeDnsG9X(x@1kD*62Xk)#q>L1|422wZqzN|z&b1M@ zX+tiqm!755gU@YiJ;ISNB#vmV0;695oXzj#qPL z&-Kfces+SCJoPe68MRlvH*VZ>jOIj@`u~nWZrMp>IE6(d3%gc1x+?3FB-+jRJZVLsX2x4UcN+nHQi_Q)?sg%v7MWO)m?+U)HoZPhtX|<=zc+j~FypOmS$fZ*3`*lmrnb zGgc6)$HYwBK0og~_TSDOJ3PK;C!hG8C&w)9z2g!dyq67yPOW+RdFRSN^PdwG2ofaM z{LIhPt=BIccyW5FIJ}|kh^!OE1yr2S<0GNV5+c66H*D;*6^zUB(_{Ut_Tj8-;vjE4 zV8X=$jF4N6kXo6G%||QDPp6h^-j_(}E{`Mn<#9QjZiLZzrM|tep8F*Whb6Ci{h@>&bWh~q zeWpK37VHcFc|Y=6>Fg1z4Zt>V;NLX`syFqg`G@-Ayi@w4RRAL@bqR=YGXs%{QTBY{ zHAZCk-r1BNX>oVlp)hb*wlk9qPyw%%80F1`wIuYYV_jtNzfTa*?&6N_EF_!38gN_Pa8l#jh_4*>-x!V zI25&3Vp|qglXM-7s}jWybm~D1Y%#3a-&1B#2P9OupWc4}X9u(QbCf;&_QiNvGYF!J zDsX~&6*xh33Y>@qPSi@YLfZcu0&fwf1>`jyw}*W9chJAGe+Riw*@EH~m;Od+{0;vH z%HIS2j`F{&z-DiOv`@`n1>=&PwFAY2vTOlC3tIy2P7$)x`+!!`II*!~+`RfGYF?&_S%v4P6 z6#YNK-T}I@ZR-|}Rk3Z`uApM=*tU&|DzdFO`gIZs>;0GeGt8Bf*V)@kEZS3Z#?b2UxSSWt5+svY+`e@dMEYUM#nGt;nwQ2@dbNrXW;sEBZF|pcOxUl_&V0( z`j%+nZTFSFMlhlj8iMFM-zCP6A6TJs`<~oe*o!x!LFd6M>v;6R(RU5jX?4 zivCLrh(Bqmf3bgx1gI_L>p`+*$RE&Ngov;S=&S{>%2L;7A6 zatJ0zh0MJGr9ZKU%-u#HU^zHMcu!Q^0(%e8m0R{ubh*d+lFmWb<$HkJ{*|D> zNnYmb+W~L3hrWD&&p{&pd;J)KtJAvo^XqG@m_X){&%M^$;=x42Ym=ZJC%$Y2<7?ac z4=yHr20JACrzQ6E7}eVz`BC@Xb|0_jw#^))_+rOF5xbOxdVWf~d_wW`>cf+1o)fk8 z>YUm88LVc=SIST4hE4K33f+@Ltvm{B7j=F6cQ-9E4z6J+SQ5-wcP4H#NGD+zx`tfz zmn~Dp6;56RPWIIt+14|5Cay5b$ZUYmX82B1+@D8ef1?Ns2em!IIF6(2gOM!5D7s9> z)GD(;Ke|f?3c6Xet>EC9?c6JGjHJ7{i)A87Ri-8`fo3j1wdC~3Y28~3eKrHouiUi$r3c9ai?>bHjy!8B0V#IH#)oUy)ys0(bJ zG@reu)Ms}@)_Gj)x&^QY?!TM%FqtG8mHslX_#%7y+oA_+*D!;&>keYvRy>^GF z;tv?dJ71;3^pMDY^uzy=&jp?viRb#_Q$Ui>v4iBAEr(QxyC*9+AgzbpE6_AXcTh!j z=+4kp4H+R!P}6xqglyVl$nDI4Ro$K>1H;pqbl|xVL z2-UtD-_~sc|5#k@gpM+NJbZoaLoNri#SvwN?0!e_5`y+^P_p2-*F zp^Q~lf#Y{((#9}iUh&6M?D#_CB_tR2i~}Ku&9@iFpW~xjKStZ|5`TU{MmzA7jT&cR zfuhWiAtQkalln|ddFYq+0FE4DYKkm6(nN@(>|`SQ+aKO55xxLsY*RkH;zV?6Kj%syy3INu*h(1MC}gPWou?b?XCQYi8^cuTW+*c zSvWNXLG2n|Djdkvds`O8B}y_AMf(HdFyy`punv&Mr;a{HIcI90uU6`;{qnH1`0I>@ z&oqvWCiYEsOC&f(#4X`Kf1)ydFJT-(^1NPp)ZZyF2rnD`BAZ1d@ps#$hh}#iW@Xo0 zb?G3c$;-HblV@i`%z60)gjkdM&pSCyya8L8BQK>&|8Lcq%E6ZxsxIHI7apG(*KKmq z&h@wR@B1xwlU*#{6VF=*d?ev+GPZjd%tY6=zPHmpE2#J|)|zK6bO10sBw0;!VI)Ru z?M)^+G&qtc1y4>qm8X2BFpFrfB*j^o6n(q0=`&i-7)#fEjy$=}5^it4m!8EpS?Efo zmXsoiT}^ngXHwQz?1+O2TfMwGhlU(3(m-Wi9XM&bW1YtV>PMz=Og6K;_cO_a1t_&u ztbNB-b?pxOCMLVkblw)49RQCe5 z`{|c!2BzQZ$jDp3^WIzxb&nl>05zW)7_E4^l7 z0_^bZccf9$q9xB>Ge<;(UK^%rZ!O!ezafBMCPW;QO&DP3i8Oq^T=#Y^VYZIAFA;*Z zm)h&xXXoSBM$AGAK7K;tGFXON&8+^~?b*Xqi!cY-m9#BnNX5{5*qR`N*hlMjb-T;t zahW}*2HAH4c?1309NIewmc~E#8I*oVVW(|A78V@)y=C+Ihm?X2bW@6-gAQvBBmK>u zNBbIPyZ7Bm>GHksuGEKa903vH@w%qxB{fN>qv2?B--aQw&zjB00P!gi1jf$M#=2C0 z%}>MYm{hgogX<7Bvh>>S`)hdfJWbCJ3>cHaVt*MCI8ECkrAtKm!ej?)zy1~$nAMWi zDqfdC?g+T5j%P2PS4C-v*2fEKVYGZ&8GSk=8Oi@3H9q6ui!G_t)T#yZf|5-x1 zXTY_YSug0i$>YW4;B~nz8%T^TH~AvA)xBp!bd9iy=QL(jm}2zR0H-;~3mm>BTDXnt z?ReP-J(!HL*3DUBZ(D;G$Ss;`ciV(5)@`91XL#F%-}ndAY98QYGjqJ}rx`%Ax2%&Z z>uRvu-%A8h({|}EsVNTje@XpWvf9NPH7LbycxT1*75zH8cu;6}I|^bm(}r^q(7|=> zurCMxWar?j@cU%jz28RQ=l?%D0DI(p?$=Exjy5h#ByfMPgHLT->u`$MF7~9Wxk%Cl zT&r>gzSna6IWKzSjGFYMbd8^!TabQ2T_fOYMeELWnWe%ZCA_UFd7^EY<&x98ZGvZG4xpg*&4ae;3TpV8cnMn*m&8S-VoU zFZ*$Yy1_ox%lh5`xZXuaxmh`NHjb1R6k)ZW1bilc3Ta&_YE|pg7QmtDYNqVscrIGy zRnp?hV$bxP4{kLpZVllvIK{Wv&<1DLf(of8`p}+1X#5jT7B( zP)72Y*sJC^tH!uVnXQJiuZFdk69{dMf!{(n0V&mU*{jw(t2RW$=7s+Lv;q>9;-7zB zty&^6>uHVNKEGFO%4E&&-2Ur{ib@KXl<2J5X#aDOh^+{a$A;w$M1{}+6(^A5Q zu|aL?ht6jH?Yne)AjQ4vadVB;c){*H_^YKz#x4%JZjLEXkrSbfZCt;3R%Vs%=83~c zP5Wq4=g(cum!{Dt$ym8QAtu$S*`AUSNcPoI_SJr^-lY0Kitg5Tum`S1f%e>c{Er2n z?5Cye5uE$xc;;GKp$wYf;c4uzerzloC#Sk`*Is9tq9yk6i15CrEZ!2~GO3)*Exy|0 zW`xRE=E$^1b6vbK+Is!0(|XH5-2VMLb=a44gUAdPd0`|KRyXTPE%I{w)P?@@N0Q#y z>(QWHE)RYcq53e1<)-1elFw=WI&6VvB!&b{{!^lgc0R|0?S8=o&s!+_UY^$156UCECYKWkb7F^ zKFm75RywZ=|_MnFItxgpGL!eQ^%qfVyLCVzqjj@Cv{T0<-kR8TW`; z&97^^4@AgLaLhFnhE^uROaua*LJWm;OfMv%AS4Oh^!cm<9)^*SIwC{+7cyy`E?Qk_ zg|1~-Usi*g7UYOq1tY2G+&;Savfh+I5DYRY2tl1A!8C*^0&*1ABw! zF&bGoQaO!D)L<5U1m4aNicHktmMjo)tuw`iRusg*0xBfW^ISra8>qIT)b85i>lX;2 zJj{$m>d<Co2tDS^Ss5#}SU8^mQCb%Nm15Lz*e0e#aoIeNb}fhjDAC5GTO6S< z5E3vxcF=2_La*Tp-Np%P6qxk6b{k6!?B`X^AQ)cOU><7}4YpvGK<%`C7!-}yu{`jn z8j5T<6cFqTf0D8s-g){NDwE!f3EOZ1}QQZahtmX?*HT?EdpUg>B6Y31u6dCj6f0)BWu`$ z?EhIAo2@MvCkokrI2NAQ;D^>iIWnkUJ`T3gxh1~19(UWH0rUAk4;X-e^w;Q}XBcAQ?5`qM!`HzdO&du= ziI=^riM^+dy}L_tA~aYArtE(AM&F;8=!bqf86E~Ivue_4)a7f`63tjEY4{>uvI;|c zYWp+s+o;ZQ!)O#nzw8>V)|tqc=;G}0>f@nYy{7}00&7jepj!~ixLwqrcPkK+(-ahx9D0;r%2V>G!bKfM9^mv{%>gbLi%|E-jzm2%R`Saz{JG|V#eEu!-67l~oS)laBp zc63}zplWjmFa8#`y3@1z19%0~YTh(R>^)|#0+}unJ`HufSIHpO?qJvY;>w!|htprF z+9@by_9XD6Gw6@!4TaR2$WL6PHpA2s>G_iB^}Z%qc*k2Brd#^tvxM|u(BhuRSPov; z5Bw)e$12gt9(hI*z59CM&CB$KnETr(>z6NjAI0a$T|S9j@3$rbFrS~GI4U;tia5Vf zI4co7mSZP97s(IjY<_)9z}$NT;tgG-=AuS3u`_X& z8zM#^>k+TYaq95ks)hAxVRwKI(@u1y)Bg7PJP_pJN(4+ zJlKFhBd>1tRcXd;S9lhCvG?zT6>l29q`=N2 z^(-<;8LTYKO$;T9oZp(c)skhKzU6?RQ|AfE5ujB#oGGZa1?i-8!#m*|vW}U)>Ff<- z8^lV(eqnCJDnXtiPFrt(bp=t%j&pd3VHag{9-;^{djtVb53ztk$EL_|?9md}B*rYz zd}0kVL!KticytcNGWPpiF$6n5rI+@FJ=u6O@=T(h3^Q=F+TSRm5^kBLW+l* z^`u$2(R>B+`4bg>NQn=5J3 z)AfXvDA|5%Y4M$F5H|4KU{z@4_T|!9XM=Z7YiZ+r=XvonW~FIH)UAR6*Cj+Yk}C<`EKt2a_VwBChm!soiZQ zAfoZQTwV73c;Akm{wmu1ISwrMh!)cKusO+fSJ>ebR))C4Cs%IyZw|^~%AWoEHbmrD zQYe_}4xyHsr#tph4oNcBdhZ=q%uREvS0Yu|)un%1`abG)!U`>I&Nf!6k~@ zUofgS8}^YE^k$xfJ%l~*Kyj&SNf-C7%_qfCldyy=g6_l}2awm-hwdb<^1E<}q_XeS zQVl1S^&)U>^16aQ$rW}5<6^g)4pZcHWnBf{1>A9hu`B3_l?-mprbLrdGx^QIA3YXQ zHThkpa|CBsWYV8P<&bd=kQ2;$+(6PWhVlb(jVW1-fJvy=>O2SI|qvDR1mEdm` z9-u*HdNyH$QYx?ScdrU=O8?TKoOc4$@$UR@9q;3t4XmX94-&2gnpwWXk1q--N_yY^ zvH~sbj}=c!|Au%f16qOh|FB}j@GyAz5b7kfA@R=2o7`h!@^&3}c-5-M5We-Z4~ScJ z+#7wS)m+Au6_0dOldWw#L}%~J)(>?3sr5IGoq7PL6zdfjx6~OS#V;84J zI?zVZq;Ck>*cSK9P3Z%Vb=F!Uno#Wx+c`vHeJt(*@FUbxkN0qF-go1oRn<74ZtqgUa#uK1hPnB)SXs`&2rj>9H&f8?u>XgIh!+zKB!6M1oZjez4GB_?(iz zIDLCQMpDBCYV=y1aFM@cA*99|wris)Zt_x7+IevxVt&YNM-|7qHy^`t6Ei%rH8=56 zg2v$e9lYs`c^C(>wd9>#q%(m?gXUy{HTh(S#vjyrae9VYjHZSQqd%xs{u=*69mY*A zI{yo`J|w<>A%p)R8`D|~8!C(gAK6N(YOhRfS3!-=PXoL@q(~`%dzGaKF_6ApJRLfW zBMXKB!+HpHLR*-wlW`>s0cQv|j6=(BIaZNNyGoG;I-p#S_Y~P0o7SHLL#2aZg!FMgq@sx&Ym6l!Ni?0J!Nh=KP_$@Q!jiw#2dKH}R-xdr{!!EfQb|;3 z*P>CVGzO>K?J`HQ!raqaU-G10I-G$S0&0W+9i)Y7%}qPRlZ3HPydqRZQVyWH9dE^H z{$VoCA$=iSwI^!fF@u{=s;4$LQ4`5wBmxBt9*t@6XuLFyX{{p7Y*dko$UB4^B5feI zJYg5fF^vR1go_B%Oupi<#OX?Ho%sc5nuwCRYSsm|QnPA`P9Zh@5H27nC4$4~h^jg- zSr^NCC! z&Tglhd6reMhp^ylqk7_f!~Hdo8=AS?Af}6@JXQH{dVC1;s2W4np>@8C3bLNytA5}cBnXy{GMUO2D}_fc7AHdCrSuTjS3oSB z)C?0*)|-PSX#^!`Lat~S<4=hzg=T(0jQC8Ih9IhVKvu3id>&!qQ6Z@q53j=Fg(F8$ z>y95K<3z-}9GR!03y%j( zhxVCJfsW&(r|Lk;z*_K>l&L$Aa$TAxgi$A!`LWHRovtJqtem10 z4gkw;Yx09>KEO#1!EzjbB$Qn zyzkTam43UKLi)IM0#zrF8FN)bn3M*)M!U>SM%S4K0VT#G5|mM*r8{MPO+Uk*m~uh3 zB3??OT8gF`%wzXTs!$X3&ZtA=%W4y!XDIad@VYGXkh}^lx?!z<+z|U?Y2XrqsMbd?vG0F#$d(E z=%B&-2n5p+4N2}ehl%?%L~-z16Gcb3C}Gm&YM~3IbX&;psZu6%b6q;yT87{SmR8U3 zLIY=_YFcO%S?;L8iep>)aSp_LIw9K*qxh(ZabU2eKXx4lh~a-d`$3|{eD>&$3?fj6FETN2hBU0!-y%jgk{9AA<g^fPawk`GGuCPpTATvbIVWm@#sy zgQ!+&yo2cX)HnyxjMM~&Ap{s{?kp(cJ(q%r$avHkv|$!L?4fg}KTa`<*tZ!2=}YEj>;AwL~CAqW9Jgo|X z&?M^BQHxFfzdrN14_M$fh@i^~82ASn%WqjK!G>o3D=tXdbga<{1%3=ZH+s2!N&4ay zHRskM&)q4{G(V-cNi(AGCne9&JOrF+k-4BvB|1}4m--_vu(v`wjy82u9gktDLP*8J zts|=RQaO6d=E#hL`1JYi8YxdKUNsF@QVj?AMz$4*@@i+c6yy_Ic}-rrwEB=K4Y>J* z6`GA9mkJQxy#a%OyJ9c>Ga5-q6II)r^DxdzwEP58o7iXHlW~a8epG=EM5T?kd5B0V zcrjMpX7Hu!-_26L`0YK!oW_yOIrvCCyfl!KB8G7j@B4*`w2~s`)Z+x z09g$aNMq?;IzWmMdfihR!nuVWB0~1fV-NTh2znbzjkp!}MnX_o#=noWYaS-pBwKSF zINxXddk0Z4wqhZS*&M~UFRR&nhV}>Of1w1c~1bc*RkCL5k;yzI+;V7-7^Ia_R*BU4!DwZ0u7$ zO2qH~ON5i#@6Uh!dG}oLFA?m}M2i8Pvd<%5qJM$^!r4b+NUQ|j29b{N^?2p4kR}_* z0@8P0$>I4c9_KFlA1`D_srQlc(7%)55A`$SI{-cVFDYdHzXoCcc1-9szw#EEDr5LL z$^9gl_d^xpZ^y8OYq|_La~lO232yJpXrp1AF>j%#G`)`L{}5aAQ~o1~nV=9TTj{j+ zgBeZ&g)eC2pIW^Ae+9<=N6Gvz5n$0vDvx{i1}Ioig$F!^MnEfAWQvKK?lq9>-w0ju*Efde?2H|*Nq4Y^u~R4W!R-2RBRbi zeA*vpHc+n$sf1U@scE2hsM-o8n2rASf^)EDX}2GV{-$rloTTR6L7B`tn zJ{TBPNGHMXq({D~0TYE#9P_G6+k-DYr2=qX-1)%}U7IR{Z?Bj& zuql9h+94y;HN!(XwGT)PzORrdK7eFtj!FEf&TjynKcLtfYC)2tK(*m0$i&utvT&G6Q@DA;7M_zUyCRle z#+?SS+EBzCYDax%Zx$M-FrCd(_KE-VQUL4e-TZ&4(2MlTp| z>WudTZ(_J&pKe(irk}4zPL6ks%pcX>wy$dFV)5q_Mq-XZ4Sm=u2?N2Om8IYwdz`A3 zPsvHIWT+`fr$y+_($!E$08;=esOBJhH4z4XEu&nm{i*KfwCs5-&u~jb`W-|~?1cdV zUxCd6qXnqry!0{Qnr!(QEs!v~W%9JC6O>uD^}@_4;3O@+84GbV1bQ6{2U`U>`R3}vV0%qDubN5czFFgKEU`L|x_GYwH2lZ@U*M1 zQSi5S?>4ccB7`Ynp7=l=K1k?4RveK(ka6vn^IOC^u_6KI_zy|a3D{_H1tq0=S+cyc zDwyazhkQp||1doI8k8_{@J`5EVK) zj}F(L>nnI~m3u8EFJkoW>zo#Qz(5@4)ARivCPx4#Gjy~NqEodElP!p7t2lG+EVLm@ zrUcJmgD@G)z5#YaG5!kK-W43%b`5oTrDjQ%LegrGlTzCp_fe687MTR@>*gI}@;sUT z73=Ct88BTGM*^mcte!CJNJmBb6H@3SK2zJP_sw~ESuk`|n~@2hmoO)!)RWN6FK0(C zVQ?B@@RJfJEtQiK|HX-u&9ljmhnmVM&YG%F;uFYx&io+KU|2R=^l+Vx0>G@$0lglQ zafM8nhed>khNeafNNGtU_-{(0qWH+_08tkloFmbqZ?M3F2Q}535@4VDiIh`)yf++p zmT2(o=_Os}wCM zWzN>(G~h{2O=U|%C0OnD8@K(?A-qF0K`sj}JV=eyf6_{-T-kU{G`W-41^!m3B%aTC zJ@Yf$w^eVuoUfYhA^1l30&wyXR zTO{q-Z7LLWu09+-zhZy->%2oN8RlmN!!OFvRAL9DU@}55Tp6qKAS?g<(iIn$vrq5$SKC=cXcuVqv8LltnI=>4Fa z27OQiTWZd@#WmPK=3U<+vvEsZo)~(b;<8~-C#^Q*!=~6~6d{0^IIAXBLAcNiHQKo4 z9*)!D1En+G7|mFDf?}L9!QoPDfx}RD{+bY=P?H~i9SrgQF9IIBjfY93u>AibKzRhk zgMl;d$e!&5CMGXSUK(sZ7QdLeAVOS9Tq-Rt3~&v4JaAA-kP20Jg;s5YS1|s}rNJ$DfkdM@AW)Pbje{}lXny8Z&aGZF$rRWfy z;G8N0Gw-WB4ops=#}`>b02jrv=;QPb7-SfHRZFZ zeTDik;U_t)9pujd9lSV2AKd1!Vm?Y+qKX^f<#VDlMS!#7B&qB^yiZsGTu;GV(o}PG z**s8*&-_N_^H5*e+t8{_WB+_pn4b;dwLZCLVVd}_3P~f=dLIdg04iu?)nreSX*~LR zY9A>OL+mM7OxnDoE?Z2z&;T{6od}Q@U8oJP^qQ8G0~b)?CAR7z(reHXcU9 zM0Y=*KC(!X9|BXe4Vk`yiC&3!Jn)L1^=7b+JQM#vgo^mG+?Ag?$){Ts**69@W!JxZ?q z-=tXS@9umPvtK{{NB77=L2>+3BWN0%!7#1(9v?<&##u+yc)7Ir-Vf?(-;Ww`r&-*c)vOj;4omYN(c2sraU_G zZfjO6P7J4M?F(;@gM$dLF6XKLRnCP5cyO*BDL#zQ&{7b;GDL+GX1&}Td#+m{z0!%| zVQ6M|vdxyFUA5Nw^7DY~El z87PSCtHo$a{PZJ=XgNr0CAQz95u4ISTQdcD!IKR0MNN6mV$u&SaRXN4U3wHBDQ^Ds z%WFd`191fWR%?oDf(r{PxLOhj$y?=|ac{Rmhz%_glG`z`yqH18_4Z}G2^ei)R&ukw zvH9|-8&3e@aOG-CNco!a_Rq{?bt73mfq05rt0PJeYw&$cCO3Lu#5#wwl98o>0q|iL z>Cd?V99StV6>2KhhZsm^|J#84#^WB z#$6oYV3`6ny}jVVYZA_u@6cJJ6E4q9pt!j9?gphYbIrTk5E94*f=wb1tukD@&v*xv zTYnQa3-V+jxLel~cg-citJ(1Zvc&Uq?aOc6LED&ivBxh40uLNNVFR!y9dte;H{C_x zHV3&no6!|;b?*Q~a+CJ0+I$~XN#%t;%1x`aTx!Fu&JI)uxUcEU>yVPX+RGz1wP80M zBor7bX8E=rfV+MLnk9S9;E5y$x5TlAepz3KK@Y9riHv*yLc-Y*baOH1{aO`_p;%$+ zT@QOABF?3a$IBL}kI_>(Em0rNOK(+IHk^T^)M2F9$@kDOHW~9!qQ`kvGp@B72?xQaS32>^iwA_fyWcSbuyAiu1~B8x?ZWZHJ7= zlaV^U zsqN=oE}0Ph2;DLsp@!juiN?&hgiE^GDAKEdd_nvY7Cl62RL5lL_oo{!mQqmPF-0v5vVYA>$=8KkDo3TAdDA76dL7at&wG0Ow zXQE)CB9ZQIjEvdoYpBi4WN`ABmAw0mK#@upt33PM#MyAl!2~Q_0Q1GweGn=UQLzTs|PHV*6aEQ z^PB~0+l`dKE9bHnRJEE|b)&)Gzjehu>-qD#gYw^tm>sI#fR*k(e!qlq_3TEdttr>x z;%^(gD2Y(_gk{S$_HbpvOA}Lb)VdqzX7I?rcK|CJ8`oCray{zPG0n2e89qDP+gKb# zy12bB9c9x0P{iVVT1>EX=c2{xU_x8S9X3H4jN6VkbTuA85Sjy7HI0V-fI$A-%F@YQ zKxwHed{G=7wlJ1WWl=|Ok!>e6hiEa@3-{gV-I?X1xvf`!syA1_P8L4=b@q-DRVut{ z0*~2)FK)~7E=90KZ&$^@;jlmDULZwzw5o339ukacy8g$}x9}O)*VG=$i&9Uy8u5y6 zxBsJWZjvx*+X%2dY9}oS2*$rpNf!%KTT`aLjx2w5IMb4|-{8dV`KgZFak%ud;Tq8) zcDZ)7Qi6cmDiYfys%=B9NPI@#gK*{8=V!Q8HwbsxGFVqF^yzZpEyIqW1@TlLn`S+N zTG8ovSnfLo^eE{wzjv>`(#`TkC?V+YFh|+9C#@qT4+P?!62zy`t7fmj_u&=XU9cBK z@+FC@W}1EL)mq&)xLO!24;aa|+1kFABRCWtn&dWyP?BCz@WaV=6jMU~kkq-o zlAo1-O_g@ZV6TN1*^a*vcrpux4uC;8kx+eC<9ThAW|5F0i$@owFOZ#k92CrE6h@ZT zSUy{G$G%s6d3>DAw6v_qV28ZXt6jZPUFf9Rn`8sl8OTxW`|60nT&SY zl1xl4Ns({dK6Amnpv=$;Danyvq~*H6Q$>^eEV4*lCud%`VVhxri<4m{Aop?S*=Sc} zNok=I@Yd~(iqU)~v`CD~TySW{A|un#q%>b!xFnh7=13Y-#)N5708ON{l6uj!1&h80 zZG@YL(nL}736_x6n_RdJu7410K4-_8Y#CrcumF&$s7;jnvuxN(m;t z&o4*I2cxxwZ#odYuy2m2@5jHH-hEzZeqB6&wa@Wx1{q82+wpz5Y}N18@k5pxx~R>4 zyWL;Euow8a52X@oLx2jE+63_m3*g|R0K$X@%QC{ zJJypxyHih{X09d1G-1521}ZOW!D$(r&q5wM@HHpy>*miW~jfww;1t&k=|!-mq|8()MvDqU%uZ$jsn zIQNEj#994ky}oCRnX1^S!%cn@v$Ti|xQZ=HY9+ol7K|b?m%{oP?J7p1~bj%5l zYNpot6uY$)mNA#7&i!mEsP3ZvJ`iAEwiU6$h3T>%7}(OhUB*doFqmf>eMlhT^9a^X zq+X4ZP`}e+)4wopbqP88Gv4mEt8+mqc(sjIiuF@g4cY=!RHWS4Rv5QVatq@vLP-VZ z`2U@1O7?8}_@zDR;$&ApWq4})!){f2**y>D)0$19Z1B|gFPhZM zY35;1C^%(C+bVVqeth$YUczH=YMnfRLk~E%Ok%pi9^P7{)0infWPMe?DoQNv#sxwo z#Nucz&FZCXtH_@}NUan`P74~JQ%F&)d4BHLRAmQ|(uFmLkSxJJf9sM|HZJi&(F1f3 zO-gdaJ)5TSf+7$}!*b2T03`QMjQHb3!gGcKZPldtk;>VYC17GbHJzf&5iN&ygvtD} zMMOx83JjkX%P)^iP9z)F=2)z4c~)>j_k?iR)KiUPG+ok<%4y9IcgUFxsG!oxVoa#X z;R&`N^xNfAo94lCQ`C|1%fM@#9@B1%BW`0kc;$;BRABXBT^04O<%~OBYkyzdrV=qw3)Xn9)Ig`iPAu zjF<3+p)V>SQ=#O;)kwX3hf3&5C^Guk4(r`@|LQP$Y%BK;M#RnwXcd!kc7XG`5(g0d zygwGYM-ILS7KYBMLAFpfm(X-=bB8362gjlvA4fmXVZmI2PzwSxcPK|Vtqy~I8*{*J z3P7tE4v4f-Pw}E`X2+FaI<}Vo_S8Lel*?M4pjtsTiEl<*9QDJIMov-nP3by{mfuu5S zwk50>twTm~yQe@I9EWwA;Nz#WtuIn#n=obUd|63Fvfru0gCpm;`I@g?GI5Jz6P-Bo zIcU+#b>ZiJt9BEM+i+1~Qk-_?Qv2$024s5GG~$%WARY}y;~dw9Ya{cy%#Qbk=U$Rd zDrJ0evU@|DB5Xp~?Rv+Iu0VngYrioj+NMraWA4z$w0ic4{$rdq$ywxgH91w;@=i6u zx79bWe-3DKr>xu_P_PkDIQBn;|B(WM@z{M@uzNNe-h@$(J9J)z!BTD=Ixh)8}%c$7YUd%D?WKGi}dX~*RWbu_4lH=Zpx z-RH6siAlS~h?->Vh)r3g+a=>O221t>6S%9?=~b1>F~d~x%Z2m89P9e^sZ5$0yY0TN zX0E(qGefT<3UL$Q<;pvFyXG*wdV4tR1F zS@S&zC3f9;?idU6=C#a~@ibjkwqRKVn=Go^WHg%Z4$r$c;1%-M>rG(7HexusGv{@n zcIl1?{jto{%E9~3)KkjKpGvUnsHih@ZN5U5AA9eyv%gU`79de+YfGs$c)wHKu6>tG zkFw#5<_a5lNZHr8Nvb`xohqMJr^6@nnjKznBiJ=j58q{xRvu;xwt-fz%qx6l<%B!9 zTX4-%*fLgg?5Yi;3M=1@_ykwnfngntT)S~7?ntSy4@s#($gZw1e>t+ER;SqSsJxud zLZ;ehAt9AMb>VdXB{E+$OeSKAgpJUi#)y?}7Bj3YfJcUlo9BEbNe+^WLh33+p0iWl zZ)fHq-Oq~yAC`&6H$9MgoUYa!Vg@qCA_C4)3f6v=o{s0+uczrE9*nPBfDJ*&9ZCt# z&6un3ZZ(|>v{yv+z4^111-D^-dxHW*k&vDWYu`3uF_n|3%zElHpybY`qz%) zZmzHLll4a?H1xwV7#qT@Ed`fsX<98Ya}4pnK7A*-bCOg@FT|px&YW2!my^WF^6X2O z|Hc&?myKw^krY`@No$f0e@DOkg-lD1Q89{!9Hal!i{h|=|Ay6jEpP{}1;zc@VdfZ| z(r@|^R*7oE@{1t4Vc}D5-W>rmqY{caQ8A4zTVm~tcY6=v^qkv`^}BWVf)l1;D9U>C z=;55-0B#qZ50S{L-_1rB4nK`LDeF(7hhqr+@!-3qB#fwL?}RFndv{e*YkH*IS04so zt-I&;uDfq!^+cn)Z@%n6_v@o-gf6s3OmakV4Vu_F7$sZfUZ=N+8R+h$es zSC|?^*_x1O-E5x3zHd{%*D&`AdjK^-XHboDlS=$3iAQHN@7A1(8!p27UDw$44A=`{}E!(1X8 z4JDFV)1h)r$;mkCbUI0toJ8){gyb->&1FUm$>yFk>5gn&4m(7-ts}}kVp*lhW#m#V z&Q6>ksoC$bKelJ@^ZR_>z3=n9`@P@q_j!J=p$gn?{i``9@;UG?2+@(oHz3P3Xe`Kt zM3_^C1PiSk zK~J^|`_fd2GVf^lQ!51Wrt4w5t?#7>6lT`AU*D>hza=}j==7vn3EKb0+62V0ipF&f z4`@upo@PB$EW<%A!~DhcEAHJ<%0TsJS*c7_zk^;%n{Mo5>kIuFJIj5t&Kn%QY?DR& ziW1~J+NNnQ*!X^5S&}mL^udr;RPTWoW<0XeofJ0jH^K?_Un~=9ODy}m0#xpob?82& zxF!$D%^75Aqm>&8m2VOt&d^WtzLO?lR#Lq(-MdtPqfnCwn6s9bQ;JtI4j(hq=!n~| zW|SULIY^Z^&Q_sX8`5TYXya6sYo*j@>N))V&iRbcv)avi6py1tE-SM>_t5g{31j{8 zkA>CggN)pD75dl>bh}_#t6ErnW=A^zb+=%)VefgZ_RzVvpCV7&hd!8{!cIp$lFhIB z?`a&_vL?U2cy*E?i9jg4K>g$(^wsa1RH0q`f-nvA7 zWF67V=neg#aa4O#VH!V=F=}3MY_zULzdwQ>eO!o(@iZEsy|OAdD%-YI#4tCTX^r=H@*B~RK( zj>7f|t;$NLs~`%i+a1;)AsO~mcl3m}c<+NxtkRK%2Q?lil}2eB5itQ{_g|h-?SbuJ zc+iL5^yfKVZ$o(8n9~aMZ`EdL#3p`_@s>~44L+~zgsfA)IHa{ExqPZfd)5=Qh&gOnGtdl)jhhJ?H~_=lh2JF0to6MTv+UcP2}MwAX>TJTsUkI>9+!jc z&fV!$a^war6WF0P0y($&u;crS1hhdQE_;AvFeVV^eiR>s32~j@oq+{-9UH4@;8HG- zM^^Yw1D_;`CxGJH9)DqL4+bgm3J#}$OWFWXSqvNmT7KMnyw3zLWTL_NCk|&dAHV~k z5Qvf(9u2hoz&(S4miyHwk{(lT14Fjf2X~$Wv@TQ*07d9&VC>7`fh3Jp#z5yyKv$Y# zou5%$#J`Pvsbtw%NGVqPIoSXLadVW0z{N})*rF)}hY!Fklq ThriftScore, - ScoreId => ThriftScoreId, - SimClustersEmbeddingPairScoreId => ThriftSimClustersEmbeddingPairScoreId -} -import com.twitter.util.Future - -/** - * A generic store wrapper to aggregate the scores of N underlying stores in a weighted fashion. - * - */ -case class WeightedSumAggregatedScoreStore(parameters: Seq[WeightedSumAggregatedScoreParameter]) - extends AggregatedScoreStore { - - override def get(k: ThriftScoreId): Future[Option[ThriftScore]] = { - val underlyingScores = parameters.map { parameter => - scoreFacadeStore - .get(ThriftScoreId(parameter.scoreAlgorithm, parameter.idTransform(k.internalId))) - .map(_.map(s => parameter.scoreTransform(s.score) * parameter.weight)) - } - Future.collect(underlyingScores).map { scores => - if (scores.exists(_.nonEmpty)) { - val newScore = scores.foldLeft(0.0) { - case (sum, maybeScore) => - sum + maybeScore.getOrElse(0.0) - } - Some(ThriftScore(score = newScore)) - } else { - // Return None if all of the underlying score is None. - None - } - } - } -} - -object WeightedSumAggregatedScoreStore { - - /** - * The parameter of WeightedSumAggregatedScoreStore. Create 0 to N parameters for a WeightedSum - * AggregatedScore Store. Please evaluate the performance before productionization any new score. - * - * @param scoreAlgorithm the underlying score algorithm name - * @param weight contribution to weighted sum of this sub-score - * @param idTransform transform the source ScoreInternalId to underlying score InternalId. - * @param scoreTransform function to apply to sub-score before adding to weighted sum - */ - case class WeightedSumAggregatedScoreParameter( - scoreAlgorithm: ScoringAlgorithm, - weight: Double, - idTransform: ScoreInternalId => ScoreInternalId, - scoreTransform: Double => Double = identityScoreTransform) - - val SameTypeScoreInternalIdTransform: ScoreInternalId => ScoreInternalId = { id => id } - val identityScoreTransform: Double => Double = { score => score } - - // Convert Generic Internal Id to a SimClustersEmbeddingId - def genericPairScoreIdToSimClustersEmbeddingPairScoreId( - embeddingType1: EmbeddingType, - embeddingType2: EmbeddingType, - modelVersion: ModelVersion - ): ScoreInternalId => ScoreInternalId = { - case id: ScoreInternalId.GenericPairScoreId => - ScoreInternalId.SimClustersEmbeddingPairScoreId( - ThriftSimClustersEmbeddingPairScoreId( - SimClustersEmbeddingId(embeddingType1, modelVersion, id.genericPairScoreId.id1), - SimClustersEmbeddingId(embeddingType2, modelVersion, id.genericPairScoreId.id2) - )) - } - - val simClustersEmbeddingPairScoreIdToGenericPairScoreId: ScoreInternalId => ScoreInternalId = { - case ScoreInternalId.SimClustersEmbeddingPairScoreId(simClustersId) => - ScoreInternalId.GenericPairScoreId( - GenericPairScoreId(simClustersId.id1.internalId, simClustersId.id2.internalId)) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/stores/BUILD b/src/scala/com/twitter/simclusters_v2/stores/BUILD deleted file mode 100644 index 11bc8e7e6..000000000 --- a/src/scala/com/twitter/simclusters_v2/stores/BUILD +++ /dev/null @@ -1,14 +0,0 @@ -scala_library( - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/storehaus:core", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/common", - "src/scala/com/twitter/simclusters_v2/common", - "src/scala/com/twitter/storehaus_internal/manhattan", - "src/scala/com/twitter/storehaus_internal/util", - "src/scala/com/twitter/wtf/scalding/jobs/injection", - "src/thrift/com/twitter/recos/entities:entities-thrift-scala", - "storage/clients/manhattan/client/src/main/scala", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/stores/BUILD.docx b/src/scala/com/twitter/simclusters_v2/stores/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..e09e8bf74a9155b98e84cdac82bd0742e207613b GIT binary patch literal 36879 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 H%zgVGd)Kmj literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/stores/LanguageFilteredLocaleEntityEmbeddingStore.scala b/src/scala/com/twitter/simclusters_v2/stores/LanguageFilteredLocaleEntityEmbeddingStore.scala deleted file mode 100644 index e461e1ed2..000000000 --- a/src/scala/com/twitter/simclusters_v2/stores/LanguageFilteredLocaleEntityEmbeddingStore.scala +++ /dev/null @@ -1,96 +0,0 @@ -package com.twitter.simclusters_v2.stores - -import com.twitter.simclusters_v2.common.ClusterId -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.ClusterDetails -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -/** - * Transfer a Entity SimClustersEmbedding to a language filtered embedding. - * The new embedding only contains clusters whose main language is the same as the language field in - * the SimClustersEmbeddingId. - * - * This store is special designed for Topic Tweet and Topic Follow Prompt. - * Only support new Ids whose internalId is LocaleEntityId. - */ -@deprecated -case class LanguageFilteredLocaleEntityEmbeddingStore( - underlyingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding], - clusterDetailsStore: ReadableStore[(ModelVersion, ClusterId), ClusterDetails], - composeKeyMapping: SimClustersEmbeddingId => SimClustersEmbeddingId) - extends ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] { - - import LanguageFilteredLocaleEntityEmbeddingStore._ - - override def get(k: SimClustersEmbeddingId): Future[Option[SimClustersEmbedding]] = { - for { - maybeEmbedding <- underlyingStore.get(composeKeyMapping(k)) - maybeFilteredEmbedding <- maybeEmbedding match { - case Some(embedding) => - embeddingsLanguageFilter(k, embedding).map(Some(_)) - case None => - Future.None - } - } yield maybeFilteredEmbedding - } - - private def embeddingsLanguageFilter( - sourceEmbeddingId: SimClustersEmbeddingId, - simClustersEmbedding: SimClustersEmbedding - ): Future[SimClustersEmbedding] = { - val language = getLanguage(sourceEmbeddingId) - val modelVersion = sourceEmbeddingId.modelVersion - - val clusterDetailKeys = simClustersEmbedding.sortedClusterIds.map { clusterId => - (modelVersion, clusterId) - }.toSet - - Future - .collect { - clusterDetailsStore.multiGet(clusterDetailKeys) - }.map { clusterDetailsMap => - simClustersEmbedding.embedding.filter { - case (clusterId, _) => - isDominantLanguage( - language, - clusterDetailsMap.getOrElse((modelVersion, clusterId), None)) - } - }.map(SimClustersEmbedding(_)) - } - - private def isDominantLanguage( - requestLang: String, - clusterDetails: Option[ClusterDetails] - ): Boolean = - clusterDetails match { - case Some(details) => - val dominantLanguage = - details.languageToFractionDeviceLanguage.map { langMap => - langMap.maxBy { - case (_, score) => score - }._1 - } - - dominantLanguage.exists(_.equalsIgnoreCase(requestLang)) - case _ => true - } - -} - -object LanguageFilteredLocaleEntityEmbeddingStore { - - def getLanguage(simClustersEmbeddingId: SimClustersEmbeddingId): String = { - simClustersEmbeddingId match { - case SimClustersEmbeddingId(_, _, InternalId.LocaleEntityId(localeEntityId)) => - localeEntityId.language - case _ => - throw new IllegalArgumentException( - s"The Id $simClustersEmbeddingId doesn't contain Locale info") - } - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/stores/MultiTypeGraphStore.docx b/src/scala/com/twitter/simclusters_v2/stores/MultiTypeGraphStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..2a03d6cc9e9b6a79cd92c49c3bf0f6b6e61c69c2 GIT binary patch literal 38072 zcmagE1ymeM*Dj2^dvJGmcL)S`cPGH$&fo!pyIXK~3+`^g-GT&yyWhz{chKZ3>3RK;pykPL;wsS1rjhu0L$^5l0=II622kI?Kf zSnrQ1yT4BOdyqd$1W4t)E;CbWW`E8^_#Vic7GZp$A^pX;F=4=^&V7=h!P!c~seY}u z2*q;<5rFpNr+p8z$G8^9F-(0~)Qy_%CWdY3&r`tX5bD~wBgh=BcL#yIlQm5S>keI= z7t1j&XLa4sx0LRI3>tRY#rVkmi}P$=A! zHgQ($0F)_S?dnvKG|}R)pGM= znghT9q~)8rzLr$A{j~G=`XJKmDq|cVdK~A7u9mK7&W6idh$8ERc_SfvI2}_S*OrCz z{i$8qTCd`g`6yUINzKrc@&;zI17m>Ks!_0Hwsr600TU&~q?Y%TrQ2q(iofGD@o(0; z)N|dY*kwPs(OEt2^Z!mz_!mSq8_;b&3rY|=C_&}`Gi7IhqYH}}z}e!@O`e@FuGr6t zCUx&CHLsu1?ZJMosl@U^4x22WE9 zq*-V}C`nlSd7$}ML>=t6HB+4R=Nu_|zN+MqzVn`^xhrZbezUQjNELh}gxVZP*-SPA z`NeR4ih+7A&iOA>WZA8%#ra3#YUm0pUo=G%Xune+lkQ{D{R#{uj!2|PXh1J(DJBNX zLNCn+k4PCXk)JYznp>`b4|d+MgL22O)>Ya)+SFsiUu#BQbFKaUWOl{o44*C6Y z&{*{#%YwERhMn-#{Sg`o6`Vs#2*g)7G>*q(KEzOBfPL%7^^f)6z=O zpnSM>J@-w(KvCWB{QT}ZlM7XVh^u)kM=j=S^EfX}stGV_BOhhhL&z!&K0E3D=F)~O zGf5V!L@WzR_Pfjv#;(b4M-Be(AKyMK6EZyTTteX;TcH@z&3QK$aR9AT-r{9X?o_JS2C4Du*t^ z)*M7Pa59=6t6G3zf_F{VQm!8JA#X69xFm*kbWviMc3njg-E8zJZdY{loq4ekmHO>o z_b_mgtlYG`nWn<3^tA%=wZ^)_t8`k3>*L<-u}(@dGKw^W$twrcxL1V@?Mk>bt^z3m zn{nsGgf)~cqL1rsz4x%4Ww%IWm@4^(Wi0U+G4|bd|Z&P60}jHKPZxIO#r<&=(*Z~>rQd4cMW9%aVT#~MlJu(*u)0KXiOuPl{&i!3>)$-QNQqTfklNs1uYNusWY=OQiP{jZd`GAB zo0=7tsvEDZ__WJhNhVZ1L_?WE^lVB(z+gsqrgeBIv7~FDs27c$%Y~2bPPG#XYy;m1 z&_E}B7Q$2h=&rj;c0IY;AxiPCbRUdmW7$Ck|}2+e%Fq zp48f+6bQ@0)$p-XiccL_lNBja`qNcunxWaQmC&zi$lfLvqFeSTHcx zuYdnwJpj(;ETCVln>}c7`g3QTW}g67Wzc%Mw~S0KsmhY@CA@7=lhqYeolCvw3V(%_ z*W>uuH!mA*o#BsVpZRy|bO&6taz@x=XvPQSa_p^aJWf{Hd%o|KoZC=L@aBv8l;jf# z;G;0wCid8$`?me+0Jao31ws&barT^M!ygEcp!oZUIIPTn^(BNuriAL?LaB1MCzV_- zUuxs(5#If-#3;?@7UH1NtwQOy(m1)U`{N;l0#*&`|leYZ(HOX-|u@}p++ zGG~-WtzwY=&^Ia00r20hwAb+g8V7wJ?C?Ts#4N+1eqqLjMZj3*B%Ou91 z+pE1iaEb=@&EN?aL!6s+WoP~LiP%4(;*RoZ49AMkbt1t$aI;LAaPPY8*XKCVzjx{q zvfxB0`7yFr=oW0kj0n+NGxBN8`tHZWUeqsSWjM%@7F`3LJfvHpS~$V#QDPl|kfZsM zJ4xV|%Wej05uo;JE0?%o`(nw=%1PMy$z#_;E-z9%mn8FI4~#)n1X|j!tcMg_C+(jH zrDZN+9}ce6(GiU!(qL&RfHLW6a|<*gwN$W8KrB9#n3_sQjSW%*dVS0=?qcS}Sc}>w z$!T$7{$lQCgde^ozl>8+HM8=2qVtl+Rp?=&c!S2}7Gmd4jd(2$Hj#}#^ux64C7moS zJAWZ^0`Fomx`vJps*yzEM|#H=Yi8r4&`$ykaXG3Jz41a)*HNF zk25WBO26h;+geE-awK`@34q&PTcwOWqfnZ_vn)#tcGV$^CYzI}lOg?_? zh|(=22Z(eD1$B~p`4h*>i@G>>w#S|r{T_3GQeDh_CPI*9QuDj}<1xVcfe*ePLs97D zlFs9`H)XEN4(n9EIs4}=ox~0)O8lw__6p@mDNYy`{#Xv0e((z15(*b`7E*s29P-p+ z2WRh|Y>lmr*ZEV*KG0|NkOwJqnIZk`BUt5zCo*H?Ze5sUGnL+L}28Cazc1=GwT6|T7F&)g z+X`z=^xJyiXwr!DV>_Xt1YOL54b+>H(H%Fw6V2aT}(uT@+&nf2O^Zi(J>G` zjWA#Qgq9x}ffF}c|E!GXZeLZkuv@-@7562LgUZalU%sWTpiO(7k%g`JgIE~*3QBwE z9k@ShHn*M4;1peT{jP>wW~Oph8UGR%8!JDtp5}Wj!17?#)w-6Cph)Nk-+g1#vUC;) zS2_-(ZhowY-X;Z?46mrr&^ zUyT{}GFEx{NXY&c@}MmD0>pA!#YjsWiQJ(~isElOI7wiyu~b5;7zQm`SaBj}6)Pm4 zGqwzt3^ybtVngB@QoN9TFHz=~XbWn3zGJH)S$z^jeeOewBbY!#RRoPg(3J+09Im8l7wcUWMH9p+&Tuq zoL;g1GYX#5VA)aDUQX8wszS7VGS-T?S^Wew*lYbv?@b44_8gts7;vhtlU>MV zti`O&k9dfk5kYC7w(Kr})E6M0CcexexvVh&n@Wa)HTb7Br<;;VLZ|_!OUTp7S2!qF zK4yB%$T-P^nq4N}7dr=j>q6RM+B-WsnC;px2o`@g3NYLdNN7&zMk~0+smWVxWP&dy zv^jL3X3sHA*gL@r4?``{JJVPfN^J@GhBbyYmV-KmHU4+|VV!4OY<#zF?C#~2|A`~? zPiuHEu*Oew+1Fu}_bk>f)^5IJlr#J(Qs8h0H4^RJDX*fSV!u{~Lm|J(8R-kn4qYD& zyHfV?dE^9L3x5syp{Vnt6(1)?C+LEd_?9|ikrB1(+#Lu+PIQL&RBFfDM0_ z8Q#)C+l|ewT95T=u8c{ZFM`fs6-16Ef5Qq|E0-DR*#=@B_Bu>4gLZCIzNbt&n zF#rRRezr=x(7aSv;00mt;Qu}3I|LA5u!H7;Nn%RD ztax9}-w^sj6S0aNB0v28M%_*?T~p*6D!rO;C$Yb!w_(mGu^YH|&+V5>V?Q@}r?$8$ zfXC4IDTp@;0u^g6RM`SU&9X99!g%^an zHmZSo1j?p-2hld{>gd8FX|;qe^*p)|I+C*qX(nO0Ij-LA7xtyi6upSMLeGF*DM z6&o~z`p}{3mKTf-D7dJMch3)JZXe7E{a;}X5iA=Q2qlX5178&MqcM!2H1D$@`#Bzr zZN~O27tO#VJ-Q`QCD@B6692=D3x3n8*6 z992TN%SWXBS!G=7Grj<6V)wVUvvFC?9PEkBr%zSdgq$YC6i~@?Ev5_p0B{;!I`J-Sx(B@tHbMArpVGT;O#N?{qcF}Jf=jXi*97+DS{r>-fo4 zqu06}Pl*UgWp7WX(igt)sQULCn+9E<=Y_R#Z;!7c?~dAle)RkHz3YQp&kv^+Bi2Uu zVI@obz$Rhhek%KQU04(x2LY@E!54eeUw?#AAHVw&4-) z6EdvlN{Cr!?rBWs^F{LQm1hPK&-hIw(3#2mmCu{vI4^C8hO%_D$6AEq`oF#%_FMYHz20oRx@PFV)B;yJwgiQ$JkHO;QhCmDc$7}w z{S426Le;qrOYfKiT`5tmtKFxHhikEb-G`s=b-LZsIRstb^`yBU>7IJHz31Q|t0Qfj6>X4iG&RN4E&T80yst56mkZu@`L zZuwPXnd#V?zN9W4?mM|u;uMxX#iC!dJujJDtJB#Iq+2}%zjqi^FHS$7&OJHaJG~Ce z-d&5Fo(pHGNH-ZQ%wO~$Twnh>>vzfGWC(2|EYga8??3P?C(gR2)d)shnc07!^1mQi zQp#*ejkJZD3IELSwYFS}R}?)ST$0$NkiDztwY}$(f*^AJUE9Jp@Hw|M3ZNCsl5Nuw z*YY)VNt@pt_xbeg;+H)`7V*#zbYE<;JGdWWzC=c}vQb48yoti+mK7Q!>yj_(WU-%Q zRAfpqRFgO=LKye47|7(9mOjBHD1Ps*^xq<6dC(l|7{*$x>|o0*09UcQ%x!rs!%x%w z%J}xYVbdv4eLhgQ^0k(YV@q~f+kQ6@t&kh?6P#)$0u@y6p`;VpabiITW0Q`mc-*Qh z9T}X}CRUFT+;wpPR*09HD8gz79Vw#yW@UDP44f(j14fWzLQ4Q?)=vY0*m$(UoQ{gn zZ7Kk`4)3U*D4OCG4q8ZJ2lNP&_!UlEP+SLeVcwsU)}WI(|2zq`LkR#E`^WXwP54yI zP%K`EBYm=)5dXwJ@u&2ChNzXbH(GoKRY5xFnLWIqcN_R z5oK)+u9M!K0o|9gJdg+1x|sckb7kyLoD&Y)eh+*F)a(XU$D)TD0jBUb}e9q_##xIrcqDYdI08-L{@$vhA&RBYsHbj$XarIeC5a z_|$W?dmtv|J}>FV6*X_StB0EP6v`-0_(^%ACnVG`y#~%snbBfq(Cgd4MX}Q1IQyn6 zaYTpgSf=Wy@yzX)gmNBeI*G+|1zCO)_J%pH&tl1Pr;Gksk{DW)#q%rX^7lUwG4{d0@jPiB#qu1|CZqw9|z zd{2n}^{F|(+T5)_87q5Whd(0t7iCO9;<`*`v#{C8F-PXL|Jp?!`cklT8Zqbb7g)Y0 zPvs#w#$lAHEor#ze5ZhI9_A&0zI?Y+`wkC<-%By&66d*;Sv77nTc`CpGK+Kc1-TX4 z>p|xc*75Fv1PPDI#{#}DhzhODoV~93vON0Mm9dC)j@977F34!UHenCQcPUrf*XyU*3;{Yrl3?41b~ZOLs60?NvFGzA`h zIb~wak+f``lfS=Z%(qW_Jlzamy(X=lHV6kpXPqO96Pd_biB2SWZ$v8 zOb zQEih82Fz41JilOecl)XYTyp8YXh=Rbl0G5>p0R6j7;Y0_nm-}ik$qS`&Ilx^NRi8! zW9BM}Hdk!-I0zB{eSMtMAvC4MR_i9H`k|H>1;J3^MeJLM5}dMUKE<3Am(oZEv<o3kOoW&d!)G6wc7k=8)jiwocD-p-5EnI-j6GXgU$L!iR zLqU1_aY|Y5bt^dCo=S%E6k?^mCmN0^JEZ|!gfNR}`eU>ii0qm_A0ut0N1lkb6mH}Z z@b%J(-qDM?+;+zaxRy$5=&`Y?ECd4bHV5`&OFhw<21(SFUh7eXwnSb(v`9>e0B-u) zRGb$IiVg1A3CFI+R_u-xI<69WX2uxx)nb27U^*s$!(Y{E(mDz+K`Tvc+OOV2GAqU0fCE--Ia#~i7n^{Mk@2jB`9q6BZ;=nNw zr{aP~zC>6*ZSYNjkz{9yh~5`UN9=_ziO&V%Kn@!qtCV@?Wzm1_e9y;Ud@QV^7b_4g zJ*_=aC5w26pS#h#Zp=>`iWDvA!~ptc{9~qndaHSjYwi3zVJSnSKN;c6 z`@`GQA|Y<29BLLTZ}+k%XRU?_R{?^eI%T;vKkssR?TO}~(&c@YodRXeue>l74)1Nr z;m1Mmg8q!}ck`Iap=(j}ytDD8-xiP1GzVK9G#L9Xx!YSzXW149Zx<}xdLh@Oj5Wr6 zy}fJ|EA1a$}IRprvDt8f(8^%s7){tPdp`eJtE{pi%j|2zG*BK0VlJoY;fEVPup zv3D7akdE~Gi6`LPI;)m>li*ALxE8^>M-+=u*u|#F3S`MH5#|u{&j|rLD|M$5Mc#Jm z$IF*_Y$F!QPO(jtOpY=|d{q5vO3539nOdCfWXJnThM%uAK4BS@&h#E>)uB^sZ@Q$SJ5y1PQJYZC``XBXxGY1=rz&3Y`rT4Q%}W2zDTSx&s%vdB z%`WZ6?ZrGRvbxUtwxetbRKr9qlyA~JvK)$^CV9o!_X-g$?W`Ko3x!IG?y|^NTvnld zY+H9C7269%-kIZaoU+zz*^Dk)m`4vz73@DO5q$jnej(CT4-Hrt)M zE^{=qP^IpZNA*@Sf>9|jAUfT1?GsP&qLdH~G z`DDD*RMI21q1Lmx{8<6-cBPEy{wVsMFXz1+#a;-{ve&Z6;TwOtC1HJ^Kw(g~ikl@4 zJ78%YD&f4YGUMZy5smgy;{?X*(u`}dDEf0VeIaab2?iSdGA6K$wz(>Q&f#1Kfbv2j z^6VVj#OoSb9vf!^UK9+9n^tOqrGfiJVYyoEm26^nl((>5O6lV@s-&H= z@PGQ@1bMSF$=o>b)VVtBAME#%p9f4_OTvPr6Skn`s|%^aqH_C&!I`!G=_LwNF>E}8 zxwnRg1(#z@i==w5uzeD zJ!+}6>F2b+>76}ENRy!AG6@wTkFuS(%W9tHXzUpypC5Pi!F(eQ;+!{2y9?{CLOo25 z#6GaXM>ML*_sgxpJhN>#B)+PB=3pd?D#l33J3|Nv(_du!@xMU1}^KWVtbO4Y~u|-W@kisx+EW zZe$YAdUwTe`jFnm*6ZyWC@x)W2;<%ZkMZpqzq3)>B@6W*5&Ms_>7 zAH#djDF*ifrjgH36epjjo-v=ttS5pbv4ZWnR~!@DjZ%vT95fCJ3`bDrp#oYTf(gyiUa~Ae_KM zlsq0QVLe9u&EOzR&;8nvP1meFP>uj@>P?K|0COF2z(D}!crNq`wEiGp!_pD58VF_* zTLMrWaWvVoF&Loc)4pGXlGkD^=tiVi?6w2n;jAqV;GepL*bLwvMjRo(kxrqyu|(p9 z7u>qMBA~x^vCRFGqQY5%!|h=ilJz|jDP!Gz_@xIwH`k9Esshiq_Asie+hO=ooG35O zlvLsVR~bP4>Mmd5-&=k1qj^;6u5?+g&fE%sZnY4Sntl6mi zPzKo@sd}9`Zb-4^uQ_y=e34_wYH)MqcS1AmHV7k!W!Q4Kb@o%`E1D2~(k)mQ;^0cO zsRw96`sId=a?KL;*$Bt`w;8ephMol4&@0UpRZV5k~%L|u5}Zdw=EAY<*{0@t4Ik2fuVMp;qSPuuReUnNiC72Fd2M__bs~r9>2)fJ4eJ+}EGFH%~4%(g!qJ z!)nJ@zSoViSY_d+lTkHA7>7!u$02OWx$n1LBR&?y zsqMGUtJT|Q%Fb)y1|Qw?JAB78-1K2Mvm($w`q&@Ezl@0sheKVdZNgk8#p|sg}7RsE{P1dxVu(| zVqDHzokoa4poc(+W%y7u&z$>}nEE463tXw3XN88)@oz~*DN%l(z&Q{ij@Cm zGx_>I*!bN3KiOzUJOgpMA zk3ku#gAgb$B^p9bN@T$FFLMY)O$t&yF}Ok#(GCvi%BdHc72a^6G}z#4bpOw6(vCpo zoO=eJjQk3U%53|;6p!_5fJk*NH-LpCCsk>O2qzXsxZ5|iquP=A!s47O`Q3qPOYA1I z#r@9u!UZ7>c6;@EBa(8Nfi6Pf6*Ci5Gf-I-N#o@wJ)uokBJHbb9_ia?#hX*x)74|G zKcdOJUne3JEipm#M?)uyHk2W);0KzpnyGs##KH`^C$2`g*mXUld(G-jvXtID2@MUg z5J*q9a9}!kR@WjD6@b=;>vEzmsTM`)OJah#mpB(+8>1>|O3;Yv(DjOOuTUk%=iLCA zKzSlGzJO6ka+m?lpU~(=zYvV_N9<_WPlCYO%mN!=rSH?*;tB}1j|PnKMV<|KPzqKe z?se$;`ja!WovsBKG$&M{quT6Hbn*9mv>24=K40UdIm1DXHONKuiYt5Up_FZ;*$iqIe5yRtxv62YU3Q2~^}HNj#C`dut&~5r3s2p1q_V8Ei@wr@S|Vn#*>12=P78~{O+OKs zaX~!`kkypw#sHsjyZPXX@@?()Y!O{wmH)Ds<3e1~$*AV5+2l6V=_+;VH{@ETTbShm zZqPoDwcom*5_Ie=3^7f2Gqs0kx@@vWXZDiuteDEFrew1k)<}bSOMu_C4zd=E?8;jh zXh5BbyjDx92?OT##^ctzS)ib)zk_)HcTn==KGW^N)c{|F3&!CesDIG7z;3A+Sq?6)b{V56N+-&Jfg1NjjDVGs0_*U#U zo>Wshk+y#+;T|EKD$6}f=Cj&oBS?8-Blx$%e4+y)H_ARTqBX*!NN&l;}n2EnifJ)v+^uk*M9uj)~tQ`ZGcw zJ#KAuGrqTrbmWGr;K}NTq1m{vGtRL*jW!+K9v($cC{@Rl%Eh$+s zX|c^d;GE4YT}o2#=hkDQdZ zS&q-RbEi7hhv7+K5k%EmOSu%qh8c+?IKU7_rESW~h+gm5Vj`PaH)o}7nzuP?44R5J z2>Gbl+}S?YLfvXE7{j-0SmLDg_}F7G_J&fm0S(f%8+XVI`51dK`b{GKP|N*AjRB&D zmHRXMo@m=#L{2gOi`w0M97HX^{WtXwD$Gcf{|EJD*8qG+M6S`MZ`;RCWBB8$@?H#w zxg18uK#$*K+Cd%7lkscgdQ3>z9VE4y?;L%`}FPhVQDw5vlyzR@R?B?#theO;dh}jM+&@&_PcW874$l1oL&A=4zbJ1@$M0qw4lifcLyPEmG z28t?m`!L{3&Y4dF1YOG$i)Dv|W;vs+GXhTK7ku|P6}-!jOUDTm=T^`6%J>v2jKn18 zL^-QEQp<}r<&v#+VXZSnIV5|6-c$G)``o>6zAsh&)1&Tv@#x@xfL;5{ng3<-7iZON z*UI;=aL0_ z&sp`sga(jITLnY6gi_-0gJvDukl}=2;sN2{CQz-UvPq;Yr8K-^Rk!A0@emVca15-S zcHB9zIjyNp5je^K4P+L__E^hHh>mC4olsMj24g`I7w%ELiCS1UdB{J*B-BVC=Nx1> z_zpA(t>X`xr&txNZrJ4?G#1A@n8_gyt>y960mRal@-Mip_80Y@;F~b97vf~U5ARIb zc7885rkkMlBBIfub%4b~_8_9Mk#>OLQbyqZguaDlq2=29#cCMfg|q{G*J6-!IEm9| zxJYd%+Nr_S(Q`VSG>CWsln=rEs_+mrYB!Y+kHYa=tm+L+Rn*=V+?mvX6g1871ZS4P zU>QL?hBs6`L6|k^0K3NPLzHL9guN!SYN8zfx43ArKjQF0F2pZCkBpjb^Zl+RVe2Pu z1cH-7|2e?cgAOpwKyXGG_t&7tysmBNqSH~LAwS&;b%RTl+>p0K=5nL zg$oFeFmD`|9*9fvxPL;pGfqG=*#l{7tVWYp=1B|ZT}Frjp+OG|y`3<|CPpghs4hF8a_Z|B zfEx{HSN{ZF`=Q^Xz^K=XP_d|_838Heejq4(v~NUS$f0)bEAoQREgk?0hqcT0<;^sD z9lKtRtY}!|8{I|c%AmJzSQ&(XIi zx=Nza!_V`V2Q!~3roNJI;2AyJbItSR(tiSvMRbpQYI5Meu6Phv>U4r<>qcSi9yI23 z;{Q7gZSOWjGniSo((@s&~>K`5kfS5&DOCI^b68Hg6_Vgje zl%YGp*b5X4bW>|7G0uS5 z0N5R~=N;zcL->^sK*PKVf3;zROH0=Md3If*{8IO?vw`70#k601=b~$cgFn zX&l5#_1Yw?GfSbV-=I<7s=t|jYBOi2ctBjYbMLJmBT|AwVe{m11qpr zs)Hpd3bbp9x=5bu*B%_D6Z^C4&z-NFeZnGAe~7xKYuu|cr(VVgeD#izyFfVzc!b_7 zJ8>kR4`mk#6ca-pt_Tag!L1?2UR2a~)n7T=(b&5Sd2E_t?1(;pdFk0n>e2b1rJBz5 z{;i73QPnc?vMM4Y`j7lM!j>7F6tj0hukK9r)MN^W)^qS)lf+eZ!ig?s-(W?uIz)WASo3!#K*P8dGAMNps=3b2F% zEL-j5*HgKJo=J60K~mwwD3wR>*^6csxr-81!k^I8cTYScYLYpeT*aOaV1=+B z(TZ=@M=@9M^4N2`HUVQvO9Y1{;<;s^!Z(DaHMq)Us0+*Lzd78VRNN>g6*(xjY_lgl zYSzP!_iUlNuOwFOZY5Srw?EPaApnV39-5r7GMGKLUh+zUNcswM1RQAzAk{DCmYx;T zue|qO)Gs)iw!?BDZ*L*!AM)`t5rD;tB4b2pH~a$$z7=lVTb)59<*^mmFZ6e3<++ox z&?2AE)h|xGduyUGS>1Y{{|J6TqrP3|a{&ns`nTYq+%jm9zXkXH5q$ASa5ce+n>*X1 z=80XG544Cni59~{GRdf21<9!VKY%@ZYm$Rw{|T)8-PJq>cX9{}`{m{qs8-yu$t!~W zBG2@Ye<mUX90VhmXNU z*Q1ycv`7@U<%(KS1Dhzch+pSc5?u|?6sT7X5qQL>Y{ZfWa$Q%pZFPK8u-*^&8SU%7 zkv2$Fy1gW}b?goDGrWKRtk&+GE(#(6NmBr&#H?e}xR>R^H|!c2=A_ky{^1w)jrxT| z+I;Zkyxa22a8Xe1&_9d$f6a}1!K3Mr4(-@33MjvM0JqLvh^y-h_ zaL;zN0zx}4^V0ha*$Eh?e^!`Lb_^Qjd1qg2+v<=nEHZ?+prbyZmNxJU*yT^isofK~q z2B~F3h1CLZO-{Ng9>8fF`zCr>oV0?-8dD(;&1)!F{~c_&cUS|H@Ens6SGYH3o45Cp zxzA~-o^bpC3as}MXG+Zx^u~VxS=@2m)8_^@hNo!4u*XT?g1+Z+H!uO37e!b;VcRoz zyY=Fc9cmap#sfV@pi7`}S>euJQ;~+(utDt4yMCz{CoU zJ*eS!xZ%?t;+W+vPyWg*MaK@y;3xemn$6 zLSHn<-b>+Lr=88pe<;uko*f`^fe6_4MEpD)hH1r*%LCWzw0Am7!n>Ko?gKvTlw1Zj z99fls=t#Iuo&GodA?H8nOU$eUx1mAi4|ZAs?UCT^2ZNmdGn@``c<nJ}tW#4VRnu{#>*AmRW@MPzA@Y&?A?r5VZ;*B!?rfb zfU5u&rTlo2593{;Q1auuW%k8Pl=lgw{&8aOzNvH#6VDJNUaFHr@ULe3{5MMEA~8y( z4pYo`IK^P*ij>uic`}tea z_!vGbYaM%bW#G`*%d9WE6@b%RA>6*6oh2>W>bKN#r5=?g_4L@+S9`BYq|JjA?GNk> z3uiWNkK7xjmVHFD5&yKb7t3}ll%&5M=9+s<_4yT+5DY)&$^ zfW)=-hYm5$I(Bo-l#{2F^Z?tN7xBwK;@CC;oCnb4jJFixHnz^7@Jyv3JE|>Iq?$qQDgrs zZs&%&I70AfS3mw;!_?xcvT~U;Yj|wiuP-8*tbrX|k$id#YMcB&D+(dv=zABE{t8nC z%53u|vC2w;O1ra|b#MZ2wr4cV|6ugi(Sd}a)+|osn$gx_z0cxn=YRn*CMH8)4@S8t z@}Fo%BuCWNA4yURV@Dc={-_zBa`IFlO!e>YH+yJt|B?5zppj?ojN20I$lQ-J$xun;`Y!kbCC22dqSQ2t(Th}F|Che zmY`|e0qZM#IRReDv~!3D3w7KKYTS(PN8KQJC`>qNH2JvZQY#>b#0_b-X`8K_Us$4wPv1j8kFI_Mt8U#TtGJcdx17sN7(wmPBoVrfY>_9P zk4hm19fXh}3e9psot5nj5<#zy=LK#h0)4G{5`sV#E&M|nd~-iIPn;!B95I{V2?iVD zvmNSkNfN8p$Px;+Gmm;#L~tI27_>oN5O%!Vj{d^2ZfN>BZ1Y3aB0Tmd_uP_v2;UPv zu~0+NP@HDWdu00Mse#P8li~>+nt!Q4MEzSuXwNl~VugxkwXIuK(4i6^vVMBYR}}0w zw`IXgGVvFBtPjf}NMjj4=9h%_$ymxW<0LK4(ct2e6dZOLF!o4#+hOd)Q!{t>A*7~h zs=LX;E(#9jM}6j@*eCaCa#nrRj;>3sqe-ZPkF;jq!8);Kdcbz0#q&jPEk}+Fjx)*N z3DCGpF$qfTacxnFCP0s;X$RFg9be^lj?W=zb{<&rQiKhNc=>^0QWEeDmx7dgeTK`_ zil8;BRH1S`E_*cAwhtLR9hzz>CSB<%jx8$PL&2lDFizLGB5CMTt`0>ZE9k#*%YO2M zMU8@ZaY)oi4?9;@g6U<%N*xf8>OX+6{{ZRz3&{Qt(7gXdCr~E;&1w;jE^4F9B2v%} zH|{S4!3xl`#filZlMeLWk6e{@1wLIG;UYUO1PhLC{wr3}9YRwW*0G49u1MiuKCq+% zIfxoO3Rr#g@uIQtJ+(V1AU}%`8B7PSW5kgh*{e#CA%9#qOn0V5k7_nX3i7&08+ zyG*}(5U!}0H^`_?IQ~T60@}qdnj3&I5-T$jatchN6a5g^#^ExI68`Y!|K{n{_3YQS zQN?|7zlHS9{czyW23!`bUd-L{zdkqG1JG=(pWa2@?(KRt7QWuvKg=+5ni|rp%ErI_2@687O9=3aH<9>zR zkIZd>=RkiiVWW<+?{}UBCGULirsFP&!?_`uVJ)fq-u|tf9&7t9&i$FUXEwLqr#vf* z35iOF()1*}*R@7QVL7XLVQYg+KmDtbuh!r8EdIPq@d#WzNbvv@j?0j_;% zbT0goPcrNdftn|4-2fgy&C;T#ZPjb*o3jmr4vgd~f3(Woth+7G^^VPDhJ0RX*g5c} zW77_oBsWpullKd=)X!J{_oWSkdO;xv;=cWo!L@5(Dls47+FQL4kpMA2iQv22i@;{( zeS3S&7Lz+_#X`;KD^*o@C5D8^#A5q`pR;A#@~Kt(0=W-6Kat$DND(f(|6}c%6$)&{ z@WN|**6oJTs75zS&eoQ|)MVLX_07*~)7M8|=eD=IEt2~CbiNxlw#PSM-RoWd@72Eh zbM_6#CyFJNh(ImPtxlXLhx_lI+C&cKmp0w3;SPOo+=J+XxgLdBnSW%Crm`BSn?z&Z|@BoJ8cDH@rK zvo?5mx_kSJc^{gm_&DS7;?8N>V@@I{^R0HvLG@10Y}^UXPKu>QDRRSB3lMF}3slhA z+}LWV7}oVENO-Lp>SLLX4BMYO0BsfQe0F;rHY|_N*2*wuDup5~d(JS}OlI@7RV4(EA)1ZuqN2y&0T{+6M z@vi&UwVDmz^3ZzD-qCW0vyp&;Zp!}t+`O`sXdWj1{lTfzsM=#(Ksb>Z+Gp~#5F%Kq zwg^F+Vp$Km65XyIViC(j4=5+ORvjP~^s3c^-}`?Edkd&Iwyj$jx8T9u-Q9u&x5nMw zU4jL7cXxMpcXubaJHZnOkk{m#d*40x|K9hH9#juT?VfASxvQ$z-qpL77@dBUz4+12 zS7lz75bARLv;nls=t+ZES8?0n5Y$?+9T`}4(hV@KN)%hrsh=8P%c0G_9@2waAR$8i z^u7Z)yBNI&QT88puE)!oK@gRcfjg+b0e28x0(Zm$chritLfZcu0&f|n1>`jyw}*W1 zz0tou{ocrJ$_5m#xbz*R@g4pT%6~TaPn7?e1r~b?qH3LMMo~*P;)-0Da5E1Ng`}J(}vw42^#B z9>TqT!;|C44@qAwe>`T-ikO*-sokPd0Xz6et8M+?$1hhQhlg3?{XafN;z|m*O?Yp) za=AWV@w9pUKDL@avwCE&8rkRkQ1WF03G?lz+Y`*Cqvz@CMpidEUslJ~uTzF<=;jXN z@a$>=_`Nm(m;G}Dg2=_~wL@LNCnn?VsR!KVir1J3k$q@fLYn_&$@u+qUufigbKqrD{9n>w5c7xuKS-)3JFwEhpgkbv>P6 z+GjmI+UP3A{pyBr{&nYtu38|x1R8?y8}9}B_wSe?vU?s}n^+6n*vFB^{5e@@0Av2_ zEMw2}MPWF7*Yds#bBG2~h@+QhGmufa9B3zhuT|n$&l_W`KocTHzeYVoiyVx3TlPYo zs94uu5EdnNvBiERY6x<2qsO7zyDHDu+XlEm^s$$XLn76!!j`{xnGEfVNdeQ z?O0Z#ufkx}L&7YG=zeKR(Pa}Qk0J0%lTY&TQRQ%*!VcG}0(1Pbeabg%A!xD>b;TV6 zE=zX+*S$*t{^Q(?m)CusEO$M*zV7`5zPGwj1Q*9Oucw!n7*YO=L+?Ay*M1H!h+@pXI@ws{0% zX;lZuQ{2a@YgO4Zchi_nkS`P;&I}smxaGSh2wS-2SG_inG7rR`lpQ82}sFmH`r zr;(0B&vgtq=`NZli^?56@g41|*t4vrZH--El#p2gpG@%_C%HZi%ltwS5(;d6fN>Z@ z*#je9f>Cguh^|p$hJJ993J`ELZ(YX5HQl~bTF=!B7~xy!kZ&0HzJPaE@@4!@s;jVL zKRLTQ(FtqXsON5a<%_!~o%ar+8+Jb|+WBIgyB1%LThxuMHsbJrL;a^MXYFSZz~-{s zX=^8mw_{ujCf(LWW=alM(TAhaxn_M`P+k7I6V>rOzN$2-<;nznNEA=}?t>^(k|Rge z0ZT924sW62yHr%WMtMoYhe@~Z=c`F+5mP!h=6bC9pkKIX{7Uwd`WJ2*s~osjmHm@# zi;QFffa|~-R$ZV3E)MCJqN}mR((I{?i4XNoZHae0jA@t7h$xHG^`37ga%+W_Zdua0 z;W%P^2vFx)JE%W-PO8mp3$JlI+jj9|_1}Fn>1H%*FyMlHa;eW7@QBGW{W|{1%tdaV zUOpvn|7!IXQP~eLhI_U`iQz7u_27&5J&zMSCj!^y**l*&k9`}-B}*2m7H3yRpkGQC ztB1dFly<+8^1zM0vkEd?2*0}Hv{pMG_blP$wo8?h?cS|2?)2yNs(w#$L!zT&zKG;W zU%Cm!)y-jh$|rivf7F3|_0F)7Kee=8wi zw+UXkFJ0G+dGm5JDasd?!&G0&DoE~VupB3>G4~$lRoc!<{+N|c@St@yS5ED7HaA?- zsTmWkbw1}le{cD!iVDf?e0qr5(B3%iVm$v4?6%O>QGWFLgtKqjEnmV>IBm+?WO=5? zv(z}oxL5`~zAaeuW^_}#nHaIfczTKoyLYRE@2?=McZEs#rOkzn+y2ero8KvGx2@|~ zv%s{qQj!{C$eO*=L(#tVX#1_=2)}$=F8jPd6GKbHl~ zU*zG!15F=d3*s$k1dumw_WE`O9z$5#dwnjWZWVF|yd31Mp1XKAGbiNxFHY|~+X$XK z+jJkm61XRxkq6UPSon|Lm`EBziFm{wPO#z%j24lc+0yp~?KfVZ9e#|BYN%HY$ZoynO}bJo(Xuh_*YMR zu}|qy$sr4pBqbR)_1{aOFg@yBwM~@kkh-wdD;-%9)#41E#D|23V!~^-!7f@d>T7P~ zj*Zn|gIRN;6idUX$nk4daZ}(xCf`~!$uCfn7|Gl25r-i6l!5aAsk~}vvlO!?c6q8L zPFm0Riwi$bsd-IeS*c@QWj2L_qJ>@K_w~jr(stv=5G2m(q(=N469RFw(9W}%g%f_Y zUbt&?#bQ)+&Q_HSU>HA-={tIK)JLC{jYEhws{Oc?)xhnykv{ZPtnm9gKmLnkRW>Z-yGP%=vZz zy1N96Ne+zou#KJZc)L1#(uBbAv4_&6_asIk&837G3!{QhXBJ(0%PB+2n)jgx=V|=S z^|zAKxJGjw$&}&}B+<)pPqqw-y7Fx?Fd@t57pIWmg9U1+jLUsTEjP@wSU}zI6t?k3 zrq^BusSrPfmah|purSmmW@^W_%=@W+IRqcZXRY}^qBPZw)m zPQ^@C;djM?uy&HW9eZrNd|HT^NI^%BNSyjha4Q*AU%EWHxoZ$+Av+Vd1Pv(Zdk$LS zr4f5+TrY2S7~Lq13k0Gz2Uz$RC2EbDJW$8U5PLSqtxv!JbNSM}@doQ;SYtS7<%g3wo{) zj8$Ld>8i6mNTExcc_(I!0(NW zvECo10F9o~4$jQWfi6E!VMGm^#XnM$?d|?Z{ZYKq$rCvs$!2hC$@m5BDynEeaAzwL zVk5(vV*$|4d1b#R3;t+p?;`)}c+0KNn*YcDKRWcQu&-KviUw&vV7Ukx?>C)bR@J5ADo(zen4Fza2q!%NZ0Y!Mr!tVfkLeh z6K!PZ-kotpcGjlWRsefq3)mBiS5tBoo899j+?i@WjOs0xBPD;@wxsms#I*4>boRAn z+m*1PO8!`4Z%-oF8}J!Ycx!e0dF$TcF5R5v$q}-%;oq8a2llPrf+?wGCYu)_CZi>0 z<@BneiriyGXp=T?xe3`enAld#h}BWx23LwO5ND zo4T`!qLclpaD_)vlQWYo!(%R}#k8m;m|On@&wO1AoJkWZxV%L*O^)xpN`dTSNK0~8 z<&E<8-oi|*$X>k?lKc2>75ixw`gQV56`Wlateq@>NJ}*QCc-gDiLUc*mBwk60U{O; z^tZ=lkjP}eyt68mV(}RdE3~$`-6|7CD?X>TpZBa}jO`bT!rxrntYkf`fNQ6ehWfRv z`n3||B&$hx-3F+q$}n}@tW-U$Qo)0#{hGVjK?+RtOFgWT*0vh9a74?$xLK`D;K&U! z+>q2`TWpz>5Y&$jXj$ENH1TcSrr7~0?pBSNsjtKdbnU`lE=DkPveS04Pl5^`3$AbB z_|CB~DR(uEA3SK-MUgmt>TJ3&i8@Zg%<&F3u1d-BkO)VztCF;<@@?@V(F0O+v$}=d zcPR|8(#g(h(D%0d+LNB*4&s*}s z4IvJr^6~7#iycmSh_pqvbXyeX`748s=Z{*=*L1|KU%yg@d^pw#O<|Gehf`p6GA~sl zF2+ur=|25V)E#{}9I(yd#;YVy8zQ#YFgR26KFM2y&DV%P7pKm9OiKx7C$@T95Si;c24zz2-*sax`e>cNQavWL!gn1qL7U02FK?IC!(1=owmcnFc46M zr)&L0CaKl=SX)xAV-eb$S?{U|IqX`_Kq4}`hbFe9JET~U+X}BsvHW^I|~ob z{J<72%xR42JVtm42>s8H$e{lUdA@1}4C!+5CnV2f@M4|W-yt)hkVynXdl6-OvlYjS zh{2pJsjbkl)~O$&kcA?YQW-_`XV8Y>Z4IDEMf7h-0}xj`lAUQpK=jR_f^$92#1*)J zYRgM(ugt%Eh7iofNME1|sRKK(35Ef2{3TS)E3$JF3{(I7=`+M|Ak5E*u8B$exMh>0 z7KvY|4O)fnWypT5pnXFD3m~5%U{F@`VC`qHHfdEa(^YUtkXiGb*5+xLZfk5{P@Ik7 z?t)-0()v^T=-)k{^ERFZ^<0Su1i^s7PxT@z$qjI2iX=o-ReGEqM!QmqfIwL0aYs2~ z(F$&vhJp~a5FWG(Ly&GE_rVZ@eH4b!Wy+Y5wp5LQ^Y#~^VfI@tLJfm$WK0l~$#rkj zgy@G7X-K@m77PU;2IFM|y}~Z=94gmo7`H-!NtvTHy$U;b95lwn9;74Pp+^ zO6`L|QGXfD1%Iq2&w@h%!AkcdF3skdqnoBQ?nxg99u5E5HA|WhAZ-ssEBGYW?!plK zpCKrMVfJnoe@M+9V!lA!U^C3OPrhJS=oz|3urZ>OAafG6y4mCWHy zQ(FBYcggFX4RVe=Y@Lm4-K}h0of6|ALDDd#cRSa5emsQV_0mXj(NURH5=SC0ULqH% zM_Wk37I2f4>DyA;o`_yYw2$gXBGLO~R%tX(g+E6XWsOxG4d&=R?mHjN)V%anaL!i{ zLO1kv7CII|_2`aePO8=z%Ntgx)l(jBPG|=DApPz}`K{|M#nwIASUbtqGm9m>)#=6p zUmX*R5ZAY0H@q;iaWSzZu^Gt28|?oRK?sjW#_x7RAqSA|TsO2C+Z$|ty*?M~gmm7K>~+M@@vPp)pS z!)~vByg71GXVR@nxQUC!HO2tb2{jg~x?S3}1mKeb>HE(^R<=V|7zN02^o%vtP1E(v zBlGMQh+xFjj;W-#wOxv#YH|k7{}Q&c-M#W1cm~sGT-S^5K4h!_nJy4K4tBm(N+Z^6 zW7YWJ$e9X-(Os(8$}47c$8)FA>y70O2G;2cX^44m8b|2sUG! zyd(Aj%c#k#_U;gtevB0CXQl?sV&qAp)U~!37ZAm)So`~EHW5~*LGn=32N3YIU~?!m zEb?@RZcQ-_B8+^EN0v}i69)(IHPo056u^`OBQ!z=g?bFI#$tP2Wm;*)R|H1fM#F?Nl+q(!L ztN&d@)SyU%beHa50+@4Q=iq5O2~5`uSk92AE`q4vX}L1^;QK05lHqlcBFs(VIRJBv zPrZW0#Oa`rVqvD;sphWKUx0kx<3q6#ryB&V6pBTbbdNlezkp2=r-$vKn}}B-ZOQAdhTn?a?PCH99pX^@UAIME$naH&%Q=1)J=#w z)iNox44dn24O`#mx$8XDtGs19?q6Rg_5?C6ks6F0B<(EHn0~L>HjQRS0!HTVp1a4D$VS1wgS*S*UA-?(e!TDg@v!U1qI>3 zBndT%D%_uIc3SWWsXZ@NmOOsHZADFe5o!7q3zl<81Ln$079zx0YUH?&A|TYdAwI zmfZ&MEuXwWT&rSV=`t*5(Q zw=Bd95*!GdRrC|1Ys*7VtUpJMT8$Md^phxnRDZ>CX)wV_T5L=`D+)l&3%+TuWMA{* zrC(}ff=9OEB3g`BAGo`PH<>mIWkxRs4?!WXXBn25I`n+R5aN39d1qpv}4tUot= zN3HZz{~L7(C#mr44{BX-T;F^;-+dN_l_nNcC_5gqrDWx9sp^irDy^?NcwKOzqCeLP zb0J~?U7J`MbSQf!3_ZHlAnLf55N!v;awr1!AWkT|rteaW0;g7`0yVUMnJ&)>vK1DM zA3M5oJN+`7z`waFn2qFBHh|Yb86rqV5js>GNk9^7I7Weq0>z+c(kzE2eXjFYb=9dv z!DV?@)Cf{RSYX?%UZ6M%r_|*$4pu8Dt!EX9)JjO0{E>yWIV(vbTlSiVfIy+t+!EPuF1q>dAq5ojCIE7)QEX8D4 zo`T3Th!ZTOFS|5u8^Jz>1U`s^2-8HiY`@6iLS>cl8EBfYqMAzPIhJCRO0sqV72O~X zATT+c-SCjIDmO_7(`qmn-Vk9Bhrai0q%?zmxfBg)SeX&uIg~w8x21T?@&A&=L9=@6 z*7>BW<|kD{ME%BQtCMk>nZJuL?_;fU>~+ocC4dW>sZ2k*lesKK>0oMX5aX~4UG+Bj z;&nN&i@*F6(o>VTlg?0oIYSl4SGxNRuMyRxL}yryf_9N8;-`!FH8)YO7t`P>hk|&1 z#2*Lg@bf;I3051~EwgXn)U|@u>AB(@5*i=T8ksz?Vd?SSlf6b|G;U^P7D{0RUAqNPF|r6@Wq9h{=5MnrD-bA_ZY zjp?Wc7~l4!UGRc`p&ghZ*~&h&9Y{G_z) z0|}KddeY>WyeN49ssAeO&;JDPsXO7v_7W)^nl4=&uN=tvo52RH(#ErKBV=^iR}6 z*ngrDAqJBZF4j_{A}IfDfp#s>g18SD?-opTgeN=^-LFRMlzN~fdZ;N3WiEDv(?FSQ zsVLV`{;1Ax7oGcpPX34QKIA*{W=Hs~6TI@AL^&63P(kQxFtnBbnjktme>{&$<+Mmj zNjO^Ci6DAI%G`ln22_B<7|DqmkTP&Ccv8~D4M;g5U;Mu)lYsq`GFR%1skQDDfZlX)Iik!V9BZU%9}%ybOO#uuB3TD7-j@=_X~eZ@}YMt339@g+Vi zGib+433^M%NQDE)xdTEoJA{(61EHu-oU1{5h3g7hg0>j8WD2UiY55Tb7_&GM8yk9s z*R4UA$Y`9yR@HBN)V?KOuP2dy-#CJ*;Y*LYs3J^Afn9yP$Vo!eo&y0T!X*@tR-~al zVR=bA#T%b=Mz$ncOr%_lq8!L&^GqyPCY^6rb~N#OG^wZlz{Z%uud(WD-fheej%>pd z_c|@HMiH5n`dSAShzrB{%tr&m`C0J1?mNOR)J|Lt8oo$DJm;iMlI_KqfE3M^eS(Ag zQ*h4r3h;&?g^Q@bfxB=7lVNoUu2}o=yHrFm@ET(U2e?QflBFuabHy|p$Zsi<#ZC~%-bPJO=tW)wS0OEcT9 zjHB?bG#C!3luQ|@6d=zJ9&67NN53TjYlbE#wWVqJfJufY!IhH7xxpL~2wn)J#O*du z7emY|(suxkA;I;ycutgL-#XUX88|TW1Gf9z${Wp-bk|;4-GPd>Qn24IQ0Z)64yrpv z5;93kxf9F?ImKQ?GbPSm zYdpcDB9dj^8dJYd_0!aoCT-L6rU>WCnyR6QHcd zs?Z-Ctoz%7iuI(EfzwN!u^`oM9@&DInUblX8oO)q28Ge1gKqI+L3q{zFjKAZ8q)x>c9+Trm z<8h&t*%hZPTvBmtE^yzTa8L13co{b#3Vl%Y2+2jjo)Vr7+)$)75pk|NM4vuKJ)-;Yb1>#COYz~oU?cOg-?hi_nAhA69YVogRqwvp4| zp-rs|o>YgMn_s40A9OAU;o0ri_rERj)H|h?fHYRIxjqZ!sQ8!{PhuVOS{&EaUsJc_1Bd0-t0srQ%lqL$s3F8KOQp59z?w#1GuhP3D zCj0`RY{iqB-%N1gD7=Bg|J35;_cI{o-%93w3Iiv-By+iDu7QFDgkSn#9MNOmhj2Y# zy$Mu`Pz>ICgWGE6UCs?Ou060f_K=E=fO6#FUXc-x8sg>L)NMKUkb2qokW42Tfq<>6 z-cJ@y>kR>jr)wPp7KdB|Zn4~(fJ|b!(aJ3$X;_ImOxSpC_F3thH&N?f?wB-Zrby)n#tEDqxUuV zqBiCYNN}K_XjtDAKUgB{GCevfK?}`25 zLcc>bpwK+1@VGa|q_0*PTmi3!U0qLSU%45AKNI!!(KE$98GC=#!ffq9{3bCA0^-VX zX5)~f79^xi8XPudE!$7oIUOHRvgWq{Jf%2F-1)H(_?j0kj6*&GSTjwzroOI*eI2>M zYcUq}UD#kOaX)M8KEDY71vq`lIs(F!yu+0I1)~Efc~YFffB&3T=8*+5L;Tc zAP^cG;6&(Z$aouq*wJ4%@hxnZ?aQhK!7rteth@gi>=U4b`+Tn7B6z_%Xkk)G9`kQH zYhjzK_|dE1z1%CaumDaWSw{*NvLmeCOuZIY)e9R?7&~lVEQog5)>&i20Zx*6ceo{K zxue|gQV@I=CKVtN{|%JYXTBFBtqQ?4_3D_uxjUEv^`Z|HsZ-L1KnFyd7woraHX}mM zI*LEbEK9kO+CUFmM(ayLko1_%aDJdUN_^{bNs%`3I&_Q5XU)>IaXD@H%Kwvli;Y8t`i z`qK<(uD;$AE_|OR;9Z8p0}wCHGKxLc`u3yo`4@RX%}cQ7tJEI`8r!%{6bw;n2sMq{ zz;keBmB-LYyHO)n83>y}ZL4kX&Ol=qq_JAaT;juZGB@J)PAx_arGK_~`S!Rg0MI@B zC4xl8;0fbJmHxKxMFdym-6ccK_~Yf!(czYX>35Zv&5J6UXx!Pjp{PS(eJ_@Be1Fg< zB}ur4ZpSL66Ec!ZX)1D(DPh{vG*#4Lz$AbYswvP;RhZsS(=bPKZ?fwtHERyjBg_Jk zZW~bpYrdb~hkqmAa31O?H*Hj?I!kU^6C~7ji7a*U7-fcatsr9(c##&{h=Dj9gg-1S z?9@(k{H$PtI4-%{pG{3kQZ+$E`5uxI7?S%m#Sv95pNXcz%&i0VGq;~3*r5o#ohc3F zejV$V)$a(bR>VTwZJ8V@+|=+E23_2QwhG)9;7;;@1EQ7j$9X70XIjcRs#J&z2obtq zlK@B5;f9;YS9hxOxZKRtyv)Q!EIK6sl@!8fZfb4wOh-j3)>u*mU0e4Q1pr*qZ^x>R zpk6{U^>Ky1$K0AstQnkp3X z@WAn#@?jxUVbIq%uU65+LWD^n?zjMLUP$P7D-Ox-NjZ1Q_{?J*S&)F&_}>yFl1fmsw3V|NdBv$EUkp40eAGCg>W3XS4S`NWk#N5$4zuERokO;T~3 zmyKJ7q&ZT(OO}=AQee6$h6GF(Sv+9akPZv=#wF2)y(hO;?wWFQGht{cHzMLcEn@=?70D?fzT}0sG(YG zd4OqwJz5vFqy(Tdha&%W#t{`d53|-O zuO2HIVO$b#(u}p)vEPG?iqeLfQlQH97f#!OeOS9lylf_1SfDD2--M-PnUc|}NKyxn zGyIKUaU8GHTE-{VuPa`**fpG zewg4i)yFZ5U2MmLdkQDqQR>mMc!gLc{DZ}qeEY$!yj4L!fd(J^8W`f;9|G<>4F`!N zuzY_Lpg4r$M#mm=V9W9Z6P1%8D+w|ija$f=7bYqpDv=Ts0=NV|?At5GONKP%sS5$b z4YcD$e4iwy;uqSLJ2V`n;><7)8tsWkEeP+j{WHVcu#LVj8AX%bO_=>5Rep!$o9UlP zgAK{OBm~G(Hb2;sw9Gog!aa&V!D*=DhAz zHch08hFlhvk6({HgzqQ8KF+_XDOs z=VK736yqN*G3ey$zuu9Y}VL~CvsosHS>eKn*# z@9QH$I2EzdI9Sc$VUW}F6K$SXYu7m7gCD^DtzG9Q3Y-Q3!_Y{Xp_(9}zQy(v1s=^2 z7YGrFQ}_nF5t%c`0r6@*8c2v377~=26C~omY48Rmc&3Dg$28IAIUtfTGW07X@Bb_48SimJ6%k@AlSq9#}2^I2Yx+y(&kWOlY zd^L@;xlelhK_b3OWtifo{~zkG{omCIBmZA@*6=`eTrgd}uV?801~Wc*c8YT@`3uMv z0~`8oEmF4aU!+**Zf|`OvR;1wS7prt0WrNEa1fAV*#D?Q=VapSY+-BmXPs4(>Zap2 zF0}6L68+X)Q`lw)nSJV0vf3?K3Txm)0zm4&g4o=1#>3~yZIiBtk0qO?US6QzK27&@ zI}MJ=F=isT<{~5+^20Iu&w+?g)6#I<&8?JJzZkGFC5MJHQS0;b_+o!;f4ki0XV<5< zOat{mrZ_zGYHd<2N(iHF=?!a(g@f?7D&wyES;qMhaPL$#Tyzkwt|>2eX@CkT#B#AQ z`c%72a;Y83P2a@kXp<#Lvtp(B`Nux}J-35aLJ^%6Vm}88B@WgRQP7&ANhjxRPmw9!Re4%4VtPBO-OfHa!xbqFv z4=}ipk=!1L(ohgtmkUu8cxi{^QL>O$imbmx!Z)N2H>dM+gC^+b3LA5sM5XSVWBV<~ zI(5l^C%gL5Ev*hN_s8P%S*|Lq3e3+h<7kQ_ByE;)#J=7LBGxyHOKe5M@?ZoS)!CKy z#G|)@S<24z#N^4Lu0H~Z!j!5kAmysZ+CDLj)(&TS2jD7ft_&;Qufq2-8ei*z5osUH zNJNwb_``>ur#T7;|=jgJlfR@bZKUtByZixFE8 zuuOO9I_2qCYWYRbB*2}H;AT}v)H$07uWHK+$P~-Vu`9cF18rs8!5Ta757>A3fCa#s zu-E>C+;|&~(-i39WJ;UQ*|iN2&Pm*}Z1s6iA(0dOU1n0H>0A?LdAhIC&vivtR*RJA z*;W>@p#{5PFD_4CKEu0t4_x)j-z3pv3Qs68uqlQ)_|xht6nbzKS9r|pCldCyfUC0^ z&zH&|bcJ#guR7RcVKGiETprd4J@oF1De<~69y-g~(xG%D#dbr54&M9v(TV8$VqK0) zle(0lu8a8z22YJWlduFEhZpwh3$sjNALrX9W0|YG=ZX;@WS5Bz*&nhtMS5eKP#l-0 zTd0r|uG^%9CbTC6AgrrJ*M@ad==_x61?EFzA9O8|r!wyV8SI|FqN)cn>pjl%NRofP zUJtjXh4~!rZ2{*geD1&*pN|jo=_3>ZB4l=@jf)UeXwD28X0wt)g!n}B==l2Tm@^y-&tDuVf_n-(grXsLeI@di-bW%nx~ zaTNNg@wu4hjePnO=wk&ih0c)^yBQc0pS0UILgU1H39ev1f(DyLMTbth<h4e zM%M{Dn?>L}hXI|pym{2b`c07Cldm{@R%`D^7Y76c=pteatGDBIn_I|#E=c{wo$F)- zEUNnp4g>`CUyhjqYe*{_7+U|Sth<@qXZwu_Z}|JyaH^C{DeHtLG!&ZQ;Km6=Tu+dX zc(oYoahHN^^S`Eftz(!jYb87GZDKtxX(!1*{b8`3g(bj=xqr_*8UDV1#n){4LRU{A zLPOK~y%)!xt{vvRt3ceFV9Ms z4QCznNZ5gL3d8;=EV!{+jugiO7CHfn8xtb+NOt_$(6h7%kk)!9T=&oj7-5`PH4+J| zU7oJ(Br=w0{|e@)rEwdN&~@ce13FQ`L>4Vmg`*LsLo3{qODtv_i9C@~D^u2|a79`t zUWn6B(dHrlqYM;GR3wtU_2E%lJ$2RT>2wZm)8aSpVJH%*BIQVC%y7X1Is1e4+ykSI z^R+%KY0-NR4jOY}Q?~RfvP^RYWTWzc8>tL^$&?DZlkn)s^it5(%D!ou*_K^b$jiwx zJ2n5sk~$r~AnwxuE!*K@c%>Yc{K^(%%dU^`cdwnXPr80QZlHX3!lnl**I*?(58p0e zTs*oEYO2e$Ir&-#&Wppzux>;P2of#lGb5hIr9!05D@f#9g@!GCN?IFf40njDx7J`+O2b7b^lO9 zZa-LjUUvy^7rj`$TrNgHZ4r)X6w$J#QXo1d>qfYA==C+&tQ~;6XdbAo68vy6|C(-# z-;8*ohef>>PNm>@G$i|t9D0Q0iO;J?Pw{%`JcI!BSEz%`>!aqOqB{c7b}{1P$Yqmf zz}wI=&JNf!BH5z&WfS$D)k=*{D_ji>raO#8>r72=^C29HHg!@feF$-n2>8K78;S`5 z+HG8vG-3dB{4!~gW!nawJMu4#>%5R}%bRmB>oD+WMJ|_MAWm-tafIDFmUMVcu(;DXs?2v#?#?zBiPAoyJ$P5lOG?Iq z4Y5JSJ5NM8Zb~F16(`FzY@IseoKvK01{Y_`EzoeDanmzRg!WK@G#`K1^aHIk@%E1II8zaXznd6{IB* zOLATIQ5&j_&!Vm+lgoG`LGZ=QBxv_|gYLvX88R$sHshNdgp6(C%1VS&dp(0< z*JJ0&j1#V0bWR|LJPfvF{rUGiS(J!Yi}Tg_%a3b4lB0v(_CniZ;?(OuZw?r(;6+-R z_QN@$D|7|RjKSm&x|S20dSsk^Srt(2xijvNUbjwq1vJO4Z1cbN@@xh-8W_}<{96Ak z*k0j6?Q|V7x5%+OxGl!wH{BFZJYXx)Wduu@J$;hA7orI~d>#WzcDx22!o+ z2MdUDwYPHUztZTH-nXB;q9rFIVzS@=5a%I8(^?E$UK&3N%FDm|snFLTB* zQq3`w0Hu9aXhb8W*1O2HxuBG(EM@jbV}4a9)wh0syVA|@Wljv|y?}t`rma#AI{krM zo2UbPaqkDPHbS*3l=!;sX6wHBIm-*kksookzg(R1OTeqFHIuC#Gpj$&Lq$f&j&6o> zX(u%^+#nQ}bDWKnS2U?uENL!kCjC%}I2l9UHD~+W%p~S+NYmuPW<=BBOoF`bk_FC0 z_OThf$mL9dhbMIcT*Kw9*VwOYhDC+(`Uou9`@3DK)9z;pFwAK<0Bz5fi1S)x=%Jiv zU+(Rk{kT{~z0M{6H-?h>%=N2#8_o*+QE_%kBN#1R02V|!S0nv+ptMQH2W{&gX`KtH z%89BV^{Le0AfI2a1%!W<4RfbZ?#)@e%Aa~SNh1U3&%ZvD1hky>)gh54{* zogfo5`R%g?6;rBN=pzbtso|EgZM`qA9bm1!V%G_bgS~QPdAIdo4e4&R-iwZ8J=v5EF5jd50F8_f$9BT#d!y(Ax&|jC*khkeQh7iT2&G^-=U@O5d&h=+vBF{5g8??GQhZ2dtV`lBF&-L@ zk!FY%gWE!+zFES;B!&3~j|*iNhsMVe^{cbYRyN$r*de=u*sN+PM$sD1X@_Mrrij~Q zjQW&NX{6D{RAlf3S)zuF!OePYaw&~-U^&TZM+@Xe*MVL%h$+_=7em)CIb*s-`+54c zyuWwT=wKaVxL#{?enS5<7t8kLSt$X2;Xwhj*N?z=BNr!UI~#QyYeoxa6PrI@dsUHj zaQ#eZAV0iC$KuC|c|y?^6p<-W^5Ci^pT9xHcg7bQ{@x1h*>U?~KXPOv`vykH#sg>( zm2|R)^Sl%T5dOG361+nWIu8zk#uj;V>R`;hgY}8C0Fh56z+Ub%bZZt19F{8>; ze?$da`)p5K5j)cyTJ*79T4Jj^UkMzWWeflJ4<{QRq>5G{ikP|5;_@Wl6Z?Ayjx)1W zAKN6NW`{;vF{U%n!sn}kPkokc#^yI+B0?nCZA>M0Rb%wXbSkMt$rFLx>I_ENF7;Q2 zX0sXXZ}U$*#2u7Mcw(e?2G)gG1h89m4(Xi%`0ZA{ql`3-9jHcJArGl_Y~g)J*sBsV z$Zx8$Dl%mqssgVouVDY|(54O<*B;5&w;w4d6c;}fVb@Smr)OJz1TB8=zQxS^LRp`OM5U=I zp;G7hMtQUPO(HGQnm39wwEsSNPyITv=D=pMY)Xw5kJNK!Xx zTB#zp;Dv<)ZvS@PB~yOWNY$aUCX_O?Y$yB!Tv0o^RSH9QaPj)<5Mrxn50ID(C8Z(G#$Y}F$I0s2syA?WG?yo-|rwX~z zzia~51t7O6#5p#iFT=W2waY)gAgb-ooi5M24)NLP=OZFViOX3HLuwu9#kNf%I8}Y59gnU{7CIwZ- z^a7cz1a_uJZ<^d!&Y0LNM1A(eh%yQq<23kNx~0#gnz9TEkxeKLb->k3Q zuDRtOGY&yf)R{#MW&Z+jIcxtGj=22QWO#1>!?1&*?l@{Fn!pbizDrWvkaFf$uso?} zM>(asTheXiz8}`AYj*dl>sm%vB&zHB^EPy!j+)N!L6D~?Bb03xI?uPRkKKJ?$ZW1) z@V&-ovYL&#L&?ZwGc>Pv-+kVGBQ_F-8HREtl&P{u)jea}c;$Wou$+ikJez{CmgUr; zD~AKK-5`fA6#E-Tmy;QC`D*TLhbUimUuWkIVJjdnHuD`oK$cn+^;_f0s zgUah_|8Uc}ac;WZ72wgKV@=3QCeh=S4iD%B~fw{*KQidk{Fknu}ovla?RM2xLnl_nW=80W zV<%fp-1)`taFymf&L8JI-|utYukShE=lOikXL+9Uea;Y_9IXG)@#ut*szy_d)a!b| zKyR0PNp7^uN$n29=pm)eeA=b}>xxy-I)JL>0)Qwv01yXPEO6uQ?PUs#yg>W(bM^8$ zhW1CI7Jl*ehub1ds`2{DzAr_7P($!ER%_K4s+k{U*Yg^_pQcx+M!gYpHq{cIt>_xu zmvP}P`5)j@ta0e(W5i`l&JF7xqS2+F%zow(5kN>hJB(h|HAXmdEWa5o~$6+AC+Zt7myhv(A}UQ7=IOjlGkjsf26 zo`P)!Px{^Lt9&ZYz7&vvklA5d)qjYs!9o-8@1F{nu76P%P zibHw7WO`7o#?i30)*r-(#OdHWp6W7gt#iV>XJ=^5VF`a~irk{=b1!0w@^Nf#u+mYb z3`6&triH(3<@4e~BkanpnI3f0pQO+UBr7hLSZqs*y=@n5WVYlg(HLI&Tz$mbjWOWj zh)g%iT=3yl^M9tp98D3!bH69&t?)7Ubq~Uf%^xQ*1lA>-3sv{$9nH)x_FXn8HSxYD z6$`&o)pnru37HB%*{Pz7qS)}J8NFJ2LwhtIH&OqIha+7Kecnyv$i34o$C&80{z{LG zMD>ezEi&+56c|}`YBJW0!;`1W<3&-v=L5SHhR?k+pc6$NCbiIi#{Jszv_hNI71@#~ zz{z{!fXS#xRJ#kiQW}v#0Q9-k{B~k72&nK~FYT zP;23JJbAVMdl5x6ZOCgb5s%lXAf#NBr-dsBD=SCRrK*-Q8lt;Q`lC}YS4yXaC|wsq zJe8u#(lb@^!|WT;Cg_c!H|{ha8hT?n`sf*-shl1UhOu`q7J1FyIA13~5j_MPei?1)dQ+%|4 zVzx~=dFsI(Vx4*DFl9LCgY;#&BSk55Ih1*$sw*?|iY-bv!F`Igj(e8oFQI#!7gH^< z*H(ROM8k_YQ;$#QYQCiNbDod4(7HuD5@$(7ad$8Nfji}lQF*JcxN6p@sLq+i6v(~G z123NtB@8MM9^U42faTtjcjBDRp7=e^^09WFYaKwUS;x*&F#@@k4+?q`LY!vw*?*;p zByEgJCOOfF%U103uv1L4^0KvBKtR0L=HMlQ#!!9VP)L{iY2l@Piaf&pZC43p;c}XI zq|d@%udj;@!SpCDxzq2)b8HKH;4b$zW&OOna#mJ8zwYq(L_ z28YE}Y8w5FO0Fd-yrz?acMgQ0D08FQ^EEh_P|%-;V!$NjBXq2-2(< zN;C0ve9al75G9YZ7jM$Dxk+An9}v_OzkkNDBqq7bAvMKy=n)qGnZ&o=87M#7e6r{^ z9L2CSva+yIsV-|A-n2n-L@Uf1!DeLq4CGN!>;4nxV3&{WeY?_2_sHp>huQ|_+_u7wuLl9_0|1AUU@{o#hjG4)^+yIeZh2== z09Mh$Yz@4X2Ii3kzN*11f$bTH_}9nZcI~0UxEKK&FYuNgP$lVo&ejC|NG|OL-w47q>}wVCa42|lPwn@%tHDMHn$%n5QFtWZkH>e za{&FJY@JNuHFhXn{Ot@>K$5JaDf)IWmTepD`*}kNL#J{1J$e> ALI3~& literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/stores/MultiTypeGraphStore.scala b/src/scala/com/twitter/simclusters_v2/stores/MultiTypeGraphStore.scala deleted file mode 100644 index 656a61696..000000000 --- a/src/scala/com/twitter/simclusters_v2/stores/MultiTypeGraphStore.scala +++ /dev/null @@ -1,287 +0,0 @@ -package com.twitter.simclusters_v2.stores -import com.twitter.bijection.Bufferable -import com.twitter.bijection.Injection -import com.twitter.bijection.scrooge.CompactScalaCodec -import com.twitter.simclusters_v2.common.Language -import com.twitter.simclusters_v2.thriftscala.ClustersUserIsInterestedIn -import com.twitter.simclusters_v2.thriftscala.LeftNode -import com.twitter.simclusters_v2.thriftscala.NounWithFrequencyList -import com.twitter.simclusters_v2.thriftscala.RightNode -import com.twitter.simclusters_v2.thriftscala.RightNodeTypeStruct -import com.twitter.simclusters_v2.thriftscala.RightNodeWithEdgeWeightList -import com.twitter.simclusters_v2.thriftscala.SimilarRightNodes -import com.twitter.simclusters_v2.thriftscala.CandidateTweetsList -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.Apollo -import com.twitter.storehaus_internal.manhattan.ManhattanRO -import com.twitter.storehaus_internal.manhattan.ManhattanROConfig -import com.twitter.storehaus_internal.util.ApplicationID -import com.twitter.storehaus_internal.util.DatasetName -import com.twitter.storehaus_internal.util.HDFSPath -import com.twitter.scalding_internal.multiformat.format.keyval.KeyValInjection.Long2BigEndian -import com.twitter.simclusters_v2.thriftscala.FullClusterId -import com.twitter.simclusters_v2.thriftscala.TopKTweetsWithScores - -object MultiTypeGraphStore { - - implicit val leftNodesInject: Injection[LeftNode, Array[Byte]] = - CompactScalaCodec(LeftNode) - implicit val truncatedMultiTypeGraphInject: Injection[RightNodeWithEdgeWeightList, Array[Byte]] = - CompactScalaCodec(RightNodeWithEdgeWeightList) - implicit val topKNounsListInject: Injection[NounWithFrequencyList, Array[Byte]] = - CompactScalaCodec(NounWithFrequencyList) - implicit val rightNodesStructInject: Injection[RightNodeTypeStruct, Array[Byte]] = - CompactScalaCodec(RightNodeTypeStruct) - implicit val similarRightNodesStructInject: Injection[SimilarRightNodes, Array[Byte]] = - CompactScalaCodec(SimilarRightNodes) - implicit val rightNodesInject: Injection[RightNode, Array[Byte]] = - CompactScalaCodec(RightNode) - implicit val tweetCandidatesInject: Injection[CandidateTweetsList, Array[Byte]] = - CompactScalaCodec(CandidateTweetsList) - implicit val fullClusterIdInject: Injection[FullClusterId, Array[Byte]] = - CompactScalaCodec(FullClusterId) - implicit val topKTweetsWithScoresInject: Injection[TopKTweetsWithScores, Array[Byte]] = - CompactScalaCodec(TopKTweetsWithScores) - implicit val clustersUserIsInterestedInInjection: Injection[ClustersUserIsInterestedIn, Array[ - Byte - ]] = - CompactScalaCodec(ClustersUserIsInterestedIn) - - private val appId = "multi_type_simclusters" - - def getTruncatedMultiTypeGraphRightNodesForUser( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[LeftNode, RightNodeWithEdgeWeightList] = { - ManhattanRO.getReadableStoreWithMtls[LeftNode, RightNodeWithEdgeWeightList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("mts_user_truncated_graph"), - Apollo - ), - mhMtlsParams - ) - } - - def getTopKNounsForRightNodeType( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[RightNodeTypeStruct, NounWithFrequencyList] = { - ManhattanRO.getReadableStoreWithMtls[RightNodeTypeStruct, NounWithFrequencyList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("mts_topk_frequent_nouns"), - Apollo - ), - mhMtlsParams - ) - } - - def getTopKSimilarRightNodes( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[RightNode, SimilarRightNodes] = { - ManhattanRO.getReadableStoreWithMtls[RightNode, SimilarRightNodes]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("mts_topk_similar_right_nodes_scio"), - Apollo - ), - mhMtlsParams - ) - } - - def getOfflineTweetMTSCandidateStore( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[Long, CandidateTweetsList] = { - ManhattanRO.getReadableStoreWithMtls[Long, CandidateTweetsList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("offline_tweet_recommendations_from_mts_consumer_embeddings"), - Apollo - ), - mhMtlsParams - ) - } - - def getOfflineTweet2020CandidateStore( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[Long, CandidateTweetsList] = { - ManhattanRO.getReadableStoreWithMtls[Long, CandidateTweetsList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("offline_tweet_recommendations_from_interestedin_2020"), - Apollo - ), - mhMtlsParams - ) - } - - def getVideoViewBasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("video_view_based_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getRetweetBasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("retweet_based_simclusters_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getReplyBasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("reply_based_simclusters_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getPushOpenBasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("push_open_based_simclusters_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getAdsFavBasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("ads_fav_based_simclusters_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getAdsFavClickBasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("ads_fav_click_based_simclusters_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getFTRPop1000BasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("ftr_pop1000_rank_decay_1_1_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getFTRPop10000BasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("ftr_pop10000_rank_decay_1_1_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getOONFTRPop1000BasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("oon_ftr_pop1000_rnkdecay_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getOfflineLogFavBasedTweetBasedClusterTopKTweets( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[FullClusterId, TopKTweetsWithScores] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("decayed_sum_cluster_to_tweet_index"), - Apollo - ), - mhMtlsParams - ) - } - - def getGlobalSimClustersLanguageEmbeddings( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[Language, ClustersUserIsInterestedIn] = { - ManhattanRO - .getReadableStoreWithMtls[Language, ClustersUserIsInterestedIn]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appId), - DatasetName("global_simclusters_language_embeddings"), - Apollo - ), - mhMtlsParams - ) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/stores/SimClustersEmbeddingStore.docx b/src/scala/com/twitter/simclusters_v2/stores/SimClustersEmbeddingStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..057d5c38a5f7c85d702aca1decac9931c372129c GIT binary patch literal 38109 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/stores/SimClustersEmbeddingStore.scala b/src/scala/com/twitter/simclusters_v2/stores/SimClustersEmbeddingStore.scala deleted file mode 100644 index 62785e205..000000000 --- a/src/scala/com/twitter/simclusters_v2/stores/SimClustersEmbeddingStore.scala +++ /dev/null @@ -1,120 +0,0 @@ -package com.twitter.simclusters_v2.stores - -import com.twitter.decider.Decider -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.hermit.store.common.DeciderableReadableStore -import com.twitter.servo.decider.DeciderKeyEnum -import com.twitter.simclusters_v2.common.DeciderGateBuilderWithIdHashing -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -/** - * Facade of all SimClusters Embedding Store. - * Provide a uniform access layer for all kind of SimClusters Embedding. - */ -case class SimClustersEmbeddingStore( - stores: Map[ - (EmbeddingType, ModelVersion), - ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ]) extends ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] { - - private val lookupStores = - stores - .groupBy(_._1._1).mapValues(_.map { - case ((_, modelVersion), store) => - modelVersion -> store - }) - - override def get(k: SimClustersEmbeddingId): Future[Option[SimClustersEmbedding]] = { - findStore(k) match { - case Some(store) => store.get(k) - case None => Future.None - } - } - - // Override the multiGet for better batch performance. - override def multiGet[K1 <: SimClustersEmbeddingId]( - ks: Set[K1] - ): Map[K1, Future[Option[SimClustersEmbedding]]] = { - if (ks.isEmpty) { - Map.empty - } else { - val head = ks.head - val notSameType = - ks.exists(k => k.embeddingType != head.embeddingType || k.modelVersion != head.modelVersion) - if (!notSameType) { - findStore(head) match { - case Some(store) => store.multiGet(ks) - case None => ks.map(_ -> Future.None).toMap - } - } else { - // Generate a large amount temp objects. - // For better performance, avoid querying the multiGet with more than one kind of embedding - ks.groupBy(id => (id.embeddingType, id.modelVersion)).flatMap { - case ((_, _), ks) => - findStore(ks.head) match { - case Some(store) => store.multiGet(ks) - case None => ks.map(_ -> Future.None).toMap - } - } - } - } - } - - private def findStore( - id: SimClustersEmbeddingId - ): Option[ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding]] = { - lookupStores.get(id.embeddingType).flatMap(_.get(id.modelVersion)) - } - -} - -object SimClustersEmbeddingStore { - /* - Build a SimClustersEmbeddingStore which wraps all stores in DeciderableReadableStore - */ - def buildWithDecider( - underlyingStores: Map[ - (EmbeddingType, ModelVersion), - ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ], - decider: Decider, - statsReceiver: StatsReceiver - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - // To allow for lazy adding of decider config to enable / disable stores, if a value is not found - // fall back on returning true (equivalent to availability of 10000) - // This overrides default availability of 0 when not decider value is not found - val deciderGateBuilder = new DeciderGateBuilderWithIdHashing(decider.orElse(Decider.True)) - - val deciderKeyEnum = new DeciderKeyEnum { - underlyingStores.keySet.map(key => Value(s"enable_${key._1.name}_${key._2.name}")) - } - - def wrapStore( - embeddingType: EmbeddingType, - modelVersion: ModelVersion, - store: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val gate = deciderGateBuilder.idGateWithHashing[SimClustersEmbeddingId]( - deciderKeyEnum.withName(s"enable_${embeddingType.name}_${modelVersion.name}")) - - DeciderableReadableStore( - underlying = store, - gate = gate, - statsReceiver = statsReceiver.scope(embeddingType.name, modelVersion.name) - ) - } - - val stores = underlyingStores.map { - case ((embeddingType, modelVersion), store) => - (embeddingType, modelVersion) -> wrapStore(embeddingType, modelVersion, store) - } - - new SimClustersEmbeddingStore(stores = stores) - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/stores/SimClustersMultiEmbeddingStore.docx b/src/scala/com/twitter/simclusters_v2/stores/SimClustersMultiEmbeddingStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..741dbca6fef7989d7b7441d792fe38073cbdf6d1 GIT binary patch literal 37507 zcmagEWmsIvwm*z(a1HM6?hb+A?h-U;Bf+8Z;BLVoxVr^+x8Uv)2=4xGX6BqTbMC$G z`(^jjRkePy*6ym>yGuzH5(*Ox3=9rTAeCFITqQp?5gZI`7zPXs1JtT34zT-TX7|NV z&E4M2NuSBh)}}sDUU69j_3P;~RuZ!iiKjRUR>_t{ddjUg(Q=JoyH^91uDHapzJ9u9E*WH@SMKU}rW14SUCCHdnR)4L!kIpp zs-|?W_Y+*;EZbE*e1_;jr()SU{)t-mU{TcN(HiK){XuXlg2T`umAO;gIj!XOYAT0= z)Z6r*cZZc+o=1IL$?nB{B{QEFn5Z-|tkV#F`0;!TH9Aw5`f5}c*Xva6GDctPXrb;< zv)q-B?ADJ6K>fL6+sWiQqRD;;Q&SvqrK+=rZWXk146qKQs+vB4%+!3fP@K&BIy+Ezkyk>&yH&zakj77>*YoZi`El8G}WUFT*0?sC-;#ZQ#FRGx zQ~F00-Kk_n?m*RBg8&0V1brGhn%OupGre8Q;(XV0j>C)DoOo>*ANf^@EN+TBq7RRGqA%3CJ zboOSP2EYKM1W4$aJW3N1BO49L`CkA$(c0NpBP+9Pq40nbrNUD`8rOT(WFw4b0DUQCcpSqLnMyo2RRbSE+*|SKR=?-c=EVfwBp7B zBCvF{q8#whq~1?*;|5UE3#IS@j+-`6E_f9>idzS3x~zE14M@vhs(w6}T(J5833ZSH ze}CvRQrSy4qp5;nBRF=shkl0wΜyqT<@5!L|{0?BwXMKH&nXU;3^w_#JZ6`<$uc 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

    R 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 HeIOnH5LYU9 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/stores/SimClustersMultiEmbeddingStore.scala b/src/scala/com/twitter/simclusters_v2/stores/SimClustersMultiEmbeddingStore.scala deleted file mode 100644 index 0a520439e..000000000 --- a/src/scala/com/twitter/simclusters_v2/stores/SimClustersMultiEmbeddingStore.scala +++ /dev/null @@ -1,74 +0,0 @@ -package com.twitter.simclusters_v2.stores - -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.common.SimClustersMultiEmbeddingId._ -import com.twitter.simclusters_v2.thriftscala.{ - SimClustersMultiEmbedding, - SimClustersEmbeddingId, - SimClustersMultiEmbeddingId -} -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -/** - * The helper methods for SimClusters Multi-Embedding based ReadableStore - */ -object SimClustersMultiEmbeddingStore { - - /** - * Only support the Values based Multi-embedding transformation. - */ - case class SimClustersMultiEmbeddingWrapperStore( - sourceStore: ReadableStore[SimClustersMultiEmbeddingId, SimClustersMultiEmbedding]) - extends ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] { - - override def get(k: SimClustersEmbeddingId): Future[Option[SimClustersEmbedding]] = { - sourceStore.get(toMultiEmbeddingId(k)).map(_.map(toSimClustersEmbedding(k, _))) - } - - // Override the multiGet for better batch performance. - override def multiGet[K1 <: SimClustersEmbeddingId]( - ks: Set[K1] - ): Map[K1, Future[Option[SimClustersEmbedding]]] = { - if (ks.isEmpty) { - Map.empty - } else { - // Aggregate multiple get requests by MultiEmbeddingId - val multiEmbeddingIds = ks.map { k => - k -> toMultiEmbeddingId(k) - }.toMap - - val multiEmbeddings = sourceStore.multiGet(multiEmbeddingIds.values.toSet) - ks.map { k => - k -> multiEmbeddings(multiEmbeddingIds(k)).map(_.map(toSimClustersEmbedding(k, _))) - }.toMap - } - } - - private def toSimClustersEmbedding( - id: SimClustersEmbeddingId, - multiEmbedding: SimClustersMultiEmbedding - ): SimClustersEmbedding = { - multiEmbedding match { - case SimClustersMultiEmbedding.Values(values) => - val subId = toSubId(id) - if (subId >= values.embeddings.size) { - throw new IllegalArgumentException( - s"SimClustersMultiEmbeddingId $id is over the size of ${values.embeddings.size}") - } else { - values.embeddings(subId).embedding - } - case _ => - throw new IllegalArgumentException( - s"Invalid SimClustersMultiEmbedding $id, $multiEmbedding") - } - } - } - - def toSimClustersEmbeddingStore( - sourceStore: ReadableStore[SimClustersMultiEmbeddingId, SimClustersMultiEmbedding] - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - SimClustersMultiEmbeddingWrapperStore(sourceStore) - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/stores/TopicTopProducersStore.docx b/src/scala/com/twitter/simclusters_v2/stores/TopicTopProducersStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..c04e616d7a32c17b4bab57e4cbfe4f5f44a33590 GIT binary patch literal 37283 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 ZLv0-fc(Vd?5GYp(G9&`ChfXhu2LScut0e#c literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/stores/TopicTopProducersStore.scala b/src/scala/com/twitter/simclusters_v2/stores/TopicTopProducersStore.scala deleted file mode 100644 index c733ed157..000000000 --- a/src/scala/com/twitter/simclusters_v2/stores/TopicTopProducersStore.scala +++ /dev/null @@ -1,87 +0,0 @@ -package com.twitter.simclusters_v2.stores - -import com.twitter.bijection.scrooge.CompactScalaCodec -import com.twitter.recos.entities.thriftscala.{SemanticCoreEntityWithLocale, UserScoreList} -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.{Athena, ManhattanRO, ManhattanROConfig} -import com.twitter.storehaus_internal.util.{ApplicationID, DatasetName, HDFSPath} - -object TopicTopProducersStore { - val appIdDevel = "recos_platform_dev" - val v2DatasetNameDevel = "topic_producers_em" - val v3DatasetNameDevel = "topic_producers_agg" - val v4DatasetNameDevel = "topic_producers_em_erg" - - val appIdProd = "simclusters_v2" - val v1DatasetNameProd = "top_producers_for_topic_from_topic_follow_graph" - val v2DatasetNameProd = "top_producers_for_topic_em" - - implicit val keyInj = CompactScalaCodec(SemanticCoreEntityWithLocale) - implicit val valInj = CompactScalaCodec(UserScoreList) - - def getTopicTopProducerStoreV1Prod( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[SemanticCoreEntityWithLocale, UserScoreList] = - ManhattanRO.getReadableStoreWithMtls[SemanticCoreEntityWithLocale, UserScoreList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appIdProd), - DatasetName(v1DatasetNameProd), - Athena - ), - mhMtlsParams - ) - - def getTopicTopProducerStoreV2Devel( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[SemanticCoreEntityWithLocale, UserScoreList] = - ManhattanRO.getReadableStoreWithMtls[SemanticCoreEntityWithLocale, UserScoreList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appIdDevel), - DatasetName(v2DatasetNameDevel), - Athena - ), - mhMtlsParams - ) - - def getTopicTopProducerStoreV2Prod( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[SemanticCoreEntityWithLocale, UserScoreList] = - ManhattanRO.getReadableStoreWithMtls[SemanticCoreEntityWithLocale, UserScoreList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appIdProd), - DatasetName(v2DatasetNameProd), - Athena - ), - mhMtlsParams - ) - - def getTopicTopProducerStoreV3Devel( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[SemanticCoreEntityWithLocale, UserScoreList] = - ManhattanRO.getReadableStoreWithMtls[SemanticCoreEntityWithLocale, UserScoreList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appIdDevel), - DatasetName(v3DatasetNameDevel), - Athena - ), - mhMtlsParams - ) - - def getTopicTopProducerStoreV4Devel( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[SemanticCoreEntityWithLocale, UserScoreList] = - ManhattanRO.getReadableStoreWithMtls[SemanticCoreEntityWithLocale, UserScoreList]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(appIdDevel), - DatasetName(v4DatasetNameDevel), - Athena - ), - mhMtlsParams - ) -} diff --git a/src/scala/com/twitter/simclusters_v2/stores/WtfMbcgStore.docx b/src/scala/com/twitter/simclusters_v2/stores/WtfMbcgStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e55b3371b9f38974d748aa025de1f4546970e70 GIT binary patch literal 37126 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/README.docx b/src/scala/com/twitter/simclusters_v2/summingbird/README.docx new file mode 100644 index 0000000000000000000000000000000000000000..88f7e4d249fcf262ac958a3d50de427b608825d7 GIT binary patch literal 36749 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/README.md b/src/scala/com/twitter/simclusters_v2/summingbird/README.md deleted file mode 100644 index 026df3a26..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/README.md +++ /dev/null @@ -1,4 +0,0 @@ -Simclusters v2 Online Tweet Embedding Pipeline -============================================== - -The Heron jobs generate the tweet embedding and index of tweets for SimClusters, as well as persistenting the tweet embeddings from MemCache into Manhattan. \ No newline at end of file diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/BUILD b/src/scala/com/twitter/simclusters_v2/summingbird/common/BUILD deleted file mode 100644 index 0912b12fe..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/BUILD +++ /dev/null @@ -1,62 +0,0 @@ -scala_library( - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/algebird:core", - "3rdparty/jvm/com/twitter/algebird:util", - "3rdparty/jvm/com/twitter/bijection:core", - "3rdparty/jvm/com/twitter/bijection:util", - "3rdparty/jvm/com/twitter/storehaus:core", - "3rdparty/src/jvm/com/twitter/summingbird:client", - "cuad/projects/ner/client", - "cuad/projects/ner/thrift/src/main/thrift:thrift-scala", - "snowflake/src/main/scala/com/twitter/snowflake/id", - "src/scala/com/twitter/algebird_internal/injection", - "src/scala/com/twitter/simclusters_v2/common", - "src/scala/com/twitter/storehaus_internal/manhattan", - "src/scala/com/twitter/storehaus_internal/manhattan/config", - "src/scala/com/twitter/storehaus_internal/memcache", - "src/scala/com/twitter/storehaus_internal/memcache/config", - "src/scala/com/twitter/storehaus_internal/offline", - "src/scala/com/twitter/storehaus_internal/online", - "src/scala/com/twitter/storehaus_internal/util", - "src/scala/com/twitter/summingbird_internal/bijection:bijection-implicits", - "src/scala/com/twitter/summingbird_internal/runner/store_config", - "src/scala/com/twitter/taxi/util/text", - "src/scala/com/twitter/wtf/summingbird/sources/common", - "src/thrift/com/twitter/recos/entities:entities-thrift-scala", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - "src/thrift/com/twitter/timelineservice/server/internal:thrift-scala", - "src/thrift/com/twitter/tweetypie:tweet-scala", - "src/thrift/com/twitter/wtf/interest:interest-thrift-scala", - "stitch/stitch-core", - "stitch/stitch-storehaus/src/main/scala", - ], -) - -## smaller build target for external usage -scala_library( - name = "util", - sources = [ - "Configs.scala", - "Implicits.scala", - "ModelVersionProfile.scala", - "Monoids.scala", - "ThriftDecayedValueMonoid.scala", - ], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/algebird:core", - "3rdparty/jvm/com/twitter/algebird:util", - "3rdparty/jvm/com/twitter/bijection:core", - "3rdparty/jvm/com/twitter/bijection:util", - "3rdparty/src/jvm/com/twitter/summingbird:batch", - "snowflake/src/main/scala/com/twitter/snowflake/id", - "src/scala/com/twitter/algebird_internal/injection", - "src/scala/com/twitter/simclusters_v2/common", - "src/thrift/com/twitter/recos/entities:entities-thrift-scala", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - "src/thrift/com/twitter/tweetypie:tweet-scala", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/BUILD.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..49ae531aaa643f2d5b41f9351c48b26d6f810f96 GIT binary patch literal 37220 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/ClientConfigs.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/ClientConfigs.docx new file mode 100644 index 0000000000000000000000000000000000000000..0ca19d56aa30168865754df7abadd286264d71a0 GIT binary patch literal 37497 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

    1F^XVs1Vt`pcuO9HwAPjCN+$+l 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/ClientConfigs.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/ClientConfigs.scala deleted file mode 100644 index d288ad692..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/ClientConfigs.scala +++ /dev/null @@ -1,81 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.finagle.thrift.ClientId -import com.twitter.storehaus_internal.memcache.ConnectionConfig -import com.twitter.storehaus_internal.memcache.MemcacheConfig -import com.twitter.storehaus_internal.util.KeyPrefix -import com.twitter.storehaus_internal.util.TTL -import com.twitter.strato.client.Strato -import com.twitter.strato.client.{Client => StratoClient} - -object ClientConfigs { - - com.twitter.server.Init() // necessary in order to use WilyNS path - - final lazy val simClustersCoreAltCachePath = - "/srv#/prod/local/cache/simclusters_core_alt" - - final lazy val simClustersCoreAltLightCachePath = - "/srv#/prod/local/cache/simclusters_core_alt_light" - - final lazy val develSimClustersCoreCachePath = - "/srv#/test/local/cache/twemcache_simclusters_core" - - final lazy val develSimClustersCoreLightCachePath = - "/srv#/test/local/cache/twemcache_simclusters_core_light" - - final lazy val logFavBasedTweet20M145K2020StratoPath = - "recommendations/simclusters_v2/embeddings/logFavBasedTweet20M145K2020Persistent" - - final lazy val logFavBasedTweet20M145K2020UncachedStratoPath = - "recommendations/simclusters_v2/embeddings/logFavBasedTweet20M145K2020-UNCACHED" - - final lazy val develLogFavBasedTweet20M145K2020StratoPath = - "recommendations/simclusters_v2/embeddings/logFavBasedTweet20M145K2020Devel" - - final lazy val entityClusterScoreMemcacheConfig: (String, ServiceIdentifier) => MemcacheConfig = { - (path: String, serviceIdentifier: ServiceIdentifier) => - new MemcacheConfig { - val connectionConfig: ConnectionConfig = ConnectionConfig(path, serviceIdentifier = serviceIdentifier) - override val keyPrefix: KeyPrefix = KeyPrefix(s"ecs_") - override val ttl: TTL = TTL(8.hours) - } - } - - // note: this should in dedicated cache for tweet - final lazy val tweetTopKClustersMemcacheConfig: (String, ServiceIdentifier) => MemcacheConfig = { - (path: String, serviceIdentifier: ServiceIdentifier) => - new MemcacheConfig { - val connectionConfig: ConnectionConfig = - ConnectionConfig(path, serviceIdentifier = serviceIdentifier) - override val keyPrefix: KeyPrefix = KeyPrefix(s"etk_") - override val ttl: TTL = TTL(2.days) - } - } - - // note: this should in dedicated cache for tweet - final lazy val clusterTopTweetsMemcacheConfig: (String, ServiceIdentifier) => MemcacheConfig = { - (path: String, serviceIdentifier: ServiceIdentifier) => - new MemcacheConfig { - val connectionConfig: ConnectionConfig = - ConnectionConfig(path, serviceIdentifier = serviceIdentifier) - override val keyPrefix: KeyPrefix = KeyPrefix(s"ctkt_") - override val ttl: TTL = TTL(8.hours) - } - } - - final lazy val stratoClient: ServiceIdentifier => StratoClient = { serviceIdentifier => - Strato.client - .withRequestTimeout(2.seconds) - .withMutualTls(serviceIdentifier) - .build() - } - - // thrift client id - private final lazy val thriftClientId: String => ClientId = { env: String => - ClientId(s"simclusters_v2_summingbird.$env") - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/Configs.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/Configs.docx new file mode 100644 index 0000000000000000000000000000000000000000..ed74754b1362369e8e1101db63864e29e0979478 GIT binary patch literal 37489 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/Configs.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/Configs.scala deleted file mode 100644 index d769330f0..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/Configs.scala +++ /dev/null @@ -1,70 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.conversions.DurationOps._ -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.util.Duration - -object Configs { - - final val role = "cassowary" - - final val ZoneAtla: String = "atla" - - @deprecated("Use 'common/ModelVersions'", "2019-09-04") - final val ModelVersion20M145KDec11: String = "20M_145K_dec11" - @deprecated("Use 'common/ModelVersions'", "2019-09-04") - final val ModelVersion20M145KUpdated: String = "20M_145K_updated" - final val ModelVersion20M145K2020: String = "20M_145K_2020" - - @deprecated("Use 'common/ModelVersions'", "2019-09-04") - final val ModelVersionMap: Map[String, ModelVersion] = Map( - ModelVersion20M145KDec11 -> ModelVersion.Model20m145kDec11, - ModelVersion20M145KUpdated -> ModelVersion.Model20m145kUpdated, - ModelVersion20M145K2020 -> ModelVersion.Model20m145k2020 - ) - - final val favScoreThresholdForUserInterest: String => Double = { - case ModelVersion20M145KDec11 => 0.15 - case ModelVersion20M145KUpdated => 1.0 - case ModelVersion20M145K2020 => 0.3 - case modelVersionStr => throw new Exception(s"$modelVersionStr is not a valid model") - } - - @deprecated("Use 'common/ModelVersions'", "2019-09-04") - final val ReversedModelVersionMap = ModelVersionMap.map(_.swap) - - final val batchesToKeep: Int = 1 - - final val HalfLife: Duration = 8.hours - final val HalfLifeInMs: Long = HalfLife.inMilliseconds - - final val topKTweetsPerCluster: Int = 1600 - - final val topKClustersPerEntity: Int = 50 - - // the config used in offline job only - final val topKClustersPerTweet: Int = 400 - - // minimum score to save clusterIds in entityTopKClusters cache - // entity includes entities other than tweetId. - final val scoreThresholdForEntityTopKClustersCache: Double = 0.02 - - // minimum score to save clusterIds in tweetTopKClusters cache - final val scoreThresholdForTweetTopKClustersCache: Double = 0.02 - - // minimum score to save tweetIds in clusterTopKTweets cache - final val scoreThresholdForClusterTopKTweetsCache: Double = 0.001 - - // minimum score to save entities in clusterTopKEntities cache - final val scoreThresholdForClusterTopKEntitiesCache: Double = 0.001 - - final val MinFavoriteCount = 8 - - final val OldestTweetInLightIndexInMillis = 1.hours.inMillis - - final val OldestTweetFavEventTimeInMillis = 3.days.inMillis - - final val FirstUpdateValue = 1 - - final val TempUpdateValue = -1 -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/EntityUtil.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/EntityUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..c11ec0bfde23059b5d338ac6c7870c57962ff727 GIT binary patch literal 37288 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 j*N@&FMCi9~N6KQTt-}CsR$vYS;>@vHbSu- literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/EntityUtil.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/EntityUtil.scala deleted file mode 100644 index 4e4bbd7e7..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/EntityUtil.scala +++ /dev/null @@ -1,46 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.cuad.ner.thriftscala.WholeEntityType -import com.twitter.simclusters_v2.summingbird.common.Implicits.thriftDecayedValueMonoid -import com.twitter.simclusters_v2.thriftscala.{Scores, SimClusterEntity, TweetTextEntity} -import scala.collection.Map - -private[summingbird] object EntityUtil { - - def updateScoreWithLatestTimestamp[K]( - scoresMapOption: Option[Map[K, Scores]], - timeInMs: Long - ): Option[Map[K, Scores]] = { - scoresMapOption map { scoresMap => - scoresMap.mapValues(score => updateScoreWithLatestTimestamp(score, timeInMs)) - } - } - - def updateScoreWithLatestTimestamp(score: Scores, timeInMs: Long): Scores = { - score.copy( - favClusterNormalized8HrHalfLifeScore = score.favClusterNormalized8HrHalfLifeScore.map { - decayedValue => thriftDecayedValueMonoid.decayToTimestamp(decayedValue, timeInMs) - }, - followClusterNormalized8HrHalfLifeScore = score.followClusterNormalized8HrHalfLifeScore.map { - decayedValue => thriftDecayedValueMonoid.decayToTimestamp(decayedValue, timeInMs) - } - ) - } - - def entityToString(entity: SimClusterEntity): String = { - entity match { - case SimClusterEntity.TweetId(id) => s"t_id:$id" - case SimClusterEntity.SpaceId(id) => s"space_id:$id" - case SimClusterEntity.TweetEntity(textEntity) => - textEntity match { - case TweetTextEntity.Hashtag(str) => s"$str[h_tag]" - case TweetTextEntity.Penguin(penguin) => - s"${penguin.textEntity}[penguin]" - case TweetTextEntity.Ner(ner) => - s"${ner.textEntity}[ner_${WholeEntityType(ner.wholeEntityType)}]" - case TweetTextEntity.SemanticCore(semanticCore) => - s"[sc:${semanticCore.entityId}]" - } - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/Implicits.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/Implicits.docx new file mode 100644 index 0000000000000000000000000000000000000000..0291c1a9c2ddcc69f593712b0e2d12a1d1bb8c7d GIT binary patch literal 37774 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/Implicits.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/Implicits.scala deleted file mode 100644 index 79235573f..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/Implicits.scala +++ /dev/null @@ -1,140 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.algebird.DecayedValueMonoid -import com.twitter.algebird.Monoid -import com.twitter.algebird_internal.injection.AlgebirdImplicits -import com.twitter.algebird_internal.thriftscala.{DecayedValue => ThriftDecayedValue} -import com.twitter.bijection.Bufferable -import com.twitter.bijection.Injection -import com.twitter.bijection.scrooge.CompactScalaCodec -import com.twitter.simclusters_v2.summingbird.common.Monoids.ClustersWithScoresMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.MultiModelClustersWithScoresMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.MultiModelPersistentSimClustersEmbeddingLongestL2NormMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.MultiModelPersistentSimClustersEmbeddingMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.MultiModelTopKTweetsWithScoresMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.PersistentSimClustersEmbeddingLongestL2NormMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.PersistentSimClustersEmbeddingMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.ScoresMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.TopKClustersWithScoresMonoid -import com.twitter.simclusters_v2.summingbird.common.Monoids.TopKTweetsWithScoresMonoid -import com.twitter.simclusters_v2.thriftscala.FullClusterIdBucket -import com.twitter.simclusters_v2.thriftscala._ -import com.twitter.summingbird.batch.Batcher -import com.twitter.tweetypie.thriftscala.StatusCounts - -object Implicits { - - // -------------------- Monoids -------------------- // - implicit val decayedValueMonoid: DecayedValueMonoid = DecayedValueMonoid(0.0) - - implicit val thriftDecayedValueMonoid: ThriftDecayedValueMonoid = - new ThriftDecayedValueMonoid(Configs.HalfLifeInMs)(decayedValueMonoid) - - implicit val scoresMonoid: ScoresMonoid = new Monoids.ScoresMonoid() - - implicit val clustersWithScoreMonoid: ClustersWithScoresMonoid = - new Monoids.ClustersWithScoresMonoid()(scoresMonoid) - - implicit val multiModelClustersWithScoresMonoid: Monoid[MultiModelClustersWithScores] = - new MultiModelClustersWithScoresMonoid() - - implicit val topKClustersWithScoresMonoid: Monoid[TopKClustersWithScores] = - new TopKClustersWithScoresMonoid( - Configs.topKClustersPerEntity, - Configs.scoreThresholdForEntityTopKClustersCache - )(thriftDecayedValueMonoid) - - implicit val topKTweetsWithScoresMonoid: Monoid[TopKTweetsWithScores] = - new TopKTweetsWithScoresMonoid( - Configs.topKTweetsPerCluster, - Configs.scoreThresholdForClusterTopKTweetsCache, - Configs.OldestTweetFavEventTimeInMillis - )(thriftDecayedValueMonoid) - - implicit val topKTweetsWithScoresLightMonoid: Monoid[TopKTweetsWithScores] = - new TopKTweetsWithScoresMonoid( - Configs.topKTweetsPerCluster, - Configs.scoreThresholdForClusterTopKTweetsCache, - Configs.OldestTweetInLightIndexInMillis - )(thriftDecayedValueMonoid) - - implicit val MultiModeltopKTweetsWithScoresMonoid: Monoid[MultiModelTopKTweetsWithScores] = - new MultiModelTopKTweetsWithScoresMonoid( - )(thriftDecayedValueMonoid) - - implicit val persistentSimClustersEmbeddingMonoid: Monoid[PersistentSimClustersEmbedding] = - new PersistentSimClustersEmbeddingMonoid() - - implicit val persistentSimClustersEmbeddingLongestL2NormMonoid: Monoid[ - PersistentSimClustersEmbedding - ] = - new PersistentSimClustersEmbeddingLongestL2NormMonoid() - - implicit val multiModelPersistentSimClustersEmbeddingMonoid: Monoid[ - MultiModelPersistentSimClustersEmbedding - ] = - new MultiModelPersistentSimClustersEmbeddingMonoid() - - implicit val multiModelPersistentSimClustersEmbeddingLongestL2NormMonoid: Monoid[ - MultiModelPersistentSimClustersEmbedding - ] = new MultiModelPersistentSimClustersEmbeddingLongestL2NormMonoid() - - // -------------------- Codecs -------------------- // - implicit val longIntPairCodec: Injection[(Long, Int), Array[Byte]] = - Bufferable.injectionOf[(Long, Int)] - - implicit val simClusterEntityCodec: Injection[SimClusterEntity, Array[Byte]] = - CompactScalaCodec(SimClusterEntity) - - implicit val fullClusterIdBucket: Injection[FullClusterIdBucket, Array[Byte]] = - CompactScalaCodec(FullClusterIdBucket) - - implicit val clustersWithScoresCodec: Injection[ClustersWithScores, Array[Byte]] = - CompactScalaCodec(ClustersWithScores) - - implicit val topKClustersKeyCodec: Injection[EntityWithVersion, Array[Byte]] = - CompactScalaCodec(EntityWithVersion) - - implicit val topKClustersWithScoresCodec: Injection[TopKClustersWithScores, Array[Byte]] = - CompactScalaCodec(TopKClustersWithScores) - - implicit val fullClusterIdCodec: Injection[FullClusterId, Array[Byte]] = - CompactScalaCodec(FullClusterId) - - implicit val topKEntitiesWithScoresCodec: Injection[TopKEntitiesWithScores, Array[Byte]] = - CompactScalaCodec(TopKEntitiesWithScores) - - implicit val topKTweetsWithScoresCodec: Injection[TopKTweetsWithScores, Array[Byte]] = - CompactScalaCodec(TopKTweetsWithScores) - - implicit val pairedArrayBytesCodec: Injection[(Array[Byte], Array[Byte]), Array[Byte]] = - Bufferable.injectionOf[(Array[Byte], Array[Byte])] - - implicit val entityWithClusterInjection: Injection[(SimClusterEntity, FullClusterIdBucket), Array[ - Byte - ]] = - Injection - .connect[(SimClusterEntity, FullClusterIdBucket), (Array[Byte], Array[Byte]), Array[Byte]] - - implicit val topKClustersCodec: Injection[TopKClusters, Array[Byte]] = - CompactScalaCodec(TopKClusters) - - implicit val topKTweetsCodec: Injection[TopKTweets, Array[Byte]] = - CompactScalaCodec(TopKTweets) - - implicit val simClustersEmbeddingCodec: Injection[SimClustersEmbedding, Array[Byte]] = - CompactScalaCodec(SimClustersEmbedding) - - implicit val persistentSimClustersEmbeddingCodec: Injection[PersistentSimClustersEmbedding, Array[ - Byte - ]] = - CompactScalaCodec(PersistentSimClustersEmbedding) - - implicit val statusCountsCodec: Injection[StatusCounts, Array[Byte]] = - CompactScalaCodec(StatusCounts) - - implicit val thriftDecayedValueCodec: Injection[ThriftDecayedValue, Array[Byte]] = - AlgebirdImplicits.decayedValueCodec - - implicit val batcher: Batcher = Batcher.unit -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/ModelVersionProfile.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/ModelVersionProfile.docx new file mode 100644 index 0000000000000000000000000000000000000000..175c2112301460d8169c555f26f671f8e60cb2ca GIT binary patch literal 37188 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/ModelVersionProfile.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/ModelVersionProfile.scala deleted file mode 100644 index ad2c56386..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/ModelVersionProfile.scala +++ /dev/null @@ -1,40 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.util.Duration -import com.twitter.conversions.DurationOps._ -import com.twitter.simclusters_v2.thriftscala.ModelVersion - -case class ModelVersionProfile( - modelVersion: ModelVersion, - usingLogFavScore: Boolean, - // redundant in the current models because the above parameter does the same currently. - coreEmbeddingType: EmbeddingType, - favScoreThresholdForUserInterest: Double, - // these values are shared between all profiles so lets set up defaults - halfLife: Duration = 8.hours, - scoreThresholdForEntityTopKClustersCache: Double = 0.2, - scoreThresholdForTweetTopKClustersCache: Double = 0.02, - scoreThresholdForClusterTopKTweetsCache: Double = 0.001, - scoreThresholdForClusterTopKEntitiesCache: Double = 0.001) - -object ModelVersionProfiles { - final val ModelVersion20M145KUpdated = ModelVersionProfile( - ModelVersion.Model20m145kUpdated, - usingLogFavScore = true, - coreEmbeddingType = EmbeddingType.LogFavBasedTweet, - favScoreThresholdForUserInterest = 1.0 - ) - - final val ModelVersion20M145K2020 = ModelVersionProfile( - ModelVersion.Model20m145k2020, - usingLogFavScore = true, - coreEmbeddingType = EmbeddingType.LogFavBasedTweet, - favScoreThresholdForUserInterest = 0.3 - ) - - final val ModelVersionProfiles: Map[ModelVersion, ModelVersionProfile] = Map( - ModelVersion.Model20m145kUpdated -> ModelVersion20M145KUpdated, - ModelVersion.Model20m145k2020 -> ModelVersion20M145K2020 - ) -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/Monoids.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/Monoids.docx new file mode 100644 index 0000000000000000000000000000000000000000..c9760504de3aa8bf563450b094246be73950b3dd GIT binary patch literal 40580 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 ThriftDecayedValue} -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.ClustersWithScores -import com.twitter.simclusters_v2.thriftscala.MultiModelClustersWithScores -import com.twitter.simclusters_v2.thriftscala.MultiModelTopKTweetsWithScores -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.simclusters_v2.thriftscala.MultiModelPersistentSimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.PersistentSimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.Scores -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingMetadata -import com.twitter.simclusters_v2.thriftscala.TopKClustersWithScores -import com.twitter.simclusters_v2.thriftscala.TopKTweetsWithScores -import com.twitter.simclusters_v2.thriftscala.{SimClustersEmbedding => ThriftSimClustersEmbedding} -import com.twitter.snowflake.id.SnowflakeId -import scala.collection.mutable - -/** - * Contains various monoids used in the EntityJob - */ -object Monoids { - - class ScoresMonoid(implicit thriftDecayedValueMonoid: ThriftDecayedValueMonoid) - extends Monoid[Scores] { - - private val optionalThriftDecayedValueMonoid = - new OptionMonoid[ThriftDecayedValue]() - - override val zero: Scores = Scores() - - override def plus(x: Scores, y: Scores): Scores = { - Scores( - optionalThriftDecayedValueMonoid.plus( - x.favClusterNormalized8HrHalfLifeScore, - y.favClusterNormalized8HrHalfLifeScore - ), - optionalThriftDecayedValueMonoid.plus( - x.followClusterNormalized8HrHalfLifeScore, - y.followClusterNormalized8HrHalfLifeScore - ) - ) - } - } - - class ClustersWithScoresMonoid(implicit scoresMonoid: ScoresMonoid) - extends Monoid[ClustersWithScores] { - - private val optionMapMonoid = - new OptionMonoid[collection.Map[Int, Scores]]()(new ScMapMonoid[Int, Scores]()) - - override val zero: ClustersWithScores = ClustersWithScores() - - override def plus(x: ClustersWithScores, y: ClustersWithScores): ClustersWithScores = { - ClustersWithScores( - optionMapMonoid.plus(x.clustersToScore, y.clustersToScore) - ) - } - } - - class MultiModelClustersWithScoresMonoid(implicit scoresMonoid: ScoresMonoid) - extends Monoid[MultiModelClustersWithScores] { - - override val zero: MultiModelClustersWithScores = MultiModelClustersWithScores() - - override def plus( - x: MultiModelClustersWithScores, - y: MultiModelClustersWithScores - ): MultiModelClustersWithScores = { - // We reuse the logic from the Monoid for the Value here - val clustersWithScoreMonoid = Implicits.clustersWithScoreMonoid - - MultiModelClustersWithScores( - MultiModelUtils.mergeTwoMultiModelMaps( - x.multiModelClustersWithScores, - y.multiModelClustersWithScores, - clustersWithScoreMonoid)) - } - } - - class TopKClustersWithScoresMonoid( - topK: Int, - threshold: Double - )( - implicit thriftDecayedValueMonoid: ThriftDecayedValueMonoid) - extends Monoid[TopKClustersWithScores] { - - override val zero: TopKClustersWithScores = TopKClustersWithScores() - - override def plus( - x: TopKClustersWithScores, - y: TopKClustersWithScores - ): TopKClustersWithScores = { - - val mergedFavMap = TopKScoresUtils - .mergeTwoTopKMapWithDecayedValues( - x.topClustersByFavClusterNormalizedScore - .map(_.mapValues( - _.favClusterNormalized8HrHalfLifeScore.getOrElse(thriftDecayedValueMonoid.zero))), - y.topClustersByFavClusterNormalizedScore - .map(_.mapValues( - _.favClusterNormalized8HrHalfLifeScore.getOrElse(thriftDecayedValueMonoid.zero))), - topK, - threshold - ).map(_.mapValues(decayedValue => - Scores(favClusterNormalized8HrHalfLifeScore = Some(decayedValue)))) - - val mergedFollowMap = TopKScoresUtils - .mergeTwoTopKMapWithDecayedValues( - x.topClustersByFollowClusterNormalizedScore - .map(_.mapValues( - _.followClusterNormalized8HrHalfLifeScore.getOrElse(thriftDecayedValueMonoid.zero))), - y.topClustersByFollowClusterNormalizedScore - .map(_.mapValues( - _.followClusterNormalized8HrHalfLifeScore.getOrElse(thriftDecayedValueMonoid.zero))), - topK, - threshold - ).map(_.mapValues(decayedValue => - Scores(followClusterNormalized8HrHalfLifeScore = Some(decayedValue)))) - - TopKClustersWithScores( - mergedFavMap, - mergedFollowMap - ) - } - } - class TopKTweetsWithScoresMonoid( - topK: Int, - threshold: Double, - tweetAgeThreshold: Long - )( - implicit thriftDecayedValueMonoid: ThriftDecayedValueMonoid) - extends Monoid[TopKTweetsWithScores] { - - override val zero: TopKTweetsWithScores = TopKTweetsWithScores() - - override def plus(x: TopKTweetsWithScores, y: TopKTweetsWithScores): TopKTweetsWithScores = { - val oldestTweetId = SnowflakeId.firstIdFor(System.currentTimeMillis() - tweetAgeThreshold) - - val mergedFavMap = TopKScoresUtils - .mergeTwoTopKMapWithDecayedValues( - x.topTweetsByFavClusterNormalizedScore - .map(_.mapValues( - _.favClusterNormalized8HrHalfLifeScore.getOrElse(thriftDecayedValueMonoid.zero))), - y.topTweetsByFavClusterNormalizedScore - .map(_.mapValues( - _.favClusterNormalized8HrHalfLifeScore.getOrElse(thriftDecayedValueMonoid.zero))), - topK, - threshold - ).map(_.filter(_._1 >= oldestTweetId).mapValues(decayedValue => - Scores(favClusterNormalized8HrHalfLifeScore = Some(decayedValue)))) - - TopKTweetsWithScores(mergedFavMap, None) - } - } - - class MultiModelTopKTweetsWithScoresMonoid( - )( - implicit thriftDecayedValueMonoid: ThriftDecayedValueMonoid) - extends Monoid[MultiModelTopKTweetsWithScores] { - override val zero: MultiModelTopKTweetsWithScores = MultiModelTopKTweetsWithScores() - - override def plus( - x: MultiModelTopKTweetsWithScores, - y: MultiModelTopKTweetsWithScores - ): MultiModelTopKTweetsWithScores = { - // We reuse the logic from the Monoid for the Value here - val topKTweetsWithScoresMonoid = Implicits.topKTweetsWithScoresMonoid - - MultiModelTopKTweetsWithScores( - MultiModelUtils.mergeTwoMultiModelMaps( - x.multiModelTopKTweetsWithScores, - y.multiModelTopKTweetsWithScores, - topKTweetsWithScoresMonoid)) - } - - } - - /** - * Merge two PersistentSimClustersEmbedding. The latest embedding overwrite the old embedding. - * The new count equals to the sum of the count. - */ - class PersistentSimClustersEmbeddingMonoid extends Monoid[PersistentSimClustersEmbedding] { - - override val zero: PersistentSimClustersEmbedding = PersistentSimClustersEmbedding( - ThriftSimClustersEmbedding(), - SimClustersEmbeddingMetadata() - ) - - private val optionLongMonoid = new OptionMonoid[Long]() - - override def plus( - x: PersistentSimClustersEmbedding, - y: PersistentSimClustersEmbedding - ): PersistentSimClustersEmbedding = { - val latest = - if (x.metadata.updatedAtMs.getOrElse(0L) > y.metadata.updatedAtMs.getOrElse(0L)) x else y - latest.copy( - metadata = latest.metadata.copy( - updatedCount = optionLongMonoid.plus(x.metadata.updatedCount, y.metadata.updatedCount))) - } - } - - class MultiModelPersistentSimClustersEmbeddingMonoid - extends Monoid[MultiModelPersistentSimClustersEmbedding] { - - override val zero: MultiModelPersistentSimClustersEmbedding = - MultiModelPersistentSimClustersEmbedding(Map[ModelVersion, PersistentSimClustersEmbedding]()) - - override def plus( - x: MultiModelPersistentSimClustersEmbedding, - y: MultiModelPersistentSimClustersEmbedding - ): MultiModelPersistentSimClustersEmbedding = { - val monoid = Implicits.persistentSimClustersEmbeddingMonoid - - // PersistentSimClustersEmbeddings is the only required thrift object so we need to wrap it - // in Some - MultiModelUtils.mergeTwoMultiModelMaps( - Some(x.multiModelPersistentSimClustersEmbedding), - Some(y.multiModelPersistentSimClustersEmbedding), - monoid) match { - // clean up the empty embeddings - case Some(res) => - MultiModelPersistentSimClustersEmbedding(res.flatMap { - // in some cases the list of SimClustersScore is empty, so we want to remove the - // modelVersion from the list of Models for the embedding - case (modelVersion, persistentSimClustersEmbedding) => - persistentSimClustersEmbedding.embedding.embedding match { - case embedding if embedding.nonEmpty => - Map(modelVersion -> persistentSimClustersEmbedding) - case _ => - None - } - }) - case _ => zero - } - } - } - - /** - * Merge two PersistentSimClustersEmbeddings. The embedding with the longest l2 norm overwrites - * the other embedding. The new count equals to the sum of the count. - */ - class PersistentSimClustersEmbeddingLongestL2NormMonoid - extends Monoid[PersistentSimClustersEmbedding] { - - override val zero: PersistentSimClustersEmbedding = PersistentSimClustersEmbedding( - ThriftSimClustersEmbedding(), - SimClustersEmbeddingMetadata() - ) - - override def plus( - x: PersistentSimClustersEmbedding, - y: PersistentSimClustersEmbedding - ): PersistentSimClustersEmbedding = { - if (SimClustersEmbedding(x.embedding).l2norm >= SimClustersEmbedding(y.embedding).l2norm) x - else y - } - } - - class MultiModelPersistentSimClustersEmbeddingLongestL2NormMonoid - extends Monoid[MultiModelPersistentSimClustersEmbedding] { - - override val zero: MultiModelPersistentSimClustersEmbedding = - MultiModelPersistentSimClustersEmbedding(Map[ModelVersion, PersistentSimClustersEmbedding]()) - - override def plus( - x: MultiModelPersistentSimClustersEmbedding, - y: MultiModelPersistentSimClustersEmbedding - ): MultiModelPersistentSimClustersEmbedding = { - val monoid = Implicits.persistentSimClustersEmbeddingLongestL2NormMonoid - - MultiModelUtils.mergeTwoMultiModelMaps( - Some(x.multiModelPersistentSimClustersEmbedding), - Some(y.multiModelPersistentSimClustersEmbedding), - monoid) match { - // clean up empty embeddings - case Some(res) => - MultiModelPersistentSimClustersEmbedding(res.flatMap { - case (modelVersion, persistentSimClustersEmbedding) => - // in some cases the list of SimClustersScore is empty, so we want to remove the - // modelVersion from the list of Models for the embedding - persistentSimClustersEmbedding.embedding.embedding match { - case embedding if embedding.nonEmpty => - Map(modelVersion -> persistentSimClustersEmbedding) - case _ => - None - } - }) - case _ => zero - } - } - } - - object TopKScoresUtils { - - /** - * Function for merging TopK scores with decayed values. - * - * This is for use with topk scores where all scores are updated at the same time (i.e. most - * time-decayed embedding aggregations). Rather than storing individual scores as algebird.DecayedValue - * and replicating time information for every key, we can store a single timestamp for the entire - * embedding and replicate the decay logic when processing each score. - * - * This should replicate the behaviour of `mergeTwoTopKMapWithDecayedValues` - * - * The logic is: - * - Determine the most recent update and build a DecayedValue for it (decayedValueForLatestTime) - * - For each (cluster, score), decay the score relative to the time of the most-recently updated embedding - * - This is a no-op for scores from the most recently-updated embedding, and will scale scores - * for the older embedding. - * - Drop any (cluster, score) which are below the `threshold` score - * - If both input embeddings contribute a score for the same cluster, keep the one with the largest score (after scaling) - * - Sort (cluster, score) by score and keep the `topK` - * - */ - def mergeClusterScoresWithUpdateTimes[Key]( - x: Seq[(Key, Double)], - xUpdatedAtMs: Long, - y: Seq[(Key, Double)], - yUpdatedAtMs: Long, - halfLifeMs: Long, - topK: Int, - threshold: Double - ): Seq[(Key, Double)] = { - val latestUpdate = math.max(xUpdatedAtMs, yUpdatedAtMs) - val decayedValueForLatestTime = DecayedValue.build(0.0, latestUpdate, halfLifeMs) - - val merged = mutable.HashMap[Key, Double]() - - x.foreach { - case (key, score) => - val decayedScore = Implicits.decayedValueMonoid - .plus( - DecayedValue.build(score, xUpdatedAtMs, halfLifeMs), - decayedValueForLatestTime - ).value - if (decayedScore > threshold) - merged += key -> decayedScore - } - - y.foreach { - case (key, score) => - val decayedScore = Implicits.decayedValueMonoid - .plus( - DecayedValue.build(score, yUpdatedAtMs, halfLifeMs), - decayedValueForLatestTime - ).value - if (decayedScore > threshold) - merged.get(key) match { - case Some(existingValue) => - if (decayedScore > existingValue) - merged += key -> decayedScore - case None => - merged += key -> decayedScore - } - } - - merged.toSeq - .sortBy(-_._2) - .take(topK) - } - - /** - * Function for merging to TopK map with decayed values. - * - * First of all, all the values will be decayed to the latest scaled timestamp to be comparable. - * - * If the same key appears at both a and b, the one with larger scaled time (or larger value when - * their scaled times are same) will be taken. The values smaller than the threshold will be dropped. - * - * After merging, if the size is larger than TopK, only scores with topK largest value will be kept. - */ - def mergeTwoTopKMapWithDecayedValues[T]( - a: Option[collection.Map[T, ThriftDecayedValue]], - b: Option[collection.Map[T, ThriftDecayedValue]], - topK: Int, - threshold: Double - )( - implicit thriftDecayedValueMonoid: ThriftDecayedValueMonoid - ): Option[collection.Map[T, ThriftDecayedValue]] = { - - if (a.isEmpty || a.exists(_.isEmpty)) { - return b - } - - if (b.isEmpty || b.exists(_.isEmpty)) { - return a - } - - val latestScaledTime = (a.get.view ++ b.get.view).map { - case (_, scores) => - scores.scaledTime - }.max - - val decayedValueWithLatestScaledTime = ThriftDecayedValue(0.0, latestScaledTime) - - val merged = mutable.HashMap[T, ThriftDecayedValue]() - - a.foreach { - _.foreach { - case (k, v) => - // decay the value to latest scaled time - val decayedScores = thriftDecayedValueMonoid - .plus(v, decayedValueWithLatestScaledTime) - - // only merge if the value is larger than the threshold - if (decayedScores.value > threshold) { - merged += k -> decayedScores - } - } - } - - b.foreach { - _.foreach { - case (k, v) => - val decayedScores = thriftDecayedValueMonoid - .plus(v, decayedValueWithLatestScaledTime) - - // only merge if the value is larger than the threshold - if (decayedScores.value > threshold) { - if (!merged.contains(k)) { - merged += k -> decayedScores - } else { - // only update if the value is larger than the one already merged - if (decayedScores.value > merged(k).value) { - merged.update(k, decayedScores) - } - } - } - } - } - - // add some buffer size (~ 0.2 * topK) to avoid sorting and taking too frequently - if (merged.size > topK * 1.2) { - Some( - merged.toSeq - .sortBy { case (_, scores) => scores.value * -1 } - .take(topK) - .toMap - ) - } else { - Some(merged) - } - } - } - - object MultiModelUtils { - - /** - * In order to reduce complexity we use the Monoid for the value to plus two MultiModel maps - */ - def mergeTwoMultiModelMaps[T]( - a: Option[collection.Map[ModelVersion, T]], - b: Option[collection.Map[ModelVersion, T]], - monoid: Monoid[T] - ): Option[collection.Map[ModelVersion, T]] = { - (a, b) match { - case (Some(_), None) => a - case (None, Some(_)) => b - case (Some(aa), Some(bb)) => - val res = ModelVersionProfiles.ModelVersionProfiles.foldLeft(Map[ModelVersion, T]()) { - (map, model) => - map + (model._1 -> monoid.plus( - aa.getOrElse(model._1, monoid.zero), - bb.getOrElse(model._1, monoid.zero) - )) - } - Some(res) - case _ => None - } - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersEmbeddingWithMetadataMonoid.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersEmbeddingWithMetadataMonoid.docx new file mode 100644 index 0000000000000000000000000000000000000000..8058ab5f9c91a9de0bf5a269ee9b7e4765d9434a GIT binary patch literal 37447 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 ThriftSimClustersEmbedding -} - -/** - * Decayed aggregation of embeddings. - * - * When merging 2 embeddings, the older embedding's scores are scaled by time. If a cluster is - * present in both embeddings, the highest score (after scaling) is used in the result. - * - * @halfLifeMs - defines how quickly a score decays - * @topK - only the topk clusters with the highest scores are retained in the result - * @threshold - any clusters with weights below threshold are excluded from the result - */ -class SimClustersEmbeddingWithMetadataMonoid( - halfLifeMs: Long, - topK: Int, - threshold: Double) - extends Monoid[SimClustersEmbeddingWithMetadata] { - - override val zero: SimClustersEmbeddingWithMetadata = SimClustersEmbeddingWithMetadata( - ThriftSimClustersEmbedding(), - SimClustersEmbeddingMetadata() - ) - - private val optionLongMonoid = new OptionMonoid[Long]() - private val optionMaxMonoid = - new OptionMonoid[Long]()(com.twitter.algebird.Max.maxSemigroup[Long]) - - override def plus( - x: SimClustersEmbeddingWithMetadata, - y: SimClustersEmbeddingWithMetadata - ): SimClustersEmbeddingWithMetadata = { - - val mergedClusterScores = TopKScoresUtils.mergeClusterScoresWithUpdateTimes( - x = SimClustersEmbedding(x.embedding).embedding, - xUpdatedAtMs = x.metadata.updatedAtMs.getOrElse(0), - y = SimClustersEmbedding(y.embedding).embedding, - yUpdatedAtMs = y.metadata.updatedAtMs.getOrElse(0), - halfLifeMs = halfLifeMs, - topK = topK, - threshold = threshold - ) - SimClustersEmbeddingWithMetadata( - embedding = SimClustersEmbedding(mergedClusterScores).toThrift, - metadata = SimClustersEmbeddingMetadata( - updatedAtMs = optionMaxMonoid.plus(x.metadata.updatedAtMs, y.metadata.updatedAtMs), - updatedCount = optionLongMonoid.plus(x.metadata.updatedCount, y.metadata.updatedCount) - ) - ) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersHashUtil.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersHashUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..d3f3bb507c1aedaa6dec7747587684f84778ccb1 GIT binary patch literal 36850 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ΞG%zxuWH1jWP)P$Kpg3l*?{;L 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersHashUtil.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersHashUtil.scala deleted file mode 100644 index fff4bb851..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersHashUtil.scala +++ /dev/null @@ -1,14 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -/** - * Provides int to int hash function. Used to batch clusterIds together. - */ -object SimClustersHashUtil { - def clusterIdToBucket(clusterId: Int): Int = { - clusterId % numBuckets - } - - val numBuckets: Int = 200 - - val getAllBuckets: Seq[Int] = 0.until(numBuckets) -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersInterestedInUtil.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersInterestedInUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..b3b825f0a0f1c4ffd3a6ce34a65349645d4c0c7a GIT binary patch literal 37446 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 - val favScore = scores.favScore.getOrElse(0.0) - val normalizedFavScore = scores.favScoreClusterNormalizedOnly.getOrElse(0.0) - val normalizedFollowScore = scores.followScoreClusterNormalizedOnly.getOrElse(0.0) - val normalizedLogFavScore = scores.logFavScoreClusterNormalizedOnly.getOrElse(0.0) - - ( - clusterId, - InterestedInScores( - favScore, - normalizedFavScore, - normalizedFollowScore, - normalizedLogFavScore)) - } - } - - def buildClusterWithScores( - clusterScores: Seq[(ClusterId, InterestedInScores)], - timeInMs: Double, - favScoreThresholdForUserInterest: Double - )( - implicit thriftDecayedValueMonoid: ThriftDecayedValueMonoid - ): ClustersWithScores = { - val scoresMap = clusterScores.collect { - case ( - clusterId, - InterestedInScores( - favScore, - _, - _, - clusterNormalizedLogFavScore)) - // NOTE: the threshold is on favScore, and the computation is on normalizedFavScore - // This threshold reduces the number of unique keys in the cache by 80%, - // based on offline analysis - if favScore >= favScoreThresholdForUserInterest => - - val favClusterNormalized8HrHalfLifeScoreOpt = - Some(thriftDecayedValueMonoid.build(clusterNormalizedLogFavScore, timeInMs)) - - clusterId -> Scores(favClusterNormalized8HrHalfLifeScore = favClusterNormalized8HrHalfLifeScoreOpt) - }.toMap - - if (scoresMap.nonEmpty) { - ClustersWithScores(Some(scoresMap)) - } else { - EmptyClustersWithScores - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersProfile.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersProfile.docx new file mode 100644 index 0000000000000000000000000000000000000000..340fe868f543d8a2038340a92f388e1ebbe53231 GIT binary patch literal 38473 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 SM$r1G+6Hj|hQ~|N`q96!+y)T< literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersProfile.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersProfile.scala deleted file mode 100644 index ee58bbd67..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/SimClustersProfile.scala +++ /dev/null @@ -1,212 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.simclusters_v2.common.ModelVersions._ -import com.twitter.simclusters_v2.summingbird.common.ClientConfigs._ -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.AltSetting.AltSetting -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.Environment.Environment -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.JobType.JobType -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.AltSetting -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.JobType -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.ModelVersion - -sealed trait SimClustersProfile { - val env: Environment - val alt: AltSetting - val modelVersionStr: String - - lazy val modelVersion: ModelVersion = modelVersionStr -} - -sealed trait SimClustersJobProfile extends SimClustersProfile { - - val jobType: JobType - - final lazy val jobName: String = { - alt match { - case AltSetting.Alt => - s"simclusters_v2_${jobType}_alt_job_$env" - case AltSetting.Esc => - s"simclusters_v2_${jobType}_esc_job_$env" - case _ => - s"simclusters_v2_${jobType}_job_$env" - } - } - - // Build the serviceIdentifier by jobType, env and zone(dc) - final lazy val serviceIdentifier: String => ServiceIdentifier = { zone => - ServiceIdentifier(Configs.role, s"summingbird_$jobName", env.toString, zone) - } - - final lazy val favScoreThresholdForUserInterest: Double = - Configs.favScoreThresholdForUserInterest(modelVersionStr) - - lazy val timelineEventSourceSubscriberId: String = { - val jobTypeStr = jobType match { - case JobType.MultiModelTweet => "multi_model_tweet_" - case JobType.PersistentTweet => "persistent_tweet_" - case JobType.Tweet => "" - } - - val prefix = alt match { - case AltSetting.Alt => - "alt_" - case AltSetting.Esc => - "esc_" - case _ => - "" - } - - s"simclusters_v2_${jobTypeStr}summingbird_$prefix$env" - } - -} - -object SimClustersProfile { - - object JobType extends Enumeration { - type JobType = Value - val Tweet: JobType = Value("tweet") - val PersistentTweet: JobType = Value("persistent_tweet") - val MultiModelTweet: JobType = Value("multimodel_tweet") - } - - object Environment extends Enumeration { - type Environment = Value - val Prod: Environment = Value("prod") - val Devel: Environment = Value("devel") - - def apply(setting: String): Environment = { - if (setting == Prod.toString) { - Prod - } else { - Devel - } - } - } - - object AltSetting extends Enumeration { - type AltSetting = Value - val Normal: AltSetting = Value("normal") - val Alt: AltSetting = Value("alt") - val Esc: AltSetting = Value("esc") - - def apply(setting: String): AltSetting = { - - setting match { - case "alt" => Alt - case "esc" => Esc - case _ => Normal - } - } - } - - case class SimClustersTweetProfile( - env: Environment, - alt: AltSetting, - modelVersionStr: String, - entityClusterScorePath: String, - tweetTopKClustersPath: String, - clusterTopKTweetsPath: String, - coreEmbeddingType: EmbeddingType, - clusterTopKTweetsLightPath: Option[String] = None) - extends SimClustersJobProfile { - - final val jobType: JobType = JobType.Tweet - } - - case class PersistentTweetProfile( - env: Environment, - alt: AltSetting, - modelVersionStr: String, - persistentTweetStratoPath: String, - coreEmbeddingType: EmbeddingType) - extends SimClustersJobProfile { - final val jobType: JobType = JobType.PersistentTweet - } - - final val AltProdTweetJobProfile = SimClustersTweetProfile( - env = Environment.Prod, - alt = AltSetting.Alt, - modelVersionStr = Model20M145K2020, - entityClusterScorePath = simClustersCoreAltCachePath, - tweetTopKClustersPath = simClustersCoreAltCachePath, - clusterTopKTweetsPath = simClustersCoreAltCachePath, - clusterTopKTweetsLightPath = Some(simClustersCoreAltLightCachePath), - coreEmbeddingType = EmbeddingType.LogFavBasedTweet - ) - - final val AltDevelTweetJobProfile = SimClustersTweetProfile( - env = Environment.Devel, - alt = AltSetting.Alt, - modelVersionStr = Model20M145K2020, - // using the same devel cache with job - entityClusterScorePath = develSimClustersCoreCachePath, - tweetTopKClustersPath = develSimClustersCoreCachePath, - clusterTopKTweetsPath = develSimClustersCoreCachePath, - clusterTopKTweetsLightPath = Some(develSimClustersCoreLightCachePath), - coreEmbeddingType = EmbeddingType.LogFavBasedTweet, - ) - - final val ProdPersistentTweetProfile = PersistentTweetProfile( - env = Environment.Prod, - alt = AltSetting.Normal, - modelVersionStr = Model20M145K2020, - // This profile is used by the persistent tweet embedding job to update the embedding. We - // use the uncached column to avoid reading stale data - persistentTweetStratoPath = logFavBasedTweet20M145K2020UncachedStratoPath, - coreEmbeddingType = EmbeddingType.LogFavBasedTweet - ) - - final val DevelPersistentTweetProfile = PersistentTweetProfile( - env = Environment.Devel, - alt = AltSetting.Normal, - modelVersionStr = Model20M145K2020, - persistentTweetStratoPath = develLogFavBasedTweet20M145K2020StratoPath, - coreEmbeddingType = EmbeddingType.LogFavBasedTweet - ) - - def fetchTweetJobProfile( - env: Environment, - alt: AltSetting = AltSetting.Normal - ): SimClustersTweetProfile = { - (env, alt) match { - case (Environment.Prod, AltSetting.Alt) => AltProdTweetJobProfile - case (Environment.Devel, AltSetting.Alt) => AltDevelTweetJobProfile - case _ => throw new IllegalArgumentException("Invalid env or alt setting") - } - } - - def fetchPersistentJobProfile( - env: Environment, - alt: AltSetting = AltSetting.Normal - ): PersistentTweetProfile = { - (env, alt) match { - case (Environment.Prod, AltSetting.Normal) => ProdPersistentTweetProfile - case (Environment.Devel, AltSetting.Normal) => DevelPersistentTweetProfile - case _ => throw new IllegalArgumentException("Invalid env or alt setting") - } - } - - /** - * For short term, fav based tweet embedding and log fav based tweets embedding exists at the - * same time. We want to move to log fav based tweet embedding eventually. - * Follow based tweet embeddings exists in both environment. - * A uniform tweet embedding API is the future to replace the existing use case. - */ - final lazy val tweetJobProfileMap: Environment => Map[ - (EmbeddingType, String), - SimClustersTweetProfile - ] = { - case Environment.Prod => - Map( - (EmbeddingType.LogFavBasedTweet, Model20M145K2020) -> AltProdTweetJobProfile - ) - case Environment.Devel => - Map( - (EmbeddingType.LogFavBasedTweet, Model20M145K2020) -> AltDevelTweetJobProfile - ) - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/StatsUtil.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/StatsUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..1d9dab2d68a2d5f4003129e96f87eee8ff097cf6 GIT binary patch literal 36991 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/StatsUtil.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/StatsUtil.scala deleted file mode 100644 index 78a34fef2..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/StatsUtil.scala +++ /dev/null @@ -1,22 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.summingbird.{Counter, Group, Name, Platform, Producer} -import com.twitter.summingbird.option.JobId - -object StatsUtil { - - // for adding stats in Producer. - // this enables us to add new stats by just calling producer.observer("name") - implicit class EnrichedProducer[P <: Platform[P], T]( - producer: Producer[P, T] - )( - implicit jobId: JobId) { - def observe(counter: String): Producer[P, T] = { - val stat = Counter(Group(jobId.get), Name(counter)) - producer.map { v => - stat.incr() - v - } - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SummerWithSumValues.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/SummerWithSumValues.docx new file mode 100644 index 0000000000000000000000000000000000000000..cb045d207443d6a4461f023aacb3b286dc45cad4 GIT binary patch literal 37232 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/SummerWithSumValues.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/SummerWithSumValues.scala deleted file mode 100644 index e10718162..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/SummerWithSumValues.scala +++ /dev/null @@ -1,40 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.algebird.Monoid -import com.twitter.summingbird._ - -object SummerWithSumValues { - /* - A common pattern in heron is to use .sumByKeys to aggregate a value in a store, and then continue - processing with the aggregated value. Unfortunately, .sumByKeys returns the existing value from the - store and the delta separately, leaving you to manually combine them. - - Example without sumValues: - - someKeyedProducer - .sumByKeys(score)(monoid) - .map { - case (key, (existingValueOpt, delta)) => - // if you want the value that was actually written to the store, you have to combine - // existingValueOpt and delta yourself - } - - Example with sumValues: - - someKeyedProducer - .sumByKeys(score)(monoid) - .sumValues(monoid) - .map { - case (key, value) => - // `value` is the same as what was written to the store - } - */ - implicit class SummerWithSumValues[P <: Platform[P], K, V]( - summer: Summer[P, K, V]) { - def sumValues(monoid: Monoid[V]): KeyedProducer[P, K, V] = - summer.mapValues { - case (Some(oldV), deltaV) => monoid.plus(oldV, deltaV) - case (None, deltaV) => deltaV - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/ThriftDecayedValueMonoid.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/ThriftDecayedValueMonoid.docx new file mode 100644 index 0000000000000000000000000000000000000000..b39ed42d1c123e3b2fc7ee80e2dc391d52544ce4 GIT binary patch literal 37288 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 ThriftDecayedValue} - -/** - * Monoid for ThriftDecayedValue - */ -class ThriftDecayedValueMonoid(halfLifeInMs: Long)(implicit decayedValueMonoid: DecayedValueMonoid) - extends Monoid[ThriftDecayedValue] { - - override val zero: ThriftDecayedValue = DecayedValueImplicits.toThrift(decayedValueMonoid.zero) - - override def plus(x: ThriftDecayedValue, y: ThriftDecayedValue): ThriftDecayedValue = { - DecayedValueImplicits.toThrift( - decayedValueMonoid - .plus(DecayedValueImplicits.toThrift.invert(x), DecayedValueImplicits.toThrift.invert(y)) - ) - } - - def build(value: Double, timeInMs: Double): ThriftDecayedValue = { - DecayedValueImplicits.toThrift( - DecayedValue.build(value, timeInMs, halfLifeInMs) - ) - } - - /** - * decay to a timestamp; note that timestamp should be in Ms, and do not use scaledTime! - */ - def decayToTimestamp( - thriftDecayedValue: ThriftDecayedValue, - timestampInMs: Double - ): ThriftDecayedValue = { - this.plus(thriftDecayedValue, this.build(0.0, timestampInMs)) - } -} - -object ThriftDecayedValueMonoid { - // add the implicit class so that a decayed value can direct call .plus, .decayedValueOfTime and - // so on. - implicit class EnrichedThriftDecayedValue( - thriftDecayedValue: ThriftDecayedValue - )( - implicit thriftDecayedValueMonoid: ThriftDecayedValueMonoid) { - def plus(other: ThriftDecayedValue): ThriftDecayedValue = { - thriftDecayedValueMonoid.plus(thriftDecayedValue, other) - } - - // decay to a timestamp; note that timestamp should be in Ms - def decayToTimestamp(timeInMs: Double): ThriftDecayedValue = { - thriftDecayedValueMonoid.decayToTimestamp(thriftDecayedValue, timeInMs) - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/TweetEntityExtractor.docx b/src/scala/com/twitter/simclusters_v2/summingbird/common/TweetEntityExtractor.docx new file mode 100644 index 0000000000000000000000000000000000000000..f0bbf210c6e8fd007da945fdcad74e8d660de656 GIT binary patch literal 37484 zcmagFWmsIvwm*!!dvJGmcL)S`m!Lr#2@Z`1cMI;W!QEX$aCZp=cmH>0=A1Kg?!E8( zW%E!~>nCgNuByGeT3HSf3JVMj3=T{vjYqpuwJWjs|Jg|0 z!@=CyfZ5&7wjoJDX+;$6%h?NdGK(;&mjo(y*|r0%17jS%WOe!tug)UNi9E!^-8g@k z#40BvY>YWeqO07_*cO$i)gye~VL55a7Ib^YS{#qXMsRhrTR2-S?g3J!l>;Ozn zbB6c3DQ{Ar%tb_xe|)uUmW z9fnVPqsp!?4-$S-Sucys)S8(#=?Ja1n4xpo{BQr>ZNn>x1sq_xI>$|(7D~zEOepn1Oyqld-up8I# z8%F)Yr6KZ7wM{H0d4z+H=gsj*g52jOCrEFJPg2pRUD8O1)?c*W>;3}eY5ybiGTuFs zf7PALb4Ssh%Su3=sXSvco!(0lQ2}~a+{Y)cN5tatcap+A&kMzCdm^KEK=F{^D78#0c1GP+a<^pmTdbBs_F6!HiR^gK2 z+x^Mh)whFmY||ocC{RSrsqeTgG)aXS)-eb4=;}_V#j3<5jp*%UP)dSI6VR^_KhtWt z_%O`?U;xtcja=cyl`XrrZsGSLjh|(V{X~yq9njTM70uXic?(cv9Wk#ZWDlmI%VJwH za9SVRlt1Z}UoamAN+_urx>H`mOtfS4^IFym7Ed?tyx(V{q?pk1oV0LR4^;7Wm?Hkg z`Yq*5w;^WH2X16qkNfPO2@3s!sAdJa&8I;LLI)+t3}CA41aNR>F$Fl8|GvpH


    H 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/common/TweetEntityExtractor.scala b/src/scala/com/twitter/simclusters_v2/summingbird/common/TweetEntityExtractor.scala deleted file mode 100644 index bd6a81baa..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/common/TweetEntityExtractor.scala +++ /dev/null @@ -1,65 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.common - -import com.twitter.recos.entities.thriftscala.NamedEntity -import com.twitter.simclusters_v2.thriftscala.{ - NerKey, - PenguinKey, - SimClusterEntity, - TweetTextEntity -} -import com.twitter.taxi.util.text.{TweetFeatureExtractor, TweetTextFeatures} -import com.twitter.tweetypie.thriftscala.Tweet - -object TweetEntityExtractor { - - private val MaxHashtagsPerTweet: Int = 4 - - private val MaxNersPerTweet: Int = 4 - - private val MaxPenguinsPerTweet: Int = 4 - - private val tweetFeatureExtractor: TweetFeatureExtractor = TweetFeatureExtractor.Default - - private def extractTweetTextFeatures( - text: String, - languageCode: Option[String] - ): TweetTextFeatures = { - if (languageCode.isDefined) { - tweetFeatureExtractor.extract(text, languageCode.get) - } else { - tweetFeatureExtractor.extract(text) - } - } - - def extractEntitiesFromText( - tweet: Option[Tweet], - nerEntitiesOpt: Option[Seq[NamedEntity]] - ): Seq[SimClusterEntity.TweetEntity] = { - - val hashtagEntities = tweet - .flatMap(_.hashtags.map(_.map(_.text))).getOrElse(Nil) - .map { hashtag => TweetTextEntity.Hashtag(hashtag.toLowerCase) }.take(MaxHashtagsPerTweet) - - val nerEntities = nerEntitiesOpt - .getOrElse(Nil).map { namedEntity => - TweetTextEntity - .Ner(NerKey(namedEntity.namedEntity.toLowerCase, namedEntity.entityType.getValue)) - }.take(MaxNersPerTweet) - - val nerEntitySet = nerEntities.map(_.ner.textEntity).toSet - - val penguinEntities = - extractTweetTextFeatures( - tweet.flatMap(_.coreData.map(_.text)).getOrElse(""), - tweet.flatMap(_.language.map(_.language)) - ).phrases - .map(_.normalizedOrOriginal) - .filter { s => - s.charAt(0) != '#' && !nerEntitySet.contains(s) // not included in hashtags and NER - } - .map { penguinStr => TweetTextEntity.Penguin(PenguinKey(penguinStr.toLowerCase)) }.take( - MaxPenguinsPerTweet) - - (hashtagEntities ++ penguinEntities ++ nerEntities).map(e => SimClusterEntity.TweetEntity(e)) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/ApeTopicEmbeddingStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/ApeTopicEmbeddingStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..8460f16dbc393572457aad4ca25795a965eb9651 GIT binary patch literal 37179 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 Yt-}CsR$vYS ThriftSimClustersEmbedding} -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.Client - -object ApeTopicEmbeddingStore { - - private val logFavBasedAPEColumn20M145K2020 = - "recommendations/simclusters_v2/embeddings/logFavBasedAPE20M145K2020" - - private def getStore( - stratoClient: Client, - column: String - ): ReadableStore[SimClustersEmbeddingId, ThriftSimClustersEmbedding] = { - StratoStore - .withUnitView[SimClustersEmbeddingId, ThriftSimClustersEmbedding](stratoClient, column) - } - - def getFavBasedLocaleEntityEmbedding2020Store( - stratoClient: Client, - ): ReadableStore[TopicId, SimClustersEmbedding] = { - - getStore(stratoClient, logFavBasedAPEColumn20M145K2020) - .composeKeyMapping[TopicId] { topicId => - SimClustersEmbeddingId( - EmbeddingType.LogFavBasedKgoApeTopic, - ModelVersions.Model20M145K2020, - InternalId.TopicId(topicId) - ) - } - .mapValues(SimClustersEmbedding(_)) - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/BUILD b/src/scala/com/twitter/simclusters_v2/summingbird/stores/BUILD deleted file mode 100644 index 9e78da7c4..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -scala_library( - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/algebird:core", - "3rdparty/jvm/com/twitter/algebird:util", - "3rdparty/jvm/com/twitter/bijection:core", - "3rdparty/jvm/com/twitter/bijection:util", - "3rdparty/jvm/com/twitter/storehaus:core", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/store/strato", - "relevance-platform/src/main/scala/com/twitter/relevance_platform/simclustersann/multicluster", - "src/scala/com/twitter/algebird_internal/injection", - "src/scala/com/twitter/simclusters_v2/common", - "src/scala/com/twitter/simclusters_v2/summingbird/common", - "src/scala/com/twitter/storehaus_internal/manhattan", - "src/scala/com/twitter/storehaus_internal/manhattan/config", - "src/scala/com/twitter/storehaus_internal/memcache", - "src/scala/com/twitter/storehaus_internal/memcache/config", - "src/scala/com/twitter/storehaus_internal/offline", - "src/scala/com/twitter/storehaus_internal/online", - "src/scala/com/twitter/storehaus_internal/util", - "src/scala/com/twitter/summingbird_internal/bijection:bijection-implicits", - "src/scala/com/twitter/summingbird_internal/runner/store_config", - "src/scala/com/twitter/wtf/summingbird/sources/common", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - "src/thrift/com/twitter/timelineservice/server/internal:thrift-scala", - "src/thrift/com/twitter/wtf/interest:interest-thrift-scala", - "src/thrift/com/twitter/wtf/utt:utt-scala", - "strato/src/main/scala/com/twitter/strato/client", - "strato/src/main/scala/com/twitter/strato/mh", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/BUILD.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..d1f9429393a69047d9dfab06eea23bacdcf3411e GIT binary patch literal 37041 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 YYU?n-n-!RYK)FhgArY88eEUE=0NO|-{r~^~ literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/ClusterDetailsReadableStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/ClusterDetailsReadableStore.scala deleted file mode 100644 index a553e7ff8..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/ClusterDetailsReadableStore.scala +++ /dev/null @@ -1,67 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.bijection.{Bufferable, Injection} -import com.twitter.bijection.scrooge.CompactScalaCodec -import com.twitter.simclusters_v2.common.ModelVersions -import com.twitter.simclusters_v2.thriftscala.ClusterDetails -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.{Athena, ManhattanRO, ManhattanROConfig} -import com.twitter.storehaus_internal.util.{ApplicationID, DatasetName, HDFSPath} -import com.twitter.util.{Future, Memoize} - -object ClusterDetailsReadableStore { - - val modelVersionToDatasetMap: Map[String, String] = Map( - ModelVersions.Model20M145KDec11 -> "simclusters_v2_cluster_details", - ModelVersions.Model20M145KUpdated -> "simclusters_v2_cluster_details_20m_145k_updated", - ModelVersions.Model20M145K2020 -> "simclusters_v2_cluster_details_20m_145k_2020" - ) - - val knownModelVersions: String = modelVersionToDatasetMap.keys.mkString(",") - - private val clusterDetailsStores = - Memoize[(ManhattanKVClientMtlsParams, String), ReadableStore[(String, Int), ClusterDetails]] { - case (mhMtlsParams: ManhattanKVClientMtlsParams, datasetName: String) => - getForDatasetName(mhMtlsParams, datasetName) - } - - def getForDatasetName( - mhMtlsParams: ManhattanKVClientMtlsParams, - datasetName: String - ): ReadableStore[(String, Int), ClusterDetails] = { - implicit val keyInjection: Injection[(String, Int), Array[Byte]] = - Bufferable.injectionOf[(String, Int)] - implicit val valueInjection: Injection[ClusterDetails, Array[Byte]] = - CompactScalaCodec(ClusterDetails) - - ManhattanRO.getReadableStoreWithMtls[(String, Int), ClusterDetails]( - ManhattanROConfig( - HDFSPath(""), // not needed - ApplicationID("simclusters_v2"), - DatasetName(datasetName), // this should be correct - Athena - ), - mhMtlsParams - ) - } - - def apply( - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[(String, Int), ClusterDetails] = { - new ReadableStore[(String, Int), ClusterDetails] { - override def get(modelVersionAndClusterId: (String, Int)): Future[Option[ClusterDetails]] = { - val (modelVersion, _) = modelVersionAndClusterId - modelVersionToDatasetMap.get(modelVersion) match { - case Some(datasetName) => - clusterDetailsStores((mhMtlsParams, datasetName)).get(modelVersionAndClusterId) - case None => - Future.exception( - new IllegalArgumentException( - "Unknown model version " + modelVersion + ". Known modelVersions: " + knownModelVersions) - ) - } - } - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/EntityClusterScoreReadableStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/EntityClusterScoreReadableStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..0cc5f6eae14dff21f3ebbdb1b47cb9a175e8f8b5 GIT binary patch literal 37387 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 mju*Oq^!6Y^|DtxJEQZ=T4De MergeableStore[ - ((SimClusterEntity, FullClusterIdBucket), BatchID), - ClustersWithScores - ] = { (path: String, serviceIdentifier: ServiceIdentifier) => - Memcache - .getMemcacheStore[((SimClusterEntity, FullClusterIdBucket), BatchID), ClustersWithScores]( - ClientConfigs.entityClusterScoreMemcacheConfig(path, serviceIdentifier) - )( - BatchPairImplicits.keyInjection[(SimClusterEntity, FullClusterIdBucket)]( - Implicits.entityWithClusterInjection - ), - clustersWithScoresCodec, - clustersWithScoreMonoid - ) - } - -} - -object MultiModelEntityClusterScoreReadableStore { - - private[simclusters_v2] def MultiModelEntityClusterScoreReadableStore( - stratoClient: Client, - column: String - ): Store[EntityClusterId, MultiModelClustersWithScores] = { - StratoStore - .withUnitView[(SimClusterEntity, Int), MultiModelClustersWithScores](stratoClient, column) - .composeKeyMapping(_.toTuple) - } - - case class EntityClusterId( - simClusterEntity: SimClusterEntity, - clusterIdBucket: Int) { - lazy val toTuple: (SimClusterEntity, Int) = - (simClusterEntity, clusterIdBucket) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/ManhattanFromStratoStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/ManhattanFromStratoStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..e65b0a2cf1f094b79d574624ea070292cf50fc26 GIT binary patch literal 38047 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/ManhattanFromStratoStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/ManhattanFromStratoStore.scala deleted file mode 100644 index ba9af7f00..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/ManhattanFromStratoStore.scala +++ /dev/null @@ -1,108 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.bijection.Injection -import com.twitter.finagle.stats.NullStatsReceiver -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.io.Buf -import com.twitter.scrooge.ThriftStruct -import com.twitter.simclusters_v2.common.TweetId -import com.twitter.simclusters_v2.summingbird.stores.PersistentTweetEmbeddingStore.Timestamp -import com.twitter.simclusters_v2.thriftscala.PersistentSimClustersEmbedding -import com.twitter.storage.client.manhattan.kv.Guarantee -import com.twitter.storage.client.manhattan.kv.ManhattanKVClient -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storage.client.manhattan.kv.ManhattanKVEndpointBuilder -import com.twitter.storage.client.manhattan.kv.impl.FullBufKey -import com.twitter.storage.client.manhattan.kv.impl.ValueDescriptor -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan_kv.ManhattanEndpointStore -import com.twitter.strato.catalog.Version -import com.twitter.strato.config.MValEncoding -import com.twitter.strato.config.NativeEncoding -import com.twitter.strato.config.PkeyLkey2 -import com.twitter.strato.data.Conv -import com.twitter.strato.data.Type -import com.twitter.strato.mh.ManhattanInjections -import com.twitter.strato.thrift.ScroogeConv -import com.twitter.strato.thrift.ScroogeConvImplicits._ - -object ManhattanFromStratoStore { - /* This enables reading from a MH store where the data is written by Strato. Strato uses a unique - encoding (Conv) which needs to be reconstructed for each MH store based on the type of data that - is written to it. Once that encoding is generated on start-up, we can read from the store like - any other ReadableStore. - */ - def createPersistentTweetStore( - dataset: String, - mhMtlsParams: ManhattanKVClientMtlsParams, - statsReceiver: StatsReceiver = NullStatsReceiver - ): ReadableStore[(TweetId, Timestamp), PersistentSimClustersEmbedding] = { - val appId = "simclusters_embeddings_prod" - val dest = "/s/manhattan/omega.native-thrift" - - val endpoint = createMhEndpoint( - appId = appId, - dest = dest, - mhMtlsParams = mhMtlsParams, - statsReceiver = statsReceiver) - - val ( - keyInj: Injection[(TweetId, Timestamp), FullBufKey], - valueDesc: ValueDescriptor.EmptyValue[PersistentSimClustersEmbedding]) = - injectionsFromPkeyLkeyValueStruct[TweetId, Timestamp, PersistentSimClustersEmbedding]( - dataset = dataset, - pkType = Type.Long, - lkType = Type.Long) - - ManhattanEndpointStore - .readable[(TweetId, Timestamp), PersistentSimClustersEmbedding, FullBufKey]( - endpoint = endpoint, - keyDescBuilder = keyInj, - emptyValDesc = valueDesc) - } - - private def createMhEndpoint( - appId: String, - dest: String, - mhMtlsParams: ManhattanKVClientMtlsParams, - statsReceiver: StatsReceiver = NullStatsReceiver - ) = { - val mhc = ManhattanKVClient.memoizedByDest( - appId = appId, - dest = dest, - mtlsParams = mhMtlsParams - ) - - ManhattanKVEndpointBuilder(mhc) - .defaultGuarantee(Guarantee.SoftDcReadMyWrites) - .statsReceiver(statsReceiver) - .build() - } - - private def injectionsFromPkeyLkeyValueStruct[PK: Conv, LK: Conv, V <: ThriftStruct: Manifest]( - dataset: String, - pkType: Type, - lkType: Type - ): (Injection[(PK, LK), FullBufKey], ValueDescriptor.EmptyValue[V]) = { - // Strato uses a unique encoding (Conv) so we need to rebuild that based on the pkey, lkey and - // value type before converting it to the Manhattan injections for key -> FullBufKey and - // value -> Buf - val valueConv: Conv[V] = ScroogeConv.fromStruct[V] - - val mhEncodingMapping = PkeyLkey2( - pkey = pkType, - lkey = lkType, - value = valueConv.t, - pkeyEncoding = NativeEncoding, - lkeyEncoding = NativeEncoding, - valueEncoding = MValEncoding() - ) - - val (keyInj: Injection[(PK, LK), FullBufKey], valueInj: Injection[V, Buf], _, _) = - ManhattanInjections.fromPkeyLkey[PK, LK, V](mhEncodingMapping, dataset, Version.Default) - - val valDesc: ValueDescriptor.EmptyValue[V] = ValueDescriptor.EmptyValue(valueInj) - - (keyInj, valDesc) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/PersistentTweetEmbeddingStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/PersistentTweetEmbeddingStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..5a2228b9c3239da3bc0f5e079206a7fcab1d90ea GIT binary patch literal 37760 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

    Xp)+xM+l+IQvkBh8ZMJ{#&H&cVPon(JsLHFa8 z$``Y6(d}A^<~ZxFl5=4cspEQ<(W5Z4TD_1cu6lGgZp?T-ew90uy5^}aT8ARo>i zZevlOTEJgic$Y!C;T&N;UKM|$7(bw?$!@%=;BvTKSwYsacW{iO zg##DULt=tFf>H0CaMErSeMcSt?BWmrVhVk^*C27~fk+kO~y8M`)qI6Wc zr3@fxt#g%r?8Di10L6s_#MwEPiPtrh92WL^oJc67Pi!f-sjU;0XX@TQn0$_Obh4NQ zC1o+4E6_@%N(v5lMg6MH4rUyyBUYxRkRAJ1TM;t-R~>NQCnvOcN9;bO5R=?CFwt-l zr4~7a3vorHE9cS8rb38kid7E`V=}A7+j;kTJSpwp)8a57{@^v40DjZC-FeY-UjL8} zW{af!`MPP6{bxGpQw8;uncvfQ2k@JnNydhOr_R-3zaXEN+#KJ8wL}bX8UZtEp4#AA z3<{S#H1>>j>6b`!`Oxt+#@=c!CTzAf4Wg>Of_ye}+U{T7Qz`Am$m!ixPapL6*nB^6 ze|#svK^55HwjOM5*~QzUfZ||bwkvviw11r`p4@SVi}IRw9)$lnb@v_Yfufu}aea9O zQhhW@tuiY%3(Pg$*7ht;=21hbRX3~sP3P=MRDuW@n}NRoag^o6RZ9IdOKr~(@%*@} z4=Rr^kbU0d+g)gPCGufX1m=MSF1$f?u1|I~`k7U`KH=2`<;(S)IUaiF(Y@6zao4v@ zihS$C)d&JzGpW+U*S8Ce^9Aq_^R20PM|m2tcKn$kfeSIG3aBF%b4qRWhgF35Ht{k4 z;N^z&HOLN7TUYE@@scQdnUP7H&$}!7+s{0ogaR1OnSnJf-in>@)h+;-B}sT z;*|wr%;H%W3xIdla{aQ7-W)ocufzTYVd@6kDR+4N_<77r(H^WCKY1oS+Nr~zD`)Z& ztPZ9#&J4CQ6s~_E-q@n*4y)6MRuZ)nb9&i4kLxaAEiJ!UX zCMEb%s#XUyB-O>35p3sA?qPU$@Kt;!;)oeMEg&|__5gfGxS&xWI+asn^%0_)@Yf?- z@-LeblzCiU+zv%fK%9U>q#P~_0UdhX&7eSZ_x+mSP3Md~V2uDSs*Us_08=dyz=1#d zcsAq;r0yV3{n8Pl3J_)zQxs4Yel*#ZinJVvLn4Xl2e5FU8VWzR&{v`{Mzc19nGOgb*9N^apaT(B&EphnERI% zzpm{~F6hBINq)P>$(W7I4WX0T5wFvl;{+F8{+dN|$rCY#r~)%rcE>-{ZV5MXSc)lw zU28j4wxSN^Bhid;Ap)vEopOM}uUn?yAk!pTmkD>gf14(iukW7!f$~^y0=nwt2J=?> zE@GyA1!3f*G(-+t2>?vTLhzC3{3E^Ouk`tUryu=J4CqYWy##x6IZUzI$`7qG9WS6GOPkUK z_4c45&GvEDVqON63F9Kz(-LX6zwlVR)0B^Vtu#kpU!jEkID{*hbiRCbN&LJ>vBrge z-l{C9gv(;VraVy~Umwmr*Pm)$#wm=DQSG`-zm6dKR8^6wIz=7#whzw|^;qpRG~bPl zA$Cb6qKYwZGefPO!Tc%GlV&>vEK8ATlEkw`wX-C}Ce)PAa{jrx{~$cbbuT4{_`a?$ zRfv&;8ubI)(lxTn{FdS;3SvfRYUEyDH(rS#e2w(UVadYtGlS&!4Wi9yk!!L13eiXw zKD*?f*snjdZ=RfPBo3%FhEMOM&9Pg3N)`8A zloJ%KTu{5wiQ3HD1SEZRn+G7W(w2l#eXKH#RQA)PHTs6Xv2L8jxKpVO0fOEiuRs*F_l=plxMs#urW+Y2g)cZt!V}5HYr^%(6AcJ72A=xORF$zOHFCO_lDQwW4 z;!8!;8bhb!Atq+p5*TWrrNr+)g;j5udD>dVh4lJ#Dvy;8d+AjnRO!KvagZ^PR3YXs z-kw=LSYmmvVu6mj#y2IW3|b(X8PikSG5So6*<*V&if7|74>caS!0Sq*{urKm1%=ZKVxCzV$ij*z%Xt zEhgybA^T-3?^pkh`m{N5p$Dx=U=i&=i|cXAKZV>vU=V1y&Ix2P$cZBd<)?3n>^MNuZ5p-+CP;Qi3?pt zsh4IA322xo2wm~;dsju1=FllZbm05SiVFpk5)igWg_kYd}ye)zgM6xMF00X!2E5Mo@eCL5pwM zl|cP!oJ0IJTK?wH`gHYJ;|Fgv@6!oSK~0Dk^-14>tQBcUBj|xDw0i2E0=^)P=82;L zCT3m7;9k9|lO(w}M^sHsI2hcWCCoP!G^1+~fdW8n$#FT+mso?O@FgMM)I)@WrsO z*4TW!?V|xhT)}5OE~NaG@O$mLZ@axGAF;p%eKR#>N$?m0FTE!$8?1BXNKj~U5~e^L zi9cn74)jFZr(lWE7tzswA+66Gsi=-kD%258zzI0E+`l6(M#6QGpRd2pb%MC&ik>#1f5LkvCn0 z1apLDGmH6k%oaiNiK}NeeDKI?*F=S0qM8l5(UfH{|JL#!Ns02v00JHK?%=y@WnW?YF8LoUaqEr1gv_v3y#jUI&tY(@0jHrma-8lq>by z_X_`S-@T!lvJO6{rYsluuAKOP`W7DrLIN)=H9jog1H%TLLk1O1o6u7mPa{T~hNd{> z&i|(JK;pMb6`}^9%6{nIDj`5?zZnm={`6)(FcrnNg$s}bb$JFK321l+4+|hLA!Z2E zl-1Bg5I5(G)53-sxxJfk^*Q|y;u?ELDMXRRnpLHy?0%K+gSl^UcR`4k_U!&$Kqx_B zR#s1)lA%@)+4q_4G>pV`axURRR>a2o$#$tB7UlCYSV7n2o7NKE^e!A#_mPUyk}lc` zCrZ)i#U`7<1{neq;axQl(;G!8Nr3~b7p>8OB%3EUP-%JBoHwua-McQb%VQ-3CL|IehP$$f^~gR23a za3{3G-&Ef!5N$5xGSJ5#26&>_K6rMZ9ae}p{+@TmGetR^SGXU`sK25Hk$I&C+0FQ4 zoPk10b`h${gla0>%zHOuC>4QUKip|CPy6?LJ0feC({Ztv*_4)teNdsVJ-CDXALGgK zrkpIPOCPhjsgf_lop3E!Z`>)Sv?8qjP{KJvJXM-~mc(PR&w`iy#De!9g}DR=1TI1u z=#zgcbp4+SuQIMfC*!s%I6akeg-=U9IF34&=t5r&h{32Sjl^GqkMeuutK6>2R=%#;f7wpImQNoeZ4MnkZU8kR8dKzs!x;;FKnoy{U zE}q|iJh04oJ)cdHM4uun2T%>t0VWSukn zR5sNgthOi-ACy=n`VA2t>s`SHZwJQe7H|B>Rjzb3>eb_+2Sx1<2#XDAM-*R;%oONH z1;34klKQv?@13o+Fprp+vss2qzjLQN)raOzW)?`%QbWEJ$$}n%^>KhMltR;(n;x~! zzS&4By>`w*(>P~y))2TAujlttvAnZ-u7S8!UoeDi-Y~~X?(wokqwfu&X!X@g)oj=y z(dVJ>Me8>T|4l9P2Q?ay8d~P}?t7wja}hDw@DFNN({Ug*ALpOc-zm@|kp2(q%dP>~ zj__=QP4CuEorbW-m1VtXc5_+u^Z{nd(9*KMSkZp0wh;~{)4=kg&jSD@&6#7HI&+Zj855Fcl?XI z&rs@7S>pjtqge^#d!O@n=p&WZIHpbm{jJV`R{nzgG3mV9ho#+bokbAE z1<&-FNMCXV&E=5HL44?QYS+>~f1QL!!mJmT9Kz=yG#mMX<|Ls*_yu za|Oj^(QO?&?3J$qa%po7Pncrth+=bNUS?XyopoVFF8)QZ?Co*c&#T8d;9&f(XB6fr zatR#WmougEX_O!C#pc-aEWw)C)UKoE*ngImku8^p5;Ij=^n*qt5 z=R$dw1UZ&qlifcKyP9~v1_&v1d(q*F&6!RDK022r6iE&7&$35-PV+yNUGUyxm-8$; zE*Zy@pIbfOE9H?ZHxL$^6JoFINGU7alu7!m4gEPyh)t{~@I9HAzR%V3rfsR>UmmsZ zi$(|k26pW=XZnZ9pX`;lT|;ei4Xgh$DWh}TSs4DO$(oYJ0ZqQ^@bmboH$2y zCTgHvWWj$glMo{T>~r8@pgWL2w2t3s?!uMO+M$=f(U|P-peBddG?vF#2jEMZ%f4W@ z*k07RgKk2_T!@hTI=nMx+4;5DkZOe73y(sB(g6|&-UE-qLfip@O&*T@1M(JTxSU*QY*nOP_)^kzZ~H7VoqSSiDmh=#c=M z7Kncq&o*24uj18o+H`%JTuxyAOCel8{Qe34&Nv>`WDmHNp$b(_sXH}{XDL1!m>MlK zk;a9k=iS_-skl%-U5f)9i=1^?4o@L*O z)il-Id)Ltew+w$3c8RyZ8g`z$JedAWHuaTs1IOUmmSdhLn^qb$2HrLHsnL%2 zy8J;zq0<4Dr5lO4d(e>Go*UIlI5oQ`Cr5&IpwNHqq|I)Rk8%0?rx%)zVgMf-E$ zcd%=C%C1ANJ_V_XX%KsviRuUm;)75V?D2Fjr^|*-(rfE(;dtI_6>*wvhn>QJ)!#gH z0AaJz<{Z+4CC~$|%;`h2DScPGu@?v^$i|iuLagtzd7i48;PA5!X3uJ>QES)-OWu6t zoZq&nfB61_qdK7pe@q3j3x9N(ff;yF{DpRla$C%?7fLc72kE8uqxu+#QGgU}HEfd&0oleV3kG#wMti2u6tg zi}?0WDy&6i06ee=;1koS(^&8+1i56?*XTGH4b#=0nj-?;$4W-eFJi+<8;2Skb_U-J zt{KeNRt^uLRCbEV4=g}hC=Qmy$xyCEYa_U>Uwg0=PHfMvtvg@Y`ve5Ve-m|0SG!iG zPrZ!cdFvb_b^&YP{|LEPdSXvHAHpgaAS{eHTpk*7gI!ICxhSveth;iyqqcV!{Ma}{ z-w}2G^3t=D*rWB|t(wmE{H2V|R@prAvMMMk^jH1tp-c5nideg^UVScXedf%=vXmNV ztk(xRofaXLsA>a*Z=`HK!-SyWeMrtR9ZHr{CN;SamT$D@?xTeM!nuDTIj{W{VqhS) z8DG>mD-;*iEHFSE$+wscBva+&=Tn)T*c?HtuM0z-+E(?XxXgC`C8xqv$I*Ijq@Tn}D&zCA`C8k?hhCfgAjiYHY<)>Xw?nhQZ*Re9A98Wi;e3na1;+@!-S7^?dzZU# zZgmC{mBo}}zR=#Cm1R##K?+Kvs$QIU_EtxsGrROY{}%j$LV3H+;{+5O_#eT6*`<(z ze+usXE%@TM;3~Wm7gv@?^%I*eFGxXEA`QBSB%)E9a-vb$zkuC)tCNCa{spYq=4={` zJvjt|`EqmXt5Vdl$t{TaBFpfQdnn}7=?~{yGE@X4nu{sJvvf7({|9i?0Gw}1!ffgG zCrCj=6$s21oNBk%4llinu18@7NWn->^A(lCdKMu_L7&d8M4D=@Dd4CIyzdc@q5)G5 z&~B2xFpfovPNlZF64SSg` zyhE=Mp-x(yXdixJ-l$%Pewz=voOfA%87>UW9{N`^|JT~M=06$_X;F{uA_420190iw z26mJcQV`(ra0NUHL#z6jhkdrI;UCg@nUmV5&x%Jk{R43kicfRC`E*;zR?uoA^?HCW;G(fboofvYa>W?xv_z-@?LmZ=d6 z6nWx~2;z0eUp;0_ti(8*PzcQ%O3Y?}Yf|D(5r1~Wm^Y!zqQn(==IC-+NN)X)b!{NS zy~Aqg_~+>O*aE%L+uXgEjC~GEb@<~45FovmSW_zYz&HK_h$8mu?p`<0(OiWS`aKT1 zX0$z*y8-c#+(-hl@!Rg%+btK5tPsPn(Qc^Gd|iAE%W`+N>he_F`t`!U-}Q?}JCJa1 zV*WRPgTilsx5r2Rki*_6X4SgF*KH zPNxAM-g|hx!9vET^asQ3?(lW<0LO?hh?RoZ{0J=>pO_>;&X8+gcy`{}89%C0$SIRt z=(d@ISw{P*a$8uY$n)Y`;iRGxuAfs{E^XAS;zfkKBga;hZz=|f&*^%L3pYnpSLuLF z`^Ip+fM*kYIq>*+56jvl9kv`uq~ha6E|h1nT=Dld^URBxNY4{+-Q$GbePfAg2CgA+ zoD>JUpr1{)xo_l%g~H?t9meSIF!Di+7cZe`U=+1i+)tPtNAz@X7_uzLC+Bq#`r*pRQm=nT&R6qFLO75TCg z+T0N=?JCd?ENYC&Dt30#ExJ`HQ5=SbyC%F^;8AgtR1qOej@745bt~?K?p+s^Xmkk{ zW`jdTAJw7G0n!x{5bBh`^)hKRPq9HMJjrrmEHM21v4gQ?a6-N!Qd0|BbH&|;f&LB` z$NXK)*bMC_NAbF@p&sMX_!urTb1iFTMZnP5%d9u61%TaDF3h%$mFZiQ#V_&Y3LOe{ z%IUGMueKf)2%87Vnjcu{#&4^}WQC9tllGtH%%K{!O0jJBYl(NJ@0IhtR();6IRLnpsoXFo)%n^ge+qKhNCP164 z-#nO!JZ+3e+SH!(rLvMR`9!ZZKXeGQ*Rq_J>kP;A1qIMhrP`h`Y!LQPjcbY?SAHNuKF18k3EHP8M*QSkVF+P&cd zz|hzX*hm0!@`;ClmkO)3h>Z*K;t1ZOP2G5#nz7kcMa434#_-s-PhWTvNj)p5Jn8fp z#5U>QI|?Rf?|m1X`U+JEtZb9Ca76`Qh0R&?Iw+ne%QFi4-xxi$w7{V#)r%51W;C^! z?=yJX*`R=o2}zLGgON`1yeI16N#QkhM`Dx$m=Ojc->b)`?D7mU1#(I+i?$l&KNb#i zX;tPlmjb43?wtG9zqf17M*ZvH|JFw|i`O`Ahw&A*3=gMx+A-LTi86KuId;bTlXf611Ud{Qifn9C ziG>$vF`2)eP;dHkz9F@5xr<0hd{vrd2?(H6N--B(F*k%W90C)D7Dbh~gxIgg8YK|& zP6Mq%cY#tBh8}P>IS6Q!FH!t{%z%iw?Xw9(djn3(zSUk1P$Y@O@guE0uXinpZO=te zrM8iyED=%^#xB`@>f%D1QnM9-^ut2n=L9#|w8~V>EhtvTrR~9^MO8h5R{h*1CBK!^ zx17z0A5Q7kC>pYkXqF?Ai%cdA83>mq1j%$knUU!T6hW(s;{j?R2zjl35)4NXCGcGl zbaOu_M}#Ry1U?h*2?`U;+6H;KIFVUnWC;n=kxR8JJSYcD7*a1M5HrqYM|a^^J0$fS zy6K^E5f)S0HM=+$%=?5#I7DA41gi=C9+7r=Y9PJ#q-X+*>fb8hk^fW?(sNB9U#_HH zW#v*Cc&NaGsGHjS6$$grW%=VJiO35r#)su#gt4^m^Gp2uBur)Lv0`TDC@`^!a(26P zXnRDx?NBx%De1fWVB*tMRox_^7x@SCqh9k6tdsjxS*uEFG$_g?=rkp#SXRh15BZO#0$5$= z^28xe*;-@;%)sBq&HG6Y7S;0OM8J_F+-#hg@urvIE3|+>%6|c2{sz+dH<0abpn1QE zPG8B~H;Y9Wn#he(vxtv2*s*^gd@Kh(TO62d&}o40{YaImS71{m;4U&_gE3%e=D%Vj z-oZ77VjK&~YYP_q;R8b=fQ_KuEuYy-7bgk>*Il!N4BT3fKyNx|9Wzd3RAPi(*&h&0 zULYiyD_@Y)q*lTY%tI}HBKgySAu`oe;%g(06WiBWNnj-gb&3_A!#h0*87smtr0;}_ z;=sI#$VnhY;9N){8#6^tfq5|-b3h006SyRhTdvrw1dNdqaEKr2cLP#fvPnx115&sO z>>rmdiQbX_d2Zj(BXEv~0|dmW8VUsWpXc^9ES*1#o12@NIRANs-$yScU!v~x`4O}6 zcu*lL8H8kX+-C|6Y)F56?=to7L7=>RUN5aG{#cr}8F-3cDBB-xBt~*1_|*3sjnIeK zRyL<$q_BrKzc+V}u4kXtjY`gw`z?fb&W8iLR^R21Rg2kMe%I#)djP7f_0zkE+r3?n zdi}2VgX#UV^!LZ}_oufLxAxcU>G2J{tLNLZ_UdZn^YiRG;L-lg&Ncpz3>s357Udn+Hyy}M}6>Twsxt2y)Mx@9UqJ3*@MWnT}kS5C`oms$fKUHcjIxVgyHPq^w8#%eNVrZ zPPesvC&&Ku+cV2s&r`0I#rOn;LkU_U?&}%@gV3zioY1wwr5}D(h*#@xdzYV>rib~e z?HstbapD@n$C=#iNC4N~R9Y84NhfJGhra43Yux}YK=sn1x>e*Y%F&WtwbGO6a-oOUI@SHc@s0pS0%-qxg?kzxSmLy}FP5c7%QV#e-|tzA1z} z_-k)<`~-Z2yhI=0U0(P$EAHFdtG5_jk;@mVM_(x_yDQK{1t%8U7knJeTbEBQ+80Q@ zSa}I#rUeVJS^XYs)+~^q%ZC?U+cR!A3`W(unXS{8i2tZsImzydtWy)o+7yTx&(64D?X@3h{JlHTpKU{hez3%)jZJk)u=)F{Yz zbPH-KAiX^g8#I+qa%!z_Z7CEN2N5MRl@qDQ#EjoQKkq#D-Oe35JiccopZJ|8$1Lr= z;}IRamkx$bu6g=-=g2_wpA+T_5++yw%*)WN(=X_Mae690yrF83tQExrl%FsVAY;f9 zA-%oVZ|t<@kIC{gVE?T0;i_olq-Z!`#=`~-Q&cejFGn)q*Bk2{hG z9NkrS)8nhRwvx3OS$C=J23Tu@ho`%@KN<|UitB_l|y|@(-EQja|ghqf}PJUkHh+9aoJpM zMA7&qzCEy>`^5`~#jkpOp+p|^PZZ$2W?GdXCz&3E<-!%oQHub0Y z2YchZQ~IJ+0K+P^2}p3${gH`L_8-HmjmZhTv#37M;qAD`hu5JtZ-%YYVlp-vJRIz5 z+BHpcO{bq0H(Q*knbC6{GPynwO4zL$MA}y}n6&a_>ja;hBO`~4j)9vkENJ#59@o(u zel_>OVwS8|gvTM*tc9!?W!QMve(PGzgl&FkIcM!?zQfvxM?y7beSdCRSxPVs6={2L z=rpKu8|M>9V1)FVJS_kVQm83}(fIV+K+J>Jz*5<`pIr66s<;LTNYN6Y#ofd0@V(5@<9u1F|5hoQ)WO1 zBviPM!M`7O2dl>@${v3EVyv_Y1W82|I6<=toFG00PQ(HyY9v}9?f(sdzX;O|@|uR% zO|kns=wI2tgWM-=LGg=9exo$}hW`WQ?*V^D`QKIGa5O{Of6H4194{6p(sl2*Zv8BhVhFj!!i^{5{}ro@*o;Am?>R zH-TYjz_8!ekgOfcrJj)PuCJn>L-tAbbtqq|r4l+oe7)!W7z7!b$8W)hPZ%)Nr>AKR zlXnqs4C@~qhwr8Qbpr8Oyvk#y%O`gVO9TN3k=9#=?}smEq5J!pV}1ANk$6&q?&H3j zuH3FqXaA3|cYv;J+q#8gyJFk6DyUdHwr!)Lif!ArZQD-8b}Ft)DtNojx%a+%zW=@V zx81VR(%McRz4y7+++&Wl=Ni22-XAB{3+L8P9Mz)-T=1n|Cy}wOQmAw<}37j!+iKqQP>+F3u+1AJyS*_nRCYpHyTjWnrxZ)fb@ zd%TPNb~b*p{4)7`xc=~JSwF4gL=bi#tlWOhoi*c)n*RD|+V1_v)86|v*jTW7Wm5NP z_i=DMc2YjmcH!Ihq2J8n*Q8XAYlp{U+gu;f=fxkhseJ95U#`g}Hdm{6Qon6<{E{DT ztv(xHu-A45u3tAY2xojZGGdIcV?C~Ki5A{=U+HTEBTAtmh`#e(V*L1l6)Lyy$-RZW z$b)kdWg?K9jSeso$jLVGx>yo{GjOZuzqEj8B!f79eK7|alh1{A4)9(hiSxQO!45Jd zX7X>+N3zVtT(ILP(v6OD`wd}PY9CkPU#gBMFHgq*nZ#XB%F>+p;ydEH>NPUkE`LSH zy(C$d#JA8!bAc@9Iv0K}frv%?OLzQ5u;p5)idxh%pB;Z*R-&>^YwJp4LiIrRD%7Ea zp1`#qC}G{gFSRiH-xi|PVLm#f??oYpU~*K*+zU|q6MM+qZ3F_AgF}S(M8z$z=e~Go zAs&^BQ_KHGItqVQSn0sF7JCx`s~HwyMZ)k;SB@#4EPV<^P@Z~LNQkb0>k@IiQ4^dO zkn2~uWe-J{d#o?%9CTg22e|ED2@0I#0k=#a@Me4H%lG#jB=W!4k0H7`t$RPezQ&3P zWFGn4YrQQVOfj;%T_SHwypo*V!~&zL$-ffVo#4zz3q`7b>D6G@p^9C%rS~D zb{rJ3OG&8br?kr_6i=@{JelS>QCqLhnZ2LEYKDBJgg-ZIlIKzAo+N7JQDD2M>)XG( zX_0Yo4MW9}V8*&LahpLt3A@lW>{^&Z;%x$e=ob~;ES zgN_ZKw_S8zL;+hX?q_XXq&`mZtyuKimszQ~+{N(6WAiNrdZ2m&^`~kR`~21E(koSo z1dym+1U-k*W~9eXYJ*nZcAY-LCHHA)_Du>>MvqhOKQ7ji(<7&KZ!PrM3_!nf)B2Yl zBo8d!HdQT~*cBVg1_JkiHLkfr30@vCEXUN~h^ITyn2;RlpV^V@dYaHJpA%D+ zWaz)#PUh7KFW<4I_rP(+`VyiouyxXW_L@?k-4R*mak1+bz#h2&Zra0S-e|}T`|R3~ zKj;~oZT4;Av$?DM0)s+o{=xOy9g>PaU>xs!l?u~CBKy$~|3^L-cy1(~>x)kTNj}F8 zvTL>+avkoTtl)sO9(J!l(-_@B71g0TLsvCqgfKx(=UJUj0p5Ay>0P%P7yE;IRs7kn zn>B;pl*S|{rvg!_)BX%o%In*sj?&>5XRWcvo3G%q6j#X!)yFELMSG0S1cEt8Z5=k3 zO)I7p)+hOsqAAlQoi^NQO)KX88~67OMo!z=jLelk?ObCH$6`}=QsD`vUCfs^KkFH8 zqSu@$mL3sSXM8Uu+NBj6qkS>&vG8E^riKQ|<8pR{*4WWB;cBw*7~;Oz-dS<{_KbUA z)}v6$Su|tD*KBpJ&%4|-&a_kxJ+UKH`)+(&x0MvR&2)B#2D^W!Oc0UhR61V2M1FFDOG9tE>XY@64o)VZ^-RkEhu2g~m(BF6 ziR^EG1g}K=I)dxx{kZ3h=#RJ-Eo+eU31l?gP0~S;|5NioeeSPIZ?T)~V)34M-a6nT33rpR-NRrey0-Pb zo%UHl#fP!hJZqr?fZ-v@YMKipF=A_PGSQ*Ikvu7Qa^k5xmS@i0)WMPKpn~C9N z&ks|dsf}{qvQ{tJQO&0u^OB{y7qDIUU#=OLey<}VZvm6fyK-PTQ!#2SefapdzP3G3 zz?Ej`vVQ6e0cL92U~u^QcX(HN&BO%Q;oI-XqohSkp1o#{NQk{QOx506wqJik0KZI# zG$xxcz|IqC_=+k7l6 zIQDzX=JgLL1s&+76h8+Y)*MFqn>~;AHOzMJyOYx8d*NNF58XHdBBbMWP0veel1@j% z(d51jLlmDin~wqFQz8hAouiF)ss5UuhSxEvYRL!JA#7ynwcYpE2~i`Z88o(<78 z;wGNcm{nnl(N_bU<{&R{gqCRGHmIbT zZ5MvyA5g1#fRD}0@xGsC0L|XAPOhx0!ES#q5hP99rN5-6IN1Ls^=HXy7jM*{6uaS_ z71LMr>*(S^q228$h|NqJ&P6~6*R{jG9Qc!+gR8>tlWq5Y8-bty|Lg$lk@vY@H=Q`z zxG<5y{k;z0+ql-@6ti9INmp}`r3<)Lz@MHVDa;=dDQ< zptev}9Z{d&OY>m7XqYO8q`bnEijdWCkji?2if)%7xBHWx<|n;$?-UCHo;oLLJhq@qHJp7lti7B-Xlo3@7UBs= zsh-PTwdPs1Ardw(^!KL~kf;>@{PSwn5{X$)YxMT{y=qe?YkueUUk_~LOdXd?BHvxz zt>rwefqSQvhX=H+2ecFArE19b+y`l<%dvFbt<^lO)4)S!{9C#?KnhI_$~>);*S8zD zam6aWx?8VL;>r&(-jX)pSZOua>f} z_G|Sf)dx~^x4wfta4ib7=icLgEP%J4mbOQ9?wjM8YiWftXhJ}svA_DUv22{2>c(Ar zon`tdv5!ZD_dR9tmI#+gt~(TTL#kh@87AzzMLCG zX0Rv=BdM^uSyyV2m*b}{^q)VH^u}I~2JLcr@T&;bhe<3q4bPQ)PV?7c3p67!Bxv%V z5>>SGIUa2H3nn0stHqOtW6ne?Zr5(d)?Ti(g-;(z&|}XCiLZkOB=3b^ei+ec3(2|7=2)Fr7zC7N6cz|UDJIaLUw{UaXk|L%Lr66_WQUWU1c#Um>%g zP)LQs`jF)Ma+D^DNx+<~Xsj`?H)tNCQG_Fv)0jjJX3<9w>|LJjoL*Xb05x2!;VcnC?SSmLKHK5>1S(uJSxT zigBY71%a^2=ZSX0rW4vW3j-l;B|7X7fgsyP>4zZ!`y>LP$DBDUW2F`g=Mx}G%i_OM zj1~^t#FQv5o9EH41u+06+L&~UBNPTg0>;MJRAOdXqL4g zK-wRPR|!aOJVYP_zCcih!0g{H{gj?N!g__c#bI3Nn0m#u)HiaAWM{%4Md2cDb9cb~ zpM0c6AdDzo7`3$^#owC|NdjVI4SP`hKPzLiwFTouq4*ESBJdjg&{`-*0rktr!8SU# z#244&Zu>J}KL6(d0}zn@8ohITe7XbHebY8yfms2!p7Ym^(`!yGE;ZCh{e^ID5SMcqmuz z>A>Z9w)VBZl53%o2)ePqtH`Mss#kA3Yf7!wM8T+1y@BdzYf>x77x|+H^+V4`n!RVN zscwqBcMe-*yUU#wp(ZvCF}{D%eq?cU^KyDKXmqDzl&HfHUyK4??}^&m=iU=l&-eRa zOxkMhnKOyu%f{_Z~2#TWlj4nNK{Vo|n+UA$^Q&E?XX5`Jw-XqukQ2}y zlOP4IzKNEGS%$tvRKEQpF^stS3AN0Qj%x{2ZSLU3-@;aRdRBh`uV7lun+A!!$IMkA z(?!Ckp|1BT8Kl}B>{?%3c{AZ~`YTmC1*OcM1fFyT{qek^kXjS@iHp=`m|7w|UoySk z*CY$?cuT`{OP_p}kRA+L+!Gng!3+C=|3v9nB^ucy&q$(oUoX6QnZ6Kne;Z}}@CiaoJ)-Uk`-mbFlZ$Q`5GP~0=Z(cTjzEszG*bcN9`YM`6cE2Yqberl4ih=68 zzpYPN!2JRQ_P3b?-qCSUm&@soXQ_Nc!U$wN;#IjE#{f-f`oHKoM>>Mn>;I=7dtV$G zvKGXP3v#W~$9vP;Ldosa$NjxSc%J9M21FWpb*ryRGj6-W1A*j^#O=3UA_AH+)Sv_K zAQhU`is03#VJF1izYkWtY5bA`JCD?}$RuU3vM@I>K4D3%NP?u>9v$=VSaC4nOy461I4yz(%W->Yvxu$`oAi47+5TX>v=2nG^buk- z1Y4Lf$&zFUvo|_FUw{%g07Vr1 zh4C*D=RzXve?$OT{l7&-4~aI)bnE>sfF%!h9)Yfl&}^fS^&DmTGMMHMEjLDA0zVZh za{O*G#Q7L{ZYu#1jo0PsvggP9cJ%aD(dN%_V7W)MkiLh_Nv^xX z4)9nR;tuex-16TXl*5!g`}b{#$g#*sy7?=x;2trU z)Xgx^5rQ5a*$^dRCH+xxN6Sj^w+au?ATvFiut6!6*Y~?u1vjOC=}^u)0qS^n{g%l;dZ+}_wDeaFHPfGuWcq#*0@#+6z#fafy@bDqjNoYgj zos~Da$He6AI_~hQRgWP;>t`Pjx9Yez`b?|2j43M~>8K`K+jfY~-kGf*==xLZZyY=I z08Ytc)dUOP99({TP%A5d;hV=UPK|V+jiO245Q?!a?wOm?2OjIJwL~ z+y&rAsHGn7;n=+I#zo7aD7m5}3rz9)8I3B^)h7=s$KU%P2}+abF4*r==}4x>vM_8Y zW|9qV5smmFP5~1MRz>*1LWALRO8(;X?fDo<4Hsz9YjMIw{*r}|8gJOHji$KCOHFC# z#eqoqA-5e>9P8eE49iW-2q@Ov#7hYpgZFm`rZeVY94OY3cXE-=1R@QZlL^-3lOY;^ zQ0v9%8EP?_8ZM0fpjP>7{0ns$H@WEiFVy;w`2K|q{)cQ#Yb|W3Fb;eaE2*lzGPPX= zH99{H@cNJ1$yEx+YhMK0|s zMH=XUay{Nt6l-i+e+~?l4u%zW!T)eoG#|~cY6P!`GD4J!CUUGXmV_kHbczNO1ByY_ zqFo6~{!$;H=B8VPipTm#Q4>fdQK4OnMxoLeoN~9z9LWlEPj7w6lX~fJ24)DT5h8Su z7Me9T?GR5A#y;_iP!&lzfa-R<6{q=!$vB7fg>coLsD;N2Za%4=+T27bzuKEbE~V1S7;DT!y~$(Xvd2l`?eX5fvr^moSbf zz1EU#r~geB7v1{3NB6Uuy1#TSG0i)>oo?n?R>2DUy+_rOlU!gm3p+%kNuDng z*4@RtU(G_Q9Sai#kbWL!AT0Q1C0cLhw9dVQ)6@yoWaLS3N@{*WZ({bsfn~t|lk7FA zp!2Y(uu_R20yD5U5ehG*hq%51V&SA_n2568oKKQQP=Y4piiR=%l(o~hCh zMHLUo%9V%DBTPIhBo*TkR9L)lEV>bG$ZpOUMi*hXw7a!#4#|AvC9hLRam0T57K8p_uJ$}{F%RK)mBBumBk`Fsq-S% zCnd{_c4tl!6Q*SB9!aT1Fp{Un6~rh4(Nq-2bI?`E>!>9$Oc?@b&u2{$E7JOraa2{( zjPoMIm4-dALmGL0LNxl*0%ro(3XSaO&+-^F4fTPvW=w@N+*p4ywcblrrT`^K9hE7m zJ^7U5wyH`!)z6xO4zc;K7!-f;J%Id!yww?T=Zv5-FImBj7hD+j76NS@ zur7qbA&|hUS~Vk@S{i|#ekz2~m^y!Gp9vM{I8J)14x|jM1y4ztx&tXE7D)UL%A{cb zq|BW*Yi6T2oMFJJAQl}Hn1@kw8(XZRCSE+|&SOG#8q(Nu$Z>|RL~Dr5^CDo&>UPo@nt@a#;f z0-9@n7Cj~c;3&4d@ozJd>y%O1X>avVL3l7+FZ{GHTwjDP>VF{aLG8xZq7#S~CU8yJ zCfi+(3rf>&J0v=KJcs1|s042eR=kW38oZA{G#$~92Dh5Vi>WkNUCrL(PN2wq@m^^71ia3-pz^@$?O9W7XKY)e1Rfp||RWZMDwP-dh! zFxb)`yN(0I2)~~FAkktzd-O|D;M=h>GVR^me*?3vfBq|G{P)FBcqG#bETVGOv? zprCo!1T&5sqobYcP{CFFqcj8#sFYjw7`PBDtuw;2QJOZo>bI^T#EGRLgtuqGmF5bv!iOGK&+>`@-vp&<$G zs6(5<7p~#Kh8EtXi)cP0pdpcG-I>t*Ddet4PL%awlRNFfG%+T_OXPh^*Wm`6o;(^r zgRkeVoH( zxxG{-d}wOaqzw0~cP=p&;QsHhq~#)-@#uer*LQNnWThapyMiPcs@(j&G#F-YE3))no zGZl5IKjH#=E2QISQ#aM|7?vu8R4m*&qDn87qql61%s7ZopYN`b^2Fj*({Lr#a6o8e zTY)IAc4kXKIkA=3G2k%Tl+wY@nH+MbS?U+Ry@#07II=khABl&T22xU_ zFmB>~zc7(jQlxym5sLCPRA&%Ak*R(mE7h`%?A*pMUgGmP-BdVdOvg}6N)_LIq?ey5 zIRohN&@#*sYv9zuZZNYW!uWTcTVVnqt6>6ZEWJwy$T32%drCt%x6ngGD86~@0lxx4 zZ$qh(w&LDM2rA3?_mOwa!vvdTYmNiw`;33@APL4+EQB$eqx$w`HJi_nzWeXn;Gq=ztI$wbA4dojm>cI8ADWslK z*X3qfdR`z26ZFd^c{hM)&wvtUHZl*UkOYbR1-_4**622^`G;E_Xla-r@w)-9II1s5 z@f^_?_(6veMx7z2PT=1)sJ_g`KINlC{Qkd0IJy1){O6x{&lUd?!46Hd7|<#EJn|*_ z7x*unePo8jO5kk}=?GtsSN;lVvVklhedm=Np1GI|=?!KQq1q z(6j%NLgxQ#5aw^kgkJM2Z=tC&hM$w%Pl9zMuzu{A&CKa!XU3W2hfPHR7y;UrM`f=2$S#oPZ^VC;XC%>NPr7QLkMxMy#G zf(1oh`(d0gV*f1RdcXM)surUf{uvD(>)AhYZlUoUfTOXGTw)BAqX74Yf^^)NAn&eW z$F+~#$FYxWHpK)4Y+Lhrwrt*L3`9Cx?;Nx|;vRI5V?TTv3)JJb2oawZ}vDSrD@Zkx@e7TN5-!u*?$v zzG-sTS%}k0xiKAks3j1ywP-|!0|iCL{;mXXg}BH3aPkqSf*ds$83cy zuG#zRL20{gL{OkN?yD=qF7=>d%aG#J{y4LNdR0gzf;vu31HD7lRw%)2^tUIkREHFt zgEdR@^+$=@q-+R?Yp2=GBhEUI&~_Pc*wpnLe-)Pu0zm1y|03{`;w<$Lz((Y6S-dm} z{RCjkGUJ~9wifM9gn-ld06>yuIh*HV_ox{5AU+2vhn8ru1(ZT|nux(j>v3 z|I^MownTv_q;cMEU*8J?LgN6OiQJ5s?n03|2kIxkhwrg}U9%+otvs52|9=Mi3@GKf zm>;kVS+ogWoKjZ6`WKz`@U1n1n6)3?9#z@c0O!!`W5r9kQ8pjuKFjNx#Z4&8UG}e* z#Cz-;Y;h3)XQ}*qywdc%F`hqC5PcV?6d{rR1C-rwu^%g=2Ejf3=9ICuH}NS5Z9#GmT?2GIEfioKy0BsmIH z8;*iZY~3ddhp9A$nYb+*(_zR2;jO{nh5%) zm!gL=zF59~f7%lS=pFqQMJ8wTg7K!#ct7wahAZ~zmZf3(`FiB!c*n^6QSEK}s)jBW ze?DO(<`~q_hpmz@5d2wL3huGTsapAzob*bDnu2s%gzhX|4Q&K41)zdz4zgDhVer>7 z%GKJR>V8hkp2zYGw?v}fLDIxt7!dFk*eozwfI7}g9}}+0mY>lA3A0-!Pn$YHon>1u z%$x#F(&C%35Jy7@M@22&-Qig2O^s_i7-!l7N;r?4T7a%HxH4WB9A4wvjX6dcy;1w z0ZPb)j%uDd4dN0)ls?2X&* zjto)H&LdS30GIsXRNWc8Vw&_R{)qy3IL^;{kmbP{P7EUu7+W3ocOtFIa$u5vQqZQR z(p3bA&$}OD?zGlWhd~}4I(=6;Dq=1Q{`T(OCU#VWI3>&zAE?6z3H`^4Bk~6_uHABe zi&!UCWZ)eCAxSy`8!fJ&q*O0UmRD8<6P@Rf?}+OkhDTq68b*!6it7)&2?IRb&%t<> zpmHnXHwNFmb|%fi1aW{}i;WYaK}YA&;rerZ1@EnLuchQgir#&l(_#-8h{Jq(zTd;- z2;gLfjut|4sbVFapGk2Z1UrwrgDn2rYe+x z2bs^AA4DDu%VvunuCq}9m=!vp*F!R{kO}j!i15(R)Mx=IEolV*O-WP~A4MG?>VkuF zBwF+h7I^TWrg~EX>{CCHa;lH_h6B$M4W2!{q|5vk1wcnZ7R37)Q622(Ml|AovcODE z1Uhph`X6VU(4h0N>YVc%uu~8xr0}QA*;TQ?vRnt8L|ENc*K;0YUs>ke1;eI8) zMVNWlk=8?uQmHjyyNp~lcvkTl@C$g0q&>S$g@Vr2hr{Pr>`#B4cW5QU{H$PvMH!k( z?0^(ZMhJ#0V^tm$<-cFL;=-~VD1UBYCM3nTC@nIFiQmS3#Ai^Hx;7Uy93~YgppRMZ zeTiEXz`O?Kf&A;WY>IxU0?re?AC%Le4{Bgb%^A121{=t{>sw?tZmG)?L(fxOHVo>d z)rNA|6x)m{1P~Kv)x;_Y7n-5|G;X5Ml-?5SJ2{N{b5v zT!S7D9F!8ILYwn7gaHzUItikF&yv##iybPRnoiR3=2(YK4kTliME5xXSrP3x#$TC@ zW619(&Ho}*agXem6_7=X1Ie>249HfoINVmSAuipck1$I8+mLmHKYWsb2!9z;k^&Co zBej|t#OB5yoj$iF>ZAo6C!TI8IwU7JrwS9GOA>eE%y-h#+4Y?0cw?4#l8XreE>jX# zep&C|Iz6jMibG|V+RNY>GkW9VA{!_(t~Y0>5J<0_-nvq!=I24!Qu6s;iI@n0bFEE; zY}gXL5`TK`qppS4g5GrwZIr5}d^WYOP#-43B!{(w{28Ew7pLfh+Z`5|>M_*6vBL!lJJq3$Nn|IV@i-{K+phdM4;nOd~0h&_8 z0H0UCu1962S69x`H$($*NC(|HbLx8uO{X#NG>S$fNDbm$EfX5(6G-LIG)(rs)Q$Dj zNuDL4w=|B;#cuk&8PQ$z_md)?iCSwOuI2JF%Io`!wJfN2Xddz-4B~v~)ccD8%OGHw znyItYlcY3vIR0Y5vpMn-F*0eIz>qI8YxX2CLA_TK841%;l1gimR03EAZ&XHLPHcQi z7i*aZBAK8-4<^i-Yd8->VV2*3_-ln%%@vv}KwQ|E&O4-5LqZFuHOp|0&)WTU;Wga zO<@B8!y=SM?pl#0#w#8BQfaZ+6Zd;Dh2KbNwkcMv{whvqh2>J3m zWE&CVDQ0O`ml$`?Grc{|L!d7^K|N6@kB+?Cn$?OE!)aRk!rSBEAOft*dFp?abA19lI9HDp zA4X_sDTrSgqCpC?UT%&(*R7CV=|u4`G_yO|W=qkoT5EmzdBE_%V=Ym=yH)j z_yiI=Q;{!=8zeIRViOG>1`jfd#}i2g3L^VzF`5!T{fHu34$@kQ?YC&eru5O)OhI1o zB*T1BQ=YS!^g~PBfYo@H9>qtBn?L>X+R(~C909-8n&O(^!omu!mIPw*Ryk+f+pQ2% zLyLsub_^^pW{`2ceOYe;MjM!w+-z@bzC7B-6M#5ex!Mv^zGl4rGxJ#8NS03^p5oT( zh|M#57FSn=gNM{(bY)02G;i* zG3g7{z+KLq=@No^{O@G_?0|to@&t%+7e_c)ra(<^FSziUgtO&4bk^vE%X1SbF0Q@1 zL8;7K^X@jp1ag63lgLA>4A<^6-T~#---OMAJQ;}Y*7d|)b4dtlc6@*=@%&u-@*8*1 zHl|(d@r!}L14npl0QRJV&S#XSy9nIoAXjHIx&p559e_w~(!N!j@1rWIywFFvX|uc(IM&cF>+3M+ zp*1{_aqnNqI6H!FF6O*ntAa5UD@?uXVNXQFxwP?k*&_8ZdMc+S>ce^It?J5#Gmw=! zj1)Wh9va3bV;)NMIIm3WQ-`}R7bY3KH1|!z6Kx$|IchG=vqXGd?wUS)oj4-2*Z? zynaX53}!WWUgVRe{Cc|?X-g0HJ=)&})+v1N!I@r8jtUqe6$2w>_hd|ppMa?)=7@%i zM`&SasW{=VFdC%PFSu6WYwqDiOp+cXxkLB~ z8*Q7E9J}aO#!i!PG`j(q-KQMvmO%@ghV(uP7SWR%x54($ei8`TZGE3y9T5?si%Br8 z-%mDd?;!u_*l(UZXJcS<*xzs8MAWElgUA zX4GwJDec*nl=PKT`Yf|R$W#2Qf?1ao2M>5(99 z4bFHTVUaK*xN+*FlGuB^-8;$TtT6$VEYZsoww_@dDr1K9VnRu*+GdK!qs&Lvc&As` zEVz>SqGi@*Y|jx&bk2MbXJKM3!vV*ce;PlM?r)5Y+39Pj&CFzQ@|cyp`;0)5N*Aj{ zv0z0A70NptZsZ*rcV4XbW6Ov=cyiKOkeIP&RFh{}D54lw1l~$#8c3y9(w|1eL}iqL zu2uEV(9X5)xj|k{mD{TaES1*l`Umrz1!~)klprYQvKCaenpkyzLb!kHihI`c=XD3= zzZWq(RJ{Q!-F^Ii3FGS7jaXY#uEWLOHh57Iq3#LGmTT+1 zRyH=St=8pw)Td*bWtTI2cDA>%IEZ|4dtW-rr2nCa#rd?DVCl|9i`BvOX(4ym1bHxS zJKoUMcmPpo4rJ9d8ukMM<#Q`bCwBp*rK<2nadgbK9lb@iozxtX#aJ)gccXV_ zmXGGPUj3=wTmd^-gz(qdJ4!UE@Tv(sW)Hr&Ez7$U!4|z;6$6LE{*-%x6y?#Xx_x^{ zFsAAHA4lK9XIx)XdnhkTJ>_b|E56Tv>+fD|2`#MEKF@pnf^Mm z{MF%1OAgou6}#uBI!edk(#wWxM2Fbr+SN)4B3i3RY?G+A4YeZi8F>%lm1Ccu;a1%s z+-1vPU9}MW<-%Kr9YG7ysXjK%dIYti)A6v}cM9lH(r13}UVWvT<%>{4(BEN>vTsjX zM@k-u#5*NOPor1OUV-n!E4aI0FG%D|5?9SM`_`+qx@~Z^FjyWil5MlKeJw|Ds5&&s zZ499#y`tcUlkKRcgy?ti(K1MZ&mrizpre~!)(AHpclJdfq^)` z6UGzu>{`*|H^Xi;4`wGy(q$m4b9*H}EB~4*?UKP>3oWu8eKI_^O?{hF&cBhp&5&eOhc2>d~M;9 zWR{yFX-pXtrbz)bk1)NywLo*c>Zdi zc(?A~keToBMXVzkXpa@NpkXCDw)r6)Lp};uRLicM5W;AWy5` zM1k8tkq?fwPwp~E zwutW0C_7TXfQ$v3n}^o{*VXBFUCwO+O33U zM`07&`0`Sbv_7xkxQ)04a+AbsSKU*{VNb&yxd4HEFIHvZwUPo2fr^tl&y<+p_x-Sr z*m#YGFI$7gtN2k?W&?1}7>eB?vg0rXLv9r$W}cbnU)KcHdhbm-Wj1V*-vBM~t2+X3 zeY{&CO@@XIrN1}62z6At(m3CQ&M$H94ef}t`pHR9U$ zzH@8dbynMD1JCe_+i+6ehK{|TPR7XDYq zL_<3)W0r$_=FggSic)vVB1G+&6CTw}t@9~%Ybh*aE>E5N*;G*7Mg4ssz`krNVucIS zWj`>mrFpxIlipx3&o=syK*Hw{ter@`8a1JQr^Tj!VczNza`b1s-EUXtf>Q8m8?6-U zr>vS!3s6y!a${Rz+&alEjJJp-6`bc26qU`Ymdjd8TFF0EBTvUs_AJ=Hv@nZ%7|}Mn zvK!NOx{#u5xMqVhlYeRfFLpgwU39n=GGremuO(jVUq#=z49OTQ}jiAWy@)4d?s{L6TnL}0C%Uu=&4Nk*7)}WT* zsqGKDRq18-JQ(;jn?%{*sqbGjshQKv!=6xa%8a&E>>B*|>;dZ?m3z)$oE%lFD|>Ap zz1?UlJ4fXT%K1JCp}U^*st*UsCV%NQd$KcdDc>;$XaBP{x zbcH>jnj!6wGZ|1prIW>&P?IANW{Vjyg|z6m%cnNYgXN~EA1_iE-voKnBBkC~ zUJl>9=8o$XALJX<@qO&2)5AK&a=+E;{(}BzE|%lRyIKnTz=Hy2ub+Uwja{8x>}@q{ zZI~=wOl|-A*sG4JhZ|r<2l?qEHl8qE!W)LZsDwg=nh#ea_3|Amp(~-t=wmyqch~)^ z!|1WC+&dT%J1?MBOv>2-&g)7XK=kweSm+)l_##*sI;#f7LfKqG)3wbVl0+UHi*|e* z{XmBWa|uE%2+Z7}9PzX|4EAlz0lO*SQ^jyVq>Xxt7iBX$t_0JuB}MPLuNnci0_qE6 z4HUQGRW(D-7DaGv8(gM|Q_%AI|Ij5cakShG)I$Z-MfeY0e|LxdkGj8F!$!~61M_nf zsNHUPk|v7^Q*-KkjVCm)^)C)2m2tBzVa1<1WF)tH3Y5WdShop2emdLwB3HHvQ^wAh zl~g4AojN=?a-N&7`PwBDw>UP@i8G&r7QI{-e(twwH?g=47ZoPOX=g6AuO4SWp;t{K zPMHki(O@*rac#IZGM~%rcwcz#CF!J6#uq2MH?%3jCWPItcg*MtBO?c< z4t-3kXOHMV##xh`MR`|~QzcyZv#NJO~T)Fi8*^>t$(O0(UC?BTn_cEpEo72*T%J%zgL-)5*@Dx3E<2H!v|Eg5Nyd)YlvTQ2GCpIlWIr&0yGos2 zRk<89OclReI4{hxu3w+Zq^Ysn?(1si$}2WA^g5yvHvwL*yo0xE4#TUrhr>RQx*{&f z9}Ir+Z?kx@HoI*;nu*KOgJ#R`_G!g&ehh))CpLX`IFsEYi!x= zb7Ob!lnTX*>okWavO};p6$q*6MvId*--A$M*PZ8%u`q95%Ul^x(^X{)mPN41qPa~* zfAZbodG`jqLjHQa2~5~V3P*S5ybjbZ-4UTbmYG^Pc>kGtN_qKH33eR~ZDy{`SIF{X z?>%<*H|oX$BpPjPDYXXgcdFa9?~>_JHhj@sVFM2-`x-Y%wTHG-<I(ChBP(ikiv5nt%lRy1s(ls`Qt49{PWN9T^F_mCBBn^#2<>T%Sm|al z!^#49WVpC_&R3G;Ah{@{u0rHFJLUa$W**Z0yg2Y-nP_~|1F6U9YRw^LAY&{d;2fo3 z?N{mPc)tC5nl9qO___ty5QN;Jl;GTqxeD)A)2aCMiln|bf3~vVHq38tP=JIIEg^3` z0;z+d8n4tX%eepm)$LzuOt;F2v(t0iWRA^sQq zcal3NNrm)6EK2IknMHCrNt`UtzI6F-T(NQ4NCq59k>!-MCg})w^vhq!wB#5SqiD!6 z`r%&`hXwpMtln#ZJ8&&1?#~W0$KaHH(~q!9R2!CG1knu(pK|l=2$&g_P|S&nX>8dN zYhS$EdkClJ+-|Jjt-BYTFbzXd)|*EU=llk6yXbs~L|*-FHo9>5Y1Bzse-b?$L+Fo( z&@CllL^XRSRFT}ftCCvNBjvvOFaT@aJ-2t=eIu(U8r^;KWe2)nS6z4HFxX3s3Cb=T zgZF#)r=I?B6m~Z-gg%pVIjyF=;S?0|S=zVzAHMG&NKHiHMq%8EBc-7c(%n^4xk1l?Y(A8|?U%@?i7$YARE{VBPzBwBrx?Ib+PvJJY;(&AME_VS1n_ z^}CO&9ifgD*)L9oGQ2$ghcCR^Cb3toBF+mq3^Ely+iPg_oO1m z?V|@?P8ELMAA+;BK|T(Ym4OJ`6i@Iv)kpsJ2mC*0tb(x>^KM8G zkRW0Z5G>$~1#H~?*E9uOc>%9aJ3~twMk@zX^D8xLhfk{L0-au5G`7N zfk($4A+@^Y;78X7zunv_f>j8L*PprET7T=wy5Dl1+$;I5Ru#Nc!RIc;qp*aNW!vp|?AXk0SV>ab~-+JUE!3Sb`#VNcbD!{Wim z@C&rs>u@}SVMa%mC))g|C7TA$f*_QT9%E$fc=4?uH=tiNl0aR|=k(_2L*p-gi01sS zw$44A=`{}E6S-z+u91|+p^IBe$~fwDoFr--Mef$blH(HFTxRaK%w1?w)N$Lo9GryQ z))7T65wc2?F>*H2XdF$M*c*=lA)%d*A1IpWplaexK*}?sO%#yh!gWt;wD> z%+RtqpnrOgZ%#tPq#u@4wKM|CW4$DLvP%QnvhlI3RS7%VN-&ZdJt zI9__5cog>NAFV+zS9Y(n11iHXYZ4>8&*$j@&QPihUhqRo{;UXFRDTEbsOkMAw%CHa zQ{i6O{5@GYC6{Lm$`M{g+hSn0)veoG9;Q%X$J#aZ(G;X`y5Xz&H}rcGu_N_gg!nUL zJWshw?k+k(+t2ZA?Rn&$nW%NF zWl1!~ueb}ezpC^|9TBudF#+M9wulMDt9cg#u@jgR^_bBMG~pi* z>^m$C9EBQ>LtQn#kyN^ca>mv`u{+XCRwpgEW|SnVnD`d0G z?D8oAS5?|IW1X!_?6+io=}*aP#!U{3KH=1-jZ$*9SMNvfBwP9lnKVM1GrH4QZ~NGb zEyoj;y8@Qp&xKsJ3V66Ui=Gdy6Uwjs?^z_#xFNr}R4!h-ijaCnl^zP0(9norY^$Eh zY>4VW^hBll+mq_RJ|Y-w;ORXDuPs%aN)8XC_9#*_ae}N02wwzEdqBIv3M228?f$1(v!1(x zuQ)1NgQ;LNO;7DJr_dzYrWK~f-+2{R0|#FfoG&&xYp4|Ys&8WHHAXj@v6Z9$xRUT` z^UNG(1=`@vQfxY+{gOmy_5lAy)l677%Ls6u>MusN zxO=NJA;@v;(54G?$)v?0g(OEhamI4f1oSw^q_SeZ79u9sh1_wLpxs~J-5=E9c0yu$ ztD2C6PwRO?MW~7n9)+2F@cN2OKlC8Qnaq4QoM%(m33D!5Qug+GsZymF5%)>ZO*BEn zH&N=GYLmisrm}p(quCObMHke$Ytx1yt)!j<(i8Hcdz=2)`#y;5eCatqQ^=JOlhn4a zOWcXkmF$#}QgyNEW4cJ@v*~${@3hz8dnbsE_%d2$ zYL_k^8(=Xx44=mhDL2?peWs=}%#eO<4wRWL*@CY4So;_mLD>6Y z>Jx{5za<+l-3rjD7f(lcIJ_2!hDWO6?BtpbBEwUrKllbT#mkO4ltw3a*r%ns^xwnc zzmh~2+Wl0=n~xP=hoRXPhL+|?&Bqmu14~F0e-wP&5IUyhZJ>&dT<{q=3H84xafc|l z&EsbHhF?p1vFt`;D|5b0()`Qmabbv2&Y^SVXNyuYfE{WpkaJrOJJvn~pbY}CKL#X& zQQrPe)>t2upTqL*3@pH^nVZZ5x6*+;ve+68{1W({0*dc@{FSXe7>tb;LtX-I=>$M2 z9&i+B`SI*=yW+c&i3a0ygM)G`0LKVGAd)7j+6aklkv2TQX6BM`V0-d)3T`BQ&juc=+`=JL7tRUVu}1}nhvH&>BP+%Osk3&4RcSAdCFFW4yT1-rnp zBiDtBT<_wIB*7MNsKvDeN3G5ZPv8aS!TUijFBi9NiSh0Zt;{zAD`v literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/PersistentTweetEmbeddingStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/PersistentTweetEmbeddingStore.scala deleted file mode 100644 index ab9c06240..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/PersistentTweetEmbeddingStore.scala +++ /dev/null @@ -1,104 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.store.strato.StratoFetchableStore -import com.twitter.frigate.common.store.strato.StratoStore -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.common.SimClustersEmbedding._ -import com.twitter.simclusters_v2.common.TweetId -import com.twitter.simclusters_v2.thriftscala.PersistentSimClustersEmbedding -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus.Store -import com.twitter.strato.catalog.Scan.Slice -import com.twitter.strato.client.Client -import com.twitter.strato.thrift.ScroogeConvImplicits._ - -object PersistentTweetEmbeddingStore { - - val LogFavBasedColumn = - "recommendations/simclusters_v2/embeddings/logFavBasedTweet20M145KUpdatedPersistent" - val LogFavBasedColumn20m145k2020 = - "recommendations/simclusters_v2/embeddings/logFavBasedTweet20M145K2020Persistent" - - val LogFavBased20m145k2020Dataset = "log_fav_based_tweet_20m_145k_2020_embeddings" - val LogFavBased20m145kUpdatedDataset = "log_fav_based_tweet_20m_145k_updated_embeddings" - - val DefaultMaxLength = 15 - - def mostRecentTweetEmbeddingStore( - stratoClient: Client, - column: String, - maxLength: Int = DefaultMaxLength - ): ReadableStore[TweetId, SimClustersEmbedding] = { - StratoFetchableStore - .withUnitView[(TweetId, Timestamp), PersistentSimClustersEmbedding](stratoClient, column) - .composeKeyMapping[TweetId]((_, LatestEmbeddingVersion)) - .mapValues(_.embedding.truncate(maxLength)) - } - - def longestL2NormTweetEmbeddingStore( - stratoClient: Client, - column: String - ): ReadableStore[TweetId, SimClustersEmbedding] = - StratoFetchableStore - .withUnitView[(TweetId, Timestamp), PersistentSimClustersEmbedding](stratoClient, column) - .composeKeyMapping[TweetId]((_, LongestL2EmbeddingVersion)) - .mapValues(_.embedding) - - def mostRecentTweetEmbeddingStoreManhattan( - mhMtlsParams: ManhattanKVClientMtlsParams, - dataset: String, - statsReceiver: StatsReceiver, - maxLength: Int = DefaultMaxLength - ): ReadableStore[TweetId, SimClustersEmbedding] = - ManhattanFromStratoStore - .createPersistentTweetStore( - dataset = dataset, - mhMtlsParams = mhMtlsParams, - statsReceiver = statsReceiver - ).composeKeyMapping[TweetId]((_, LatestEmbeddingVersion)) - .mapValues[SimClustersEmbedding](_.embedding.truncate(maxLength)) - - def longestL2NormTweetEmbeddingStoreManhattan( - mhMtlsParams: ManhattanKVClientMtlsParams, - dataset: String, - statsReceiver: StatsReceiver, - maxLength: Int = 50 - ): ReadableStore[TweetId, SimClustersEmbedding] = - ManhattanFromStratoStore - .createPersistentTweetStore( - dataset = dataset, - mhMtlsParams = mhMtlsParams, - statsReceiver = statsReceiver - ).composeKeyMapping[TweetId]((_, LongestL2EmbeddingVersion)) - .mapValues[SimClustersEmbedding](_.embedding.truncate(maxLength)) - - /** - * The writeable store for Persistent Tweet embedding. Only available in SimClusters package. - */ - private[simclusters_v2] def persistentTweetEmbeddingStore( - stratoClient: Client, - column: String - ): Store[PersistentTweetEmbeddingId, PersistentSimClustersEmbedding] = { - StratoStore - .withUnitView[(TweetId, Timestamp), PersistentSimClustersEmbedding](stratoClient, column) - .composeKeyMapping(_.toTuple) - } - - type Timestamp = Long - - case class PersistentTweetEmbeddingId( - tweetId: TweetId, - timestampInMs: Timestamp = LatestEmbeddingVersion) { - lazy val toTuple: (TweetId, Timestamp) = (tweetId, timestampInMs) - } - - // Special version - reserved for the latest version of the embedding - private[summingbird] val LatestEmbeddingVersion = 0L - // Special version - reserved for the embedding with the longest L2 norm - private[summingbird] val LongestL2EmbeddingVersion = 1L - - // The tweet embedding store keeps at most 20 LKeys - private[stores] val DefaultSlice = Slice[Long](from = None, to = None, limit = None) -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/ProducerClusterEmbeddingReadableStores.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/ProducerClusterEmbeddingReadableStores.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e50b8a3dc11ffdad5d53f2bfd48eaebb14079b9 GIT binary patch literal 37389 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 ThriftSimClustersEmbedding -} -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.Client -import com.twitter.strato.thrift.ScroogeConvImplicits._ -import com.twitter.simclusters_v2.common.SimClustersEmbedding - -/** - * entity -> List< cluster > - */ -object SemanticCoreEntityEmbeddingStore { - - private val column = - "recommendations/simclusters_v2/embeddings/semanticCoreEntityPerLanguageEmbeddings20M145KUpdated" - - /** - * Default store, wrapped in generic data types. Use this if you know the underlying key struct. - */ - private def getDefaultStore( - stratoClient: Client - ): ReadableStore[SimClustersEmbeddingId, ThriftSimClustersEmbedding] = { - StratoStore - .withUnitView[SimClustersEmbeddingId, ThriftSimClustersEmbedding](stratoClient, column) - } - - def getFavBasedLocaleEntityEmbeddingStore( - stratoClient: Client - ): ReadableStore[LocaleEntityId, SimClustersEmbedding] = { - getDefaultStore(stratoClient) - .composeKeyMapping[LocaleEntityId] { entityId => - SimClustersEmbeddingId( - EmbeddingType.FavBasedSematicCoreEntity, - ModelVersions.Model20M145KUpdated, - InternalId.LocaleEntityId(entityId) - ) - } - .mapValues(SimClustersEmbedding(_)) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/SimClustersManhattanReadableStoreForReadWriteDataset.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/SimClustersManhattanReadableStoreForReadWriteDataset.docx new file mode 100644 index 0000000000000000000000000000000000000000..ea71e371e56611302699c1c5d3e5c3ff749cc9a9 GIT binary patch literal 37776 zcmagEWmsIvwm*!!dvJGmcL?t8PH+njjRy$s?(S~E-7UCVfB?bW|DBmR=ggdY@B4mf z9;(**$y&R2)!to7vfvOHARr(xAOh)JT2(4VaY>*cAY)Jpy&*t`@4b?my z&0X{vJ?w0olH?WFgi*enzhWjc2@-pYA!C;BI#N5*$Ki_CWZZIVFEgFWfj!<&@P@0; zDuqHZ#$~46`x36z3v~H3Q|gL|pX%#pY8H@!m-rNHx$|E)tVG%ErU>?sP0h>U*0Tth>S^uHf4tZYV$93^)sl|GA*V2t|o~v$}ZUih=k~`9i^- z)QPiVdw^8&YFDSSxV{!vFX7?&o~gxRMgiV3U9oMDriu1KVBS)%))viWW4qxxOfqao z0Evg%Zm_m(dc-XmlCU}DJ*R~Ru^`eHr>J9v7YE4&P zhB*f)2T8eRj;|$EZ9iUY^z*ug|0Ag;r0yfBb#}>j3w^~PW_vfZA3+`Go;@aohZ%?LIEPen29mL>Y z9|w(84l>QDYoS>2Pu(6N5s*RIgq71&+*>tRx4)jcI6G}kyMgOhAhd)cASHjun>{V9 z6b{UTS=V*jbQmbA8=jxvU1xBi@E7`Q*2-3k{@OgwO_gE{$lS<78g>`3428`~yuZ1$ zV#!F9#wZcVgpmFw^_{+JGXH0T-}}e656k#;4_ucJILDSq1~hZ-Vs9^fS9t&I%gx#v z_6e{rwh$m7D1YyZv7_T3ZBZMyUt>n;c&3BU|NPYoT0|KqK5$WFR%`>eHa@duevDKm z4x)`^7vTFChRO4V={B6Nf$zC-?0HGV0=iM*lRD=3WB!Pe(*|5q&DY_BwaG(L7l?Am zGE9v@RDCDI>9MK>C zxz#-kTqG$qEpMhOGb?_r0DrCdRN+}VEx_?{@Ag~uM^J3x?gf+bP=i7R-Bh*|=J6&x4IWplBLVCxmIfRD+xF6W2h1VOLS7vE5oC!?`>h;ICrTk)z+qlB|s#dT&s3v;x+hVq5PT%J^cD zWbcq5p7=zUU$De!SH+-p2x1eO)6o6u#vHDHad9IgR9%5*nP?+`qx8{DXP4;y6YeVtEb5+L6a8 zL9R5hXtJCa9}(m9ea@NxcXC)*Y}nJ&iLzBsz*T>PHW!8n)|@!FjFg&tGE}Ezq3i0c zFQzy<<9ZsPD{)9pDt-EN1pvBN-{A&+V4EZJ44W;Vb*J+B7T7ts&;->W|3^T}fWk8&E(>Y-hx>rq4vX+Yd!L3-0{K@*s*|i!I-2^= zBvDmVRXOWw^|3H-F_oepZ>!2~dl1Ot^T7v2T7;y7$;qO_E(UtF%=REwtjPP?9*gg` zgwv;qKqtPb_IXFe37g(4WcCMrOF+QpZ4u)#eYW7V;c}4RTVjKgn4^Zz*FNT%k zXfQ;En?5s(tiRI({_)iV)N(}6KrTM)6N2LAe)GHf5?HgFnM^E_UP+O zhg_dpt$6nc4sw|f1T%N0cL|O;ONl~d;`2U}q(iou%4J`$v%0MwT)QM3d*8=rx<+yHsZPV8F~(H}ma zq&jjis$z^HYFG6S4qJ|Z=Zc(4pCvchrQfSY;p7ZJrmxKB*Mn0o>iakFHR{n}& zZY$8e9%J9z^ek?0^&IqLruB1o2hU)8bka0N`+8*im4+Zmb(K3nzqAxy1`ATQAQv){ zh87PCcvq9_H=>t7fFPe*$&oIm2^L3}XgWmu)gC;3n(oh4vc7|X0wK$d&4vs16g)zS z3P=N!O;NafNl%ABkV?N3YmKC4uN~1giUWnm)79$WzHcEf#_Ah9H%BL5ZjO3&Va;D> zBsBloq#?E#e}&YsnJ-Em$wDtz%R$8m!>a^IJ?ef zUX^VIgO#Bife{OxpB{sO-U9j*k(hs0nnS#-m0brnT-^;TgUGE6XN}!vjV;Tw))rg* zHi|N;ZQmj9?mhn66v0mwH+F~5sCGSRM{l`dhX>EVUk>lCCzmDq&?jUqEE97SFd43k zqzp2nE1#g$8!uq!`+Q`AtRYn6^QD_$_lDpAg}G2CBa>K`g-q%vg5;yBKZz<{rCojP zfT4N4zX&*ZQ}_Z6Vr&>oS`+Hqbfh%G;a-#;q2>-igoz}n&n%WXLJ6I@pf!BvqHBum z2#l7UhVt2k+h58|rHNT5RRCJgjHHx$4wp<9l@NbO&p!&~n)ZkrR%SqTdgKpd1oepuKh|6{86fzo~Gush5FSOlgeqZ zespXXyrV=@`bESH8^){ch;jX=&QZfMrB2y%^~qz@nzqkvHY83O0#(VD@%60or6F1= z!&XX)5C*Sd;?lMA-p)gSEj=)gwhO?V@_*uI3X-N0krOJ#g%^ExnW0#v|1 zCcPc&Ti<+k{iya9`OWP^YRVMYcMm01_Zhs~BE#**WxfhROoM_#?XmFz6M9#N6 zqszq~E8y@MX|IhsGtW->eom2s_k(JMABKeqNCQ3_Kb~&zO>+<5(TR~t20(6TZQ>Xe zLHxomJ2zzvN=~MJp^b#s<;mc#{}qfkopZvUMls1+=rz=KQqt10%`x0N`+~XLkySKIDT0FVd$4}z^bWr8lJ-DvVht$u3zXTcBf-{;~^El0^Rk*G^Rg!%j)wVuQX_iw- zQ;4;MNr?&`ZW`y-f8QzD?hEjGx!&{TNbn@BFavV63aBxMUIK)8@{`TJ2HE~ zzMJxjn(FOUUW<&ZeVJ3Ge}43bH(8t|9lR@;LZ^$AC+#dHRb$wd$eMGi;_AyxCQYY; z)_Bo^(XUWowW}C(4%mj%g@;UKY39M`rIQnmv`wA~*r_tuyJ*$NR|4QRr@n*q8@?#~ z`eFFbrOe(R4~-SL#~BCiaqxkAoIjSbKX>SVU(o*CttW~o1~KD&Ie&xe3rWBzwvYJm zE1$BRRsw-p*R0{c)Q>XsLb^vO6V zjCRitXKo+N@cmw)4d5&q7x2Z3_XA$!^`g)WAvEqY!TZ@BjI74?EEY{c#NE5aQp8w` zYBN=Lz^_W!B1E_;>eE$&Z9+aw+HhOn%q9+aDZqaAh6WSb6O1gu-{m3DvQZw_{CFbJ zcae$~Kul$a<+56;abUDA%e{ItTLZ!K81$X#pS6yvz~YNw0s%2lhXg_XSFK$>d)k`2 z{N6MGpF|UOCF^~=yYmYSUw+ud27?Sw*@MKp;TwB*X4jpw$+OMhDJEYSTT}crKYdyKZ*? zyyE!qJszBS=$vIIuf5v8o@EFv4LiI&#=Jj1FP%r12(_H-=|4PfT(+kyv_But9o@Ev zhVC7EzSi@<*}Z?;3}FJS5*Z|yTuk>LhNkTAjIW)vRJ@L#Ts3;G+j5l%5mol~bSi$~ z35%?Mzp-l2@qS)d8~1YmD)jEC<3(7<|*>{@afZrFZax= zkm#hqspcl|LB`ITSJICVAV}^<={NWef7d>Dd3NGHzGvO=h$Djt?XePU+L?12o$-8; zbbIBIPQW#O69I5$@OtI(BD+qg*rRdv?DAY)7ZMkZ@e5&k>ss$>Z>bzl8f5XaYhU;6 z($hWfdc75UvQSAO?04GQU_#ykq)HI^NM)arybshocANCpj4x0oH@tk-2?e00Q{aAX zhwZ%B#BEOz0(eHKwfpd$qLb8w$KKQ;Ll%Xeq47?KHXw)AR13Y<8v1Gr`ErLab+pHr zhhY1?z8&^k_`$s1Y`lI>*L$f2taNPg3skwEpM|Dyon><=p1k`SoC5@^bL^Mi(FeMc zBU@LyPZbW=VjOlKe!SP|bW3LAb$!#7f!XdXQ7~adssVg<2r=rDZ3neZx6$# zyfcyZG+-*g>BiH5OW%d5Pu-J2G_FA2DMe;cA?i~nGN}|C5cdtE@d=v)xVm-S44+yJ zQo$LhJ%$I)sR8o0$&zxYTgCUO;0Tp~L%noD%C!!_{|@M12dqE5>px6LEkg_1E3CPi zgW=K^eBA~Nm-!E=iW^^tY)7d4U?87XC{QZ$uBwu)f-eGEDh zS%xJUn0SS6-Iab@_)HHPV;#d7ikksK!!1k*QZtBA&~ex@OTvE0PyF@(7;_QweJ zR27C>?Vursx7)1DDv*LvA)`YJbc}EDC(it#&leMiQkdOQ5wcC;0IJPBsw<45aD{~u zoX`O|!XSEu6&o1a0a=*)d-4--66;@+5If`!pdx?8S2y8OFhVeS!jJSxZ-V^``;^TCbhTh}&y`$2D!m;R**x4ciw9@n}LLvuMbJ03Mh3xbM=`v;@> zI}cG?Li#PY;zZH*yNoNsNqW)e9C5hs&yEOU44%_QDD>-P1esfd>%@0w0Jr5#cf`T9 zE=IrM94WgK=lH|6UjttqYIXyvV^GR$eX05Tt{;%J)W#q%p>^`5(ChKnalIiioq!22hRyr0j=)9BvQ z+#8B@PujqylWWF<-E)iT4@RMvu1+`^KDoi6-F-hM zcPBu;dN37}yH$IE5pKK1%Pfw~mp8(oiM4$gg^z3irPNu<6uPpgG4us(#`%`PTXOih z1bR?K6SJzPOu7|I{e3+#vdnQ<%Ko-tm+B6>HUv#)RK3xIZ}Cw_GR=9_X0H877+C{5 zyx~Ddrxrbf~F_OY#G;nYZtkwOF@#UgzU#(pn0A=l!j#KhmoeXBw@Dmocy=B z7?&LM*v}wq!R39m>jgH25BloH8)xh+4MJN#Ebn=i8^< zpKgY)-mZoQz1m-$JOTG_N$-oNPjg2v$BxX#9dE5dS$9k?)5DNnZy?Ak8J?|z5Qbar zEh)pdB#$a_&m2bU!3CvfE-pwC^5c}_Id>^YQjvJyI@HdxRoY~O9A>H)o?p;hdnJKip9|Vj3x<1bC z5SY?rsdeR7`A|!U1mZG%@^Td03wfzqP&_@VQq)a~@8h0bnD3x%+LV(-nLjrE5W+J> z7&hS?SE(OtzLmUYcCY}IV7YG1jYJg~$e7R9(wfktPSJvXp%m-5`Mhe!r`!a0*`Za%&KKI6qvgotC;y-w}RE}p=dBq zCQ|BiqVAZyQ|ixw54DJ*H%6Tf&#Lj`F~VAM*veU6YVS! z(E31Vi@eYz^0>t8}U+y zAVl$dvm^{m8)S(ed*AICeV^%{-fCXsSUW$DUrJZ+PlEgM{_ys+h>u+?R-U}(C^uA@&1+kH_;Jvypg;ZF-8{Nd$XX;V z_iS8g{^Cy*jlouXb^5+b&h{3QS(e4Y+XV~PUhp*uBlU3~FHdWQN<9O6ew~4N71=b( zDlCO{y@l_ee}t7$d@=p$_2|^b`z!6XBIRciY0NhONJuGbWA8EuJ`M4=6Ay>;Pnorh zn|NRP$2IZR-6NR{LoYUsSHMel3DAcae@yV%TB&`x?d~P9B1EEaW0G^bzILfdKP8XXcQ5})r{`O zjhW2HuX1Nm*Z$xO2d*6kj9-u4TBuB|6&Kc2D7Wb*VI<7&h!0#{wWs%ps}7x7d(*@f z+!%_o4ci2=-`7SCM5XDXWvaME>vv1xH7fmVk_%7QRo2?1nqAtB+KahXq;;J2tVdbm zDTWDJ$loNnq}dc?Cb>me_X^=HY%Lqo3I$4v?lMVNTvj2yty^~@;}*iBXyT@SabD#=>+4vulOao}QlNKBDOQ0k$7G~1qkUS?}%qDa{%jqI(a2ceLs zgMZRmiY|PFZtu!{`J`g=^8+~=uB5cAid!3r_Y}S43JF7X<&)7;Q%R4=hHB5|vW+~> z?MfNJ{m-a-p6vH>Bs&2di(ZQ&`+VLs3;g;%zQVw6WmgL${0Y>+vckL*oSlM9h4Rl5NGFDCSKQ2a#`3La3Z0Q zKC-3UrnOB}ooV>^V)8lD(aB*JmX^nKu0Si7DJweN75A&PIGJ;-j#!(OL3Zq4ZAHlT zUvrVJr|afP_M;5Yr%LK6bHAtWPT)5?lZ=f6Po1m7 zenGx3dAWduwL}bX8bNbvp1R;V3<}qLH1^DOnU_d(h0yVI#@-q(CTzAfO`__(!U8r6 z+U{T7Qz`8w$Qj+$Pah2S*Z?27`QHg}Pz86mZ3bIfck#9;pg35V?Teot9backCU-pG zqP(X+55gZ!-F*jppr~L^Twh*+)EG@tugZ?i26M}>vpb8EebiKL)5~su(>;3gm3H6i3f>Hgn^iOnbtKf-in>@)h?=-&q^Z;*|$t%;MRU2!eOkas9H1-W)ocugCrcVdf6oDSvqV z_-V{r$q}puKY1o2+NHyvD|hk|tRAK_&K$Ng4O~HQ>t0gM(ZsU)4y)6cRtmKfb9&h# zpX)AQExn*cd0TFn%?<2Z(hpw$O-k^kH0=&(NUDo5W7y6k?qPTj@Kt;!;)oeMZ6G$w z_5gfGxR7xmI+aUP%}+#ik*`1P$iHk#Qs#4cb2}Bg0C55ik#e~#1$F85HiH7uJ@#vZ zH$P|Y0c+&os@6m=>R_fV>TuwXKAr=)0;xC1)3EdtQ56U?i7Dn#9sYB&Wn<7^)w_Ma z2r0M4h~Je!q1bf?w!>LV)PZ;E5^U3-a~OVv^hPq7;>H4j8#mY zlN-&YNc&8a+3L(G?~s%tzhmKFUh=xOH@Tn>=OUGQkCQnYnHNGQy(3YtJ;wgwCy1>Ar-~;8c{seUO$qnYM%w5Dx`wGIyNm+oxpiL9FV2>%3~cU550$CU(%z zdtUo*==M)KYy?xIWOBLot50bXfJJ#Bv8o028{MeQ{7r|XukP~>h^(}wVO0FpW|1m> zTC~Qg_#5jc*^E0?8snu6x0FdYr7O%KVs3z$CT__=0k|&8pa30f8*{#J(nw41fOEr- zQ-p}IUFBA7F+K(AmATX!YA}oN4$WP7}7AISC}gD6Obw}lE|ZZ z_$)iEv)l?b_TM}Z4ML3`>=*|b14#{H{^ISK<%1QL&ngz^s9St<0?kNk*LhSmnI&?xoZ&(v zj8xYw?ZVvh;V~Up{Iu1siz^1GXDE6x&{aQd8H`pf4}k*tf7pz_{udjM>;ESk^@v9R z*Co|bT*Kj~k{W9r2=c8@Nyk>dTy8NzM-SOA+jzhFcQmBWNeDk^PXdc*4_eZITk$dE z76OAn(``;Li$PujIjA6G3tcJULc=ytW3R3gNO%fcYRs?1t%R!7|9n1dR;Ybpr3*p6 zCcUaqOlvzpW+5ZUJ*K_??efsq+)|4Z|j zzxoSR=WseO5oM<+?hs(bKnZsHq;ym}GG3UUb0odnQ*4RcWVE>5eY$XgONHKE{nm(} zRHm;3S9rz90MQIkQbACE`9X_s)s;Z~YLZL*Hd^uK)b@1sSnCIGJn!2HPeDzH7xmG= ziL4E2NHgexDzs+mo&vrwo#u(75hi9`*YIAWx|1ZiH&;wuT_hOXgCz`*2AbKmh(O^$ zZN+gp(U(|@r1&Kv-po^!gQtyNg*Z8IL}loD#i&=H63u4UUn)S30ENeY6r2=lK;s7_ zs^JlwVcv)>73)bLNSkRu1GMCQT3c)Z-uBM{BV3_peJ-SemGFC=`qbUt6MigkAwZUv z90?v{;HA%mRijOwJP8U-Zo(9ZGx5h9(1D(4#}q7a`eHizFQg4wBb7C=X*^5J-n-^G z+6X+~K%*7tCAYv6@MMhA305j7B51Pl$4yx-u1&)SG3s~L4d^K|6#_U{F~H)$(nN`! zK~!PH5yA#X;7PIOFtNnqRus$@A;FxX+00{p9kWG{eB|nx4IljJy=$sUFImF|-DJix zSa9w^4+Q`rtVU|*fH;rT!={m~AOL@}2eXj`o_T3w*CFkUOYQ}Pb@5YJ$r*DZ-ASCdErPi0_ zdtlh$=a4}qvu5S?lwj&?r12Zvf zJGcNTP}gVhk$}c`@UQ>^Q(}fNEjdjs1PKeiIBjg0k=wfoH{a9$Ag-}@ltC10u31-U z$?aDI9xMPQ-Gw3EIy=v?&@0O=Q$vkuZ4Qr&2vGp;uu zJ|pF?y`C+i>Z$Nv7PDQ5DmWR|d^MfihB#fNOvy*AWw?b}9^eeOLtFc$BNMM}Yi@vU zvYVkbMAc=LIXbhKgk#B2PBA5&*|0_ adTrg@OLU}#(3LPrH0OyIU$Qi&fhvojk1 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 ZiS7<sgj7tCj literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/SimClustersManhattanReadableStoreForReadWriteDataset.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/SimClustersManhattanReadableStoreForReadWriteDataset.scala deleted file mode 100644 index 63c1e772c..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/SimClustersManhattanReadableStoreForReadWriteDataset.scala +++ /dev/null @@ -1,65 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores -import com.twitter.simclusters_v2.thriftscala.ClustersUserIsInterestedIn -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.storage.client.manhattan.kv.ManhattanKVClient -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storage.client.manhattan.kv.ManhattanKVEndpointBuilder -import com.twitter.storage.client.manhattan.kv.impl.Component -import com.twitter.storage.client.manhattan.kv.impl.DescriptorP1L0 -import com.twitter.storage.client.manhattan.kv.impl.KeyDescriptor -import com.twitter.storage.client.manhattan.kv.impl.ValueDescriptor -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.ManhattanCluster -import com.twitter.storehaus_internal.manhattan.Adama -import com.twitter.storage.client.manhattan.bijections.Bijections.BinaryScalaInjection -import com.twitter.storage.client.manhattan.kv.Guarantee -import com.twitter.conversions.DurationOps._ -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.stitch.Stitch -import com.twitter.storage.client.manhattan.bijections.Bijections.LongInjection -import com.twitter.util.Future - -/** - * Manhattan Readable Store to fetch simcluster embedding from a read-write dataset. - * Only read operations are allowed through this store. - * @param appId The "application id" - * @param datasetName The MH dataset name. - * @param label The human readable label for the finagle thrift client - * @param mtlsParams Client service identifier to use to authenticate with Manhattan service - * @param manhattanCluster Manhattan RW cluster - **/ -class SimClustersManhattanReadableStoreForReadWriteDataset( - appId: String, - datasetName: String, - label: String, - mtlsParams: ManhattanKVClientMtlsParams, - manhattanCluster: ManhattanCluster = Adama) - extends ReadableStore[SimClustersEmbeddingId, ClustersUserIsInterestedIn] { - /* - Setting up a new builder to read from Manhattan RW dataset. This is specifically required for - BeT project where we update the MH RW dataset (every 2 hours) using cloud shuttle service. - */ - val destName = manhattanCluster.wilyName - val endPoint = ManhattanKVEndpointBuilder(ManhattanKVClient(appId, destName, mtlsParams, label)) - .defaultGuarantee(Guarantee.SoftDcReadMyWrites) - .build() - - val keyDesc = KeyDescriptor(Component(LongInjection), Component()).withDataset(datasetName) - val valueDesc = ValueDescriptor(BinaryScalaInjection(ClustersUserIsInterestedIn)) - - override def get( - embeddingId: SimClustersEmbeddingId - ): Future[Option[ClustersUserIsInterestedIn]] = { - embeddingId match { - case SimClustersEmbeddingId(theEmbeddingType, theModelVersion, InternalId.UserId(userId)) => - val populatedKey: DescriptorP1L0.FullKey[Long] = keyDesc.withPkey(userId) - // returns result - val mhValue = Stitch.run(endPoint.get(populatedKey, valueDesc)) - mhValue.map { - case Some(x) => Option(x.contents) - case _ => None - } - case _ => Future.None - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TfgTopicEmbeddingsStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TfgTopicEmbeddingsStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..b9bf2591c8f2d634a2967cf2a451f4a5dd139ccb GIT binary patch literal 37231 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TfgTopicEmbeddingsStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TfgTopicEmbeddingsStore.scala deleted file mode 100644 index 1332c573a..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TfgTopicEmbeddingsStore.scala +++ /dev/null @@ -1,46 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.frigate.common.store.strato.StratoStore -import com.twitter.simclusters_v2.common.ModelVersions -import com.twitter.simclusters_v2.common.ModelVersions._ -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.simclusters_v2.thriftscala.TopicId -import com.twitter.simclusters_v2.thriftscala.{SimClustersEmbedding => ThriftSimClustersEmbedding} -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.Client -import com.twitter.strato.thrift.ScroogeConvImplicits._ -import com.twitter.simclusters_v2.common.SimClustersEmbedding - -/** - * TopicId -> List< cluster> - */ -object TfgTopicEmbeddingsStore { - - private val favBasedColumn20M145K2020 = - "recommendations/simclusters_v2/embeddings/favBasedTFGTopic20M145K2020" - - private def getStore( - stratoClient: Client, - column: String - ): ReadableStore[SimClustersEmbeddingId, ThriftSimClustersEmbedding] = { - StratoStore - .withUnitView[SimClustersEmbeddingId, ThriftSimClustersEmbedding](stratoClient, column) - } - - def getFavBasedLocaleEntityEmbedding2020Store( - stratoClient: Client, - ): ReadableStore[TopicId, SimClustersEmbedding] = { - - getStore(stratoClient, favBasedColumn20M145K2020) - .composeKeyMapping[TopicId] { topicId => - SimClustersEmbeddingId( - EmbeddingType.FavTfgTopic, - ModelVersions.Model20M145K2020, - InternalId.TopicId(topicId) - ) - } - .mapValues(SimClustersEmbedding(_)) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForEntityReadableStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForEntityReadableStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..1accdcfa08045cba2a4ab24b17d0fa8293b4ae7e GIT binary patch literal 37103 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForEntityReadableStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForEntityReadableStore.scala deleted file mode 100644 index baa3fa2a1..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForEntityReadableStore.scala +++ /dev/null @@ -1,36 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.simclusters_v2.summingbird.common.EntityUtil -import com.twitter.simclusters_v2.thriftscala._ -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future -import com.twitter.util.Time - -case class TopKClustersForEntityReadableStore( - underlyingStore: ReadableStore[EntityWithVersion, TopKClustersWithScores]) - extends ReadableStore[EntityWithVersion, TopKClustersWithScores] { - - override def multiGet[K1 <: EntityWithVersion]( - ks: Set[K1] - ): Map[K1, Future[Option[TopKClustersWithScores]]] = { - val nowInMs = Time.now.inMilliseconds - underlyingStore - .multiGet(ks) - .mapValues { resFuture => - resFuture.map { resOpt => - resOpt.map { clustersWithScores => - clustersWithScores.copy( - topClustersByFavClusterNormalizedScore = EntityUtil.updateScoreWithLatestTimestamp( - clustersWithScores.topClustersByFavClusterNormalizedScore, - nowInMs - ), - topClustersByFollowClusterNormalizedScore = EntityUtil.updateScoreWithLatestTimestamp( - clustersWithScores.topClustersByFollowClusterNormalizedScore, - nowInMs - ) - ) - } - } - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForTweetReadableStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKClustersForTweetReadableStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..765e4be1891caf4fd00091cf633a87dd97757e9f GIT binary patch literal 38605 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 DO9~a> literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJob.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJob.docx new file mode 100644 index 0000000000000000000000000000000000000000..d14e1fcdfbd318df5d0257a3e3d3fec8f4776b67 GIT binary patch literal 38686 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 nk09+=$9dZu0>Ha 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 P@q-+J>2W{(>(T!K%mP=j literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJob.scala b/src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJob.scala deleted file mode 100644 index 1e0703647..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJob.scala +++ /dev/null @@ -1,151 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.storm - -import com.twitter.simclusters_v2.common.TweetId -import com.twitter.simclusters_v2.summingbird.common.Implicits -import com.twitter.simclusters_v2.summingbird.common.Monoids.PersistentSimClustersEmbeddingLongestL2NormMonoid -import com.twitter.simclusters_v2.summingbird.common.StatsUtil -import com.twitter.simclusters_v2.summingbird.stores.PersistentTweetEmbeddingStore.{ - LatestEmbeddingVersion, - LongestL2EmbeddingVersion, - PersistentTweetEmbeddingId -} -import com.twitter.simclusters_v2.thriftscala.{ - PersistentSimClustersEmbedding, - SimClustersEmbedding, - SimClustersEmbeddingMetadata -} -import com.twitter.summingbird.option.JobId -import com.twitter.summingbird.{Platform, Producer, TailProducer} -import com.twitter.timelineservice.thriftscala.Event -import com.twitter.tweetypie.thriftscala.StatusCounts - -/** - * The job to save the qualified tweet SimClustersEmbedding into Strato Store(Back by Manhattan). - * - * The steps - * 1. Read from Favorite Stream. - * 2. Join with Tweet Status Count Service. - * 3. Filter out the tweets whose favorite count < 8. - * We consider these tweets' SimClusters embedding is too noisy and untrustable. - * 4. Update the SimClusters Tweet embedding with timestamp 0L. - * 0L is reserved for the latest tweet embedding. It's also used to maintain the tweet count. - * 5. If the SimClusters Tweet embedding's update count is 2 power N & N >= 3. - * Persistent the embeddings with the timestamp as part of the LK. - **/ -private[storm] object PersistentTweetJob { - import StatsUtil._ - - private val MinFavoriteCount = 8 - type Timestamp = Long - - val longestL2NormMonoid = new PersistentSimClustersEmbeddingLongestL2NormMonoid() - - def generate[P <: Platform[P]]( - timelineEventSource: Producer[P, Event], - tweetStatusCountService: P#Service[TweetId, StatusCounts], - tweetEmbeddingService: P#Service[TweetId, SimClustersEmbedding], - persistentTweetEmbeddingStoreWithLatestAggregation: P#Store[ - PersistentTweetEmbeddingId, - PersistentSimClustersEmbedding - ], - persistentTweetEmbeddingStoreWithLongestL2NormAggregation: P#Store[ - PersistentTweetEmbeddingId, - PersistentSimClustersEmbedding - ] - )( - implicit jobId: JobId - ): TailProducer[P, Any] = { - - val timelineEvents: Producer[P, (TweetId, Timestamp)] = timelineEventSource - .collect { - case Event.Favorite(favoriteEvent) => - (favoriteEvent.tweetId, favoriteEvent.eventTimeMs) - } - - val filteredEvents = timelineEvents - .leftJoin[StatusCounts](tweetStatusCountService) - .filter { - case (_, (_, Some(statusCounts))) => - // Only consider tweets which has more than 8 favorite - statusCounts.favoriteCount.exists(_ >= MinFavoriteCount) - case _ => - false - } - .leftJoin[SimClustersEmbedding](tweetEmbeddingService) - - val latestAndPersistentEmbeddingProducer = filteredEvents - .collect { - case (tweetId, ((eventTimeMs, _), Some(tweetEmbedding))) => - ( - // This special timestamp is a reserved space for the latest tweet embedding. - PersistentTweetEmbeddingId(tweetId, timestampInMs = LatestEmbeddingVersion), - PersistentSimClustersEmbedding( - tweetEmbedding, - SimClustersEmbeddingMetadata(updatedAtMs = Some(eventTimeMs), updatedCount = Some(1)) - )) - } - .observe("num_of_embedding_updates") - .sumByKey(persistentTweetEmbeddingStoreWithLatestAggregation)( - Implicits.persistentSimClustersEmbeddingMonoid) - .name("latest_embedding_producer") - .flatMap { - case (persistentTweetEmbeddingId, (maybeEmbedding, deltaEmbedding)) => - lastQualifiedUpdatedCount( - maybeEmbedding.flatMap(_.metadata.updatedCount), - deltaEmbedding.metadata.updatedCount - ).map { newUpdateCount => - ( - persistentTweetEmbeddingId.copy(timestampInMs = - deltaEmbedding.metadata.updatedAtMs.getOrElse(0L)), - deltaEmbedding.copy(metadata = - deltaEmbedding.metadata.copy(updatedCount = Some(newUpdateCount))) - ) - } - } - .observe("num_of_extra_embedding") - .sumByKey(persistentTweetEmbeddingStoreWithLatestAggregation)( - Implicits.persistentSimClustersEmbeddingMonoid) - .name("persistent_embeddings_producer") - - val longestL2NormEmbeddingProducer = filteredEvents - .collect { - case (tweetId, ((eventTimeMs, Some(statusCounts)), Some(tweetEmbedding))) => - ( - // This special timestamp is a reserved space for the latest tweet embedding. - PersistentTweetEmbeddingId(tweetId, timestampInMs = LongestL2EmbeddingVersion), - PersistentSimClustersEmbedding( - tweetEmbedding, - SimClustersEmbeddingMetadata( - updatedAtMs = Some(eventTimeMs), - // We're not aggregating the existing embedding, we're replacing it. The count - // therefore needs to be the absolute fav count for this tweet, not the delta. - updatedCount = statusCounts.favoriteCount.map(_ + 1) - ) - )) - } - .observe("num_longest_l2_norm_updates") - .sumByKey(persistentTweetEmbeddingStoreWithLongestL2NormAggregation)(longestL2NormMonoid) - .name("longest_l2_norm_embedding_producer") - - latestAndPersistentEmbeddingProducer.also(longestL2NormEmbeddingProducer) - } - - /* - If this change in counts crosses one or more powers of 2 (8,16,32...), return the last boundary - that was crossed. In the case where a count delta is large, it may skip a power of 2, and - thus we may not store embeddings for all 2^(i+3) where 0 <= i <= tweetFavCount. - */ - private def lastQualifiedUpdatedCount( - existingUpdateCount: Option[Long], - deltaUpdateCount: Option[Long] - ): Option[Int] = { - val existing = existingUpdateCount.getOrElse(0L) - val sum = existing + deltaUpdateCount.getOrElse(0L) - qualifiedSet.filter { i => (existing < i) && (i <= sum) }.lastOption - } - - // Only 2 Power n while n >= 3 is qualified for Persistent. The max = 16,777,216 - private lazy val qualifiedSet = 3 - .until(25).map { i => Math.pow(2, i).toInt }.toSet - -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJobRunner.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/PersistentTweetJobRunner.docx new file mode 100644 index 0000000000000000000000000000000000000000..71eadd616155b33c52fba982f26ee455140d9780 GIT binary patch literal 39565 zcmagFV|ZlU)-D{|?%1}`F*>&GbXc*CPSUYEw%M_5+qP|<^z-cfZoKDw-=9@i&9%n3 zF;=ZP$E+%ODNrypARr(pAb}JP^>W4hm;_)TpkW9gAk@!MEn$F-qlt~9p0b;*iGvQk ztF={Kf{fgX0Md_(H}pgXK0*&+MD&tvTS{Bn7;KTs)H_a%MTRqJkf(=H?ogE}`Cth8 zn6%^vFZ`8i-geJ=axGzzGaa2YwOnG*LeJc_9Qt!pjy=&BB8dg@9lY5-h^odk&o2|~ zz>GUpJ=}UIK^H<) zo!>@%T!^29eMK|g7U{`V(=AhBn*BI`h3a3bi2cy7jqP>#?L0nmWctu%EAb_9j*i4D^4F<*{RupiD@<7kr|FWQ8{MDk6DHx*~@%d3>F}M$Zdu zyu}Na+uIaGbks4r@DDC_j7;ZKb8!}F3akRu3^nHbvlqJ5H>j>^Tl7|;5}{lDh+LJo z12wEt!tO{A1Wd>u*iBUl`DoTr`?RQP&Zh(`ghceHt;G?F0*m92Z($uN)ttQOW&jWX zG3k1?pM~X3yH+kgANlJY#r1s!j-zdnm6BzRnJ_u?5G3qSZ-pfeCL&9so6<0vpIhX= zYn5Kn9|j1^De1bB-a?GEqV#f_)qX9UYTWs@Pe)2Jrsh6w>a-r9;A1<1f6Dkf=|ZzE zYS9a7XiAIy;y(=v`2nkB{&|~EeHw)PX^=6%NZuY`>%d?Hus8X0lc&dy$o4QIi9UFW z&dR8U-XKAVN>BqI|CAI*^IL4XXJwPI8p&WE+t|so*36=D#^2x>xUuD1Z8Y2&rhp9xQr{x47}6UvJnPcc+G;L)8ij*ugsZJ<0a4v z1=GMJn#HGS+sASaYkWSwy?e5sL(rv~aS?uh?Y_qO&$`^MtYDse*2M}8 z2ngxl>tbMQ`&U_%M{HIYky>A9z;qmcnnMaIV8!~+3r-2IVOPbbHOvkZOU8gTF>QN$ zJ%yli{b0BY<*DI$sU3b<5Hy9XmHn=QKJt_^C~vn0Q&;(OV1H%ofY<@71iTnswGUax zPH$qkd=7#R+AzGB#exW;hw3LnzeL5^m^aT!5iz1E|kMb_4H^3_B@^wjzHWA9~x zeBI*uF9k-qpQWI0mETL9<{u zeh0IF^>DnaHa3dp!g9*bB3ZX_U7q;5~UKW?PzmPPqbv`Lp(< zhES=xSS{o_;w-vDU2q_aiw*Qmm@<55nk2!(0MK=doT=`&Y8TyjUsKEzjUaW80QSry zwD^i4LcJ^usfiaISD%dP^LrR@bIQR97gv4_st)|~diP~Ny$Us6z#Mm}8JW~;e2P!> z_efQ#F3Bri0BVCtlcN7YI)8#u{k+q%&x%x1sP6e7{Dkjidy=F|`d+ zp5Qc06%Q-9n55nn3I2S!Z*8rq46h9Mm(ZzCH#i@2cc%pZd1D~!k{2bz0|9y4{{4Y< z0oWTee12-3tUo8GKX=BN&WFP?C&tIyI}Ch-1KCnF*`1k(?A;gQ z(LH<<@3$qD3)hD|7E*Lmd<0ICJ2O<`%(v@f0DqJvzRONDV^9`2x#iAadD0I_(K<=d zW?>Y=qrh2o?Q1`KZG6>7eE}WCFAiHO_oW^x4(QP5C{)=k>kb_Y}RTH~Gxr6Q}=%7K=UH<$OAv*fx{VU#7-|K{n- z&MXG@U8aPq9`@8&1N;7*z)OS=%IvmFN!H}2hD-|7nKnceVe0rYKfk%pXlZ=p>kxqV z%>z;{^_IkM;F8VqlIgN-H=9vBngL)}`5f|PN=7=<6)y0JkA>82AIAsB{JQrpQ)~sb zYv=nswwI=*wKI=3ELhhdwO-)(UR<0EwOLcRy` zXC7uB`oQ;QyQxO@Zo#(MgU-_gHGZ{%hf#t%>h5#8duR~2NNlD25L;6CHNr$&s>*LK zk>Nc^gtx_)xW&E{jx@uyWU&|>B^$#WU*q)i4SIu80*>tyhwYDW`?^DdZ^XG5>Z(LgZK*0@Jt-yd-)q3tN8j!gbFdPrcxtP2{NR#4F=g9=Gyl3S3kbAk zfIWMbXn7ep<+1^qd{W6BQ6oQZpD>dUd&l(Xa%Ke+i9SJV3j*>LR;Q)#+|JaBm1I;C zfO&dkN0#c(fg5vVIOUJv%J(4mg7qAj zOl#n|IOg8pj*&*_u+zJO0@{?db9#{qoUoK6o6+Vy^C>Dk3r2Q2U(C9X_}21Wl>rB) z`t$Kx6@~Z(z=sSB&gE`kP3IL<0VqE}zx9TH$sDAd;b`^wA#6FlI|9_)q1#W(WHAp! zY*2v;vM}4mYGNsDpuS2?<_JmHeg)?n?plV+>_5#HQem^2RFUOHT((3hX;~v7GL%L; zQOY5O7d5A^TXCu0n5B!l{qSA97RlON(Q&LCeY>%X8H{RIsz%(f(T2@-+9HGzob$XDfw{$yPbL(HrxK(Qha42qdj@=40EzHojBB!-qCRW z#^4NAxI)NzDWRv2I!_vLJ5ccC?O=tAvK4pqBiCswFtHNn+m$TDV7=r#f$g-PiK&fy zZM;idFY?OCHy;T4&K#;T{p<7b`{kFhxG+j&o1^+wE?Dx=&ddXbmi?|~Lk*fKj3>DK z3(1|9=|xUmu^%x3FUgJq{AVeiP7u0F6|9dHyZiC0{-G}wL+zH;mGj2Ox~8fq=qc1C zy9X_-Os*=lzN`zMUlwPKf$mE_CjnGY##}KLf@U8D)4sY%2{rkT4ImP>)Ol+!_uz4)~VaBaR zGkAjP(pT)<;@mj+d@o~&oCWo39oa6>O48JuRL-Bn_w{FN^%2+^!C+U#>|cXe$rE|< z1bwrJ`+(oRck2~={gI;+1=oppgQT7>qS??@Pm|~|s2nWOH#F7dZMBWoOx^u4NY=zN z1QhDZaR82P&_^%wyH{Bgr(kcZ=HXuEVhl~>aw-4)|amvb~Sd7l`uQrEpEod~|J zguj>p2hOkU86pZd;tr>GO=bYQ>gD&rObu)fO3BB&*~uz&n{Y5Z1JQ6BIYoK>vG?)5 z@*$bE8tGQgiveI&{fWxb7aQCkB4t%BCo^+9Fpx^M!E^9|TEC)!c>;#IMp1zzK(|>V z0Ayyk9~Sp>=|oAWLz==>KNOp40pkY)0&YjzA1bHvey1&feYwCb5ODY*$q4e>U6?YBt6msIM87*l>G&`&v?!h%OD0*vn+k-@3i zyZ3oN8q?E!|8OWqV!UTN+27MmrV1f>BaR7*JjHmv8tCqRUV^1eTYu_%I(i!Nsq`op zJ9sXeGS6qO1dA2CX2OUQx>m*qnmuM+F8o5=?*bm`Kh$9c_y)fKcK&cP(ojBP^K&%K zX+pFRM&frfV#ySk^g=nm=2+?a)7Qr16hbG>HJhD0r!`9#%>%Wz6Pr@5;FG6jUouqJ zHP1CZUha-VldPYbKKlBn_{nPU;@kcHC7}UEY>pu3O8cZB*%_WHHjIe{MM%0FgT|w# zoi?H$K|3+trwa)o5_Xi=q4zVGyiMdyQ|3(RB)9Xpq{H z0g^P2{1$kx2IEnsAB+z*P~aVVfejLq)!IURq-pyyLr27bjLbXiGnTe-hKdRXt&b)P zCy(-6$8s~KGI(DX=n@;ERw-Nz;L7;cJeXD)3e($(U$t$c4@^%C&*iB1cmyN7Ryh*t zi{8l6S&8Dh^=;ATm`-MuJVL~#&uu_U=P_Q|ZA5~=l-hWwKq}&(bkjBGmQfyNMNaWS zHg;>t`A<4!wekQXbQCZuyt+snwZb-O6k~cfBC5*Hv^`d&pWp}}AmJ$c)~7Fi(}wnT zY*n=CuY}btQ@h()`BP`X=IjJ-^a#JWv~uC2tGR;Yca8h(U1_1dv+c`v?o1}qnPt=> z7@+3PX4y`XP5Q%ZCm&WEl{~@kJRju4-fTMFo#;}1kNlEA ztmA3&R5Z;<%~kH|yq@c$FfEtS zR9@b;jV|Bc15|ch_`BEa+G-m*eB|fYf^FZn$+XpCVerac6u$aj2ef5M8_g1wEXnzn zxN^SWMGKyvN9#ucrDWdA+<=a&oEH+%+_0RD@A(BzJAydkDV^FqfCX0C;D~&HtI%h8 zdaKJo$IJIOwp_2c3lraLGOt-vPi%V`dI3$<8fzGslwa_qhE-iFqiF|F{n-_8TOS0;t^%-Frs z{5lU7O|7IqXE+EV+DwqV3CdS9#H5qX8gUgt%W^_!?y4^Kw#BbPGE-;26TX)nNXE;& z!u)O`>#c?%t;@C%XhN@u$U78Miv3Z|p$VcPG8OyFAUHF_(Y=NEYOJF1x~B9bY3&@YaKWD6tBiI8iXNEiLmFrg z%cH*e@Q&%c5s-*Whj5ZGbADBt(iZ4-AxoGbCs}ohQlMqfmoZCDi`%LAUUyk&M-NC4 z{vE#XLfmaGJatQj5w&k8yxo_-Q2YoftT7yxi&XdZSEV?YZ>K83xSj&08UEAjh*Aum zFa{tXT@`R3#D9A2;OJ&$;_!FJtP{5_R_)c%k&~{ z^Z2xO)si&V@^Ub9bk`CbymRdKR{ize`lES0h{1cAKsT}Qa-!!TIB9QdWaXrx^ljwi zy4G#gildO9pscI2P3{L*NO<+ft$B^6$IINxh`Y;A{tsJqKo9am%g)XIo$Hsg(!uX~ z55a{CJ>GSE_&sLcOBn+m8aB=g20vsCvXaJ*tN73P)88@pr0u_5$!`q=2R!OAth{`Z za@p`%KSLZDID206;+%Zr7aHR|Q(OPs#k2O{7W2XP<|FkX_v!n9y>FShIzMq4*|Dg3 z!jgoCbX^KGYRf!}OntdbxVv^u!Q&XY4fD3AbARJ=wtG+Zdvte*Vejdf4dWYHdRc*@3GrhV?f;S{v}G_DV}jg^wC@S)M40F zIWk9{So7+r8SIUmLWb?w0^N4Gj@^>P@9h?*+~Ub|hDuZ!8hu-Z2%aB&j>0_=T!R=~ zS;7BSrRSx=@5LF!(ApAZ5`^jV_I}V~>I3z5yY}XoqWxOsz0|t#mABmG;ygHs<2-{y z?&QNu_rjaEBGYE!1GTq3F}!iP<4pEoB?_?pxcl*2vqLNcr@dKAjQxq~xs%=ffr*Ub z{c&aAnd1PKtN5z#qa_5F{N7N)O_w1Ts{=8h)jIwvmCP_jjWuwR*1q{CY=TH|7zd{w@^W8q} zTd&2J51q$R@kK~J8`%{n6A*0bf@adQjkngXwEP5#l@l>D4b@%-z8a196Mx2y-@f zJx5g=UKMCY8Wx7HNec&ib`E72c}34r$d^qo3kEmJR2IF-W{&|MtvVI+6E9~o&$bVC zZvztdH~eQ8d}#_|bvkpimp%J8H%I3^4r#13K~1>%Y7rkj`>rMUX*ZNA0kBJxdyiy3 zmjnxPsSQbC7GRShmNY-BN<=vYkYj*F@D1{q+dJP{I_|lfWwwsisRwma;ENXMrX&Ef+)70VYrS5Uo+}QeNJ4|+ZyVd-OPIE+!xI&Ql$X(3 z8nj6U0M_6f(h@+Dy~aQajB5oSq!YTvi1v?e1<%X+bMpJ=NsND<1luA701N)(`ieSi zGI}ruH`u{$iFJ^F=00PM{R}1iypHOxP|eS5L7#d5BlK@5uwse}3nJJ50=Q5h`5b}y zi$!89xN-LXqWG^=(eBq382(A0SN%INXPi$yib$VY(Q0?;2w~~|iy|E%6onfs)L*P; z<6P>HTK`=2KSOyA!nNbhE$yhf8Qdb8bA;{qs!m=PPryDJKAHscEeV~HFrt1*6!FnT zjrFeW8$L~_T8q{WxFYJa`*tl$10z=NwBfw;T8Xb0eQPgwPE9&CeIA0ZJqx4G+20pk zZ?qo!XEH0dTq}>}_~Z`u_J?w|9wRpRbsFwO2qJB^>6Zi&v?DLrVz576Y~h6I+$Qvq zXjhBz(l+{53GdInofp$w;QLnE>3s$=#jQ{5V-K26dw&8dxBV)jkczFmD8F{!JlWG8 z+kIKS+~Ap?vF2!DNIE%)!I&7?HR6EPUT2bV#y4&Y$j08llid%sh;1_}+}mM#`q=YQ z7>2oEdcAS-@pQRpj3Y(NUv~(pn!lq{TEQb7ZVp#ljKgTLs3sX}dhc3`=~uX?R_?J+ zSY1Cpb6xJ}jZA#Vil4qF=j?EFQTjfPFoY3uQc~**3N}Ekg0WSsH=pYN_TGD0Aa^jr zyzYn}+A1-eswg>_jF?~^8iqDERUyJTGLwr#98 zf3lD%^o02N{DhM6@f>^}+IgONN3!Tl?p?QYN`16`X;9jw=YMT)gOTKs?(5&)^O0i5 z_{Lz*fnmnywxW)!({4@c{q@7e&O1jXkb=R*yd_s3yT$Z%3d{1xJAT0E${v*LHx_UC zUsL2sG{q6asB;?hvkiTBq_8t_w7_zP#^ujxG)rbWd)mSzX(Q0&Jxv1+6|FQ)pB)CW z_RxNFY{ZddeRhShQ%?d~dhZr@XuuI^q;K4+cxpYL(aAAO>W$CJWft;6fY>j5*5e(# ze4e4$BozRdteAUwMeXSDRPeoG(|lDCd8#FRf(N{yS7FfH#X{6e!dnr2Sv*eh!zoRa zN|~W&D~vFfZE@KT6gs^*&S>QwS7WMj`l|S)3LgQ;VdCWVD7p*$N-MWuVn{K+gBaJ- zB_l5fpkY*(nLwU1Jn|UCHI5%LY9CXk6KJxLxMI9N2N7qsYQc#>;qOnM!_&|h*Qr9* zfTG!}gP?}lB!jTP!Ne^eMZ5ZH@4#BXQc9kvEOP0kK2d9!(zg_PyxhPBSU-WqIyz=n zH}Ch)+KZM;`}ndoKigA9Bf`%o{ltc) zH(J2~i+BOIdO{~hhL&J!0gu`fOhfRMDxS*$WM2v$AR(7}?`G0-WBB{HB6cA~r6&RA z$H(LQ^E@tQnG|9gBWK5=D{GaC0b4GNtTJiIcW%zblByHcKDn!hG%Fd>%A>4c1s3;B zk%6Z^_uQV8=KEPx`Jk0>YR;*cqMZ3dB-Oq~8x`8_EB2NK!zrfuzPmY7r!LSHQGJyW zPj@#9*)nZio3EO^vx-v59%5t`l zKV7}fqU$k;vwq_PytVk2r-kc!;GOjcoRCfGid(d@oac%$dfyWA*H9cSE^v(F77 zwBAh7yXB`>s^$~KR1R&&3>(hIE_0?+R_*eHe$E}b^goZC8z_t{m6G3TM9UqBsA@{Eryt4$p-KmNZ-XcBv@o6$2bL1MWTG*K+#cLYD`HRNV|&%rSq+!voDMe2%Sak`_K&eNuwbG(iHr~jk*Xng>#Z&v z7g_2V$ddMm!@DYIfyiWNV4u|&BJ-XgTiUZ;zbjfEej!D{7L$-tbZ#Q@7^f9mBBHA( zd)8m5E9?|pQ|eq_w3NZRTPntTIE;AU%J?Wju;#@w?J~``$>B~m#jWn<$@A|}a5BYU z1}vXQy+w^{V5z`Xv{{8bR^b&!6Pa3 zU6mXRm@F%51Qk1Zxh$sC9j6`RNiBtlsT~#1Uvzg^yuWdN{lLRQ=G)@5>}zP;#@Qf) zU}IvmDR_ReeVZ&C+j518@R)GygFPC*p9Xm(D`kyeU0ecJ9ZFCs&xp z4m8MgV?5SgmP(`rce0=FQpBMQ;*iOdTod(i87{V2bl5j=u{L!DycO8m88ce6D1ugM za187F_LA=A3)lD9OqQ4MHF@;BkacyfO{~L+HdI-MTXrX_1!va{bSJ1bXiq8#iOqx_ z6!#gsNX$!!S}t7yjBJi-+H4M^&QOBD%UyP!f-Z@B3%x0v5`VNQ9LqvJ(6-+krUA5BY=}~9jy?+SVIV~?~6K;3BClb-N#k4a0svTnPv=K z7*G*r$9hx*3BH1m%|c~dwCn*-tmt2+du`kH&t3y)q-j^9)id0y_UArzN4gR#R|5nk;{ z$wGXtQ@ph++CBMBH@c;VvdEGhsnQzl*<}C;Nitiez9ofkD?4LzIxr66zaFsCroyv> zXe72ot2JiWK?N6oW>8&mg$=_iLCuuh^G>#y!weo2qf24_wjM88QU&o6Ye2gc0+ypp z+DGEmF43)(su!+KhdJK6OOeRcbVQn_3C9;t<2J@WbqJqA|;zC1DOp-a%dvHt%a=koJ80LF4D9TSs z@zY0w%D0SM%}t^LI^A03#|j5sw8~)0v>?Y=h-e7PV6&I+FHB#|F+7(sfQOu8>*J^f z8{01;DoD%_Bc=7`YN5p2r>N&<77vbTKw>A%w;i0&fZc*o3qDo#Ko>))S8?IVlKu!IWkyus zQDf}WL>u738tl?fEWT$*cvk*-KA%N7tCJ=GAdgr2e6K9>}T3S3917H9PHsTs)$TyybyRzwnK z(a3|f;(AMq3Iq}p;_1-+k2n~-IvLTsQ#aBQVxP; zT(}0D3?BK1r#AgxipTiVm%k#D9l$`4ktDZ;hY!4q@L@x?A$XhG z;C%o6(gEfdAPLi^Yv4e z53IqgR~sxDB|c8XH(fiDCWL;qfJchp%JBy>*t`^~XSQ0Xs8ub!2i1x;qQtH&VHFj@ zKu}kv5btE*wDx&8G61DH+tp}yd=-M+kGNQ4Hz78zCR#{+lKJF5WT}%WYqA zKWRK9F5e+gVu)VVU2tT*BN)BxK`RR86Mvv4BflC*v4`ZQ=v!H^%8O~*Kcvqws88Ow9yPh{ENrO0f1F+B;@?>Ai~V7#L{R(5vIp`H zOEBQyzYGVOjyxInjfF9-Vf@5_onAl({c1lzL;UcJ2@R!R+x#z{NQ zJLQsm3Lv2>-hl!<>2&+W5g}*g?R*|tTao*!faOw1)=sbTr_tCZ*x539QVx6--5tbY zFMFsp%F3yxWUPjji7u+)cB*fT$ z4aMhR9H-fWVr;Lmwf@NW?X=IJ@xOyO|94Qr*dE>8{&g=`r~}HuAE;kt@K%>HX{aNQ zy<8D2U))A+D`jxoQ_OFdLE+Qh+;g{#B)2X zKN*f!H`HN1NAu757I@|mhvPyIlW`3<+kkv;TTnaMzs3_|joF!!7rth4QY2o5I$)bI z-@1~GYlK<+#e{v3aJ)G4Jb}w>j|nI7nF;4#472g}@tg$GP{;me=={GKUZ>pzkHu`1 zvAZi|3!W8yu^+N8(uTb5&7P(koT!AH;;cv|hQoxeX4n{I}UZtI3cpj=dygN9I7?rDtES%kY+BeS)H?^#0U@RoweW&~RU>~D{m;xaD$hctiDzC5EUv5+&+%K|-_vyz! z*13ib-1LvuE?nEqRxEcm=+fb$1xD`i3yBVDffrp4Pv`4F2EB`fkodX+>zS!BHwz!1 zwO)cvyLGQP-i_i)V&YHMSVg)J&V(9<@wJyGm`vS}lNPz!w!uIm_4kaKx?$G(l>X;Z zyoT39$^72pr3&m$bxt3;Va*gHvD3pEg|;h*tjSv^S-p0PNSBMY3#G>(^bfSuU(hI@ z(2!DpR^Ovd>+|r5`hP(?8;^WK^RWL7JxzuhhVcJ@zH0A>+gP-6^kbi+UFtMVB(f>cdr}QN@pCXesR_*@*-mNe3q^R}?qt>8+Hr?$w z4SA^46vNP_r@PVS*Tnl+%hC*!j`z`gI4qfS_qeeAtE~X6Fz`x zAoVhr>P)VWOj~;S@s&&cel)FF$@&bCrovgBv>cw3OV5g0T^piab;=~$U0yS9u`P*J zAz$K}YS2)xD_yi7^qo-EtOpSi*$EIC>f$IZ|4Ch)FgBR;^BPSzp#{06_l|*5`mQwd zd1!{Y$OM>`S;;;Q#rJ6?m2W!hwm;{+^-#tnG~Zx|Qy_B8(e-{6Kl~s{nFmfGpIjC6 zKDR720)x7}ZE=YdWR;nJ?H4ZOHcv5LMU|NeDS%!aS03Y#oyjXKiEM7&Vl98;lS!GW zeMT2yg%_C__At>nZmSL{aPlpHW^IYdd|5uu0tMlHJ0~+ml8IyMxSA}MO(FmCATq<6 zV-8Z!qH+^4!+KO)l1mTZma%LDq@S~vJA)(3fKJt3ulpssUkK!w<7JtHjCJfDwAXY0 z^b?Tl@SwpKnK2#%e03~|E0E~tonnpnp5l8ZJ?FW@D&t;qTr`3sJF|STQ_Lk(swXHi zBfwhTnpBd%E|u_I6Y_hC0EZMU=gZSz9eKQ(GT6b$wKTe2IE8RNf19d=+F?WMB=;Ko%7I?!9ugjzIlbahQ}`rtX5{Ra0wtl@j( zn=;7_Jp=nES8t0+1uhWbE{!Rq8Ld$+EhtbZ7>`9`q&FD%#m2q>7bE~06nIGrUnY^C z`;1vPM367RgjoQ1Ll7wj_vfl(6Ep-DNXRz?*Z{1NP$Hg?p@@Q0u>8(AI0j_Y2#SWW z&5At(GNUo6E)+u^paRce+Y)7Z1=9LLxfNu{P^15qz=3^8YqSc|NgDLeGzm87$2tQV z0=xzOnXUCtHdn!NNX_7@KiL>;?;*zeS=1IsmV04~8cKd(Hd&}zw3bd)PwRWBj#P`8odP@gl{*-z2AF>+HhDKmH6)b-TQWUVZ0JbO8A^cosxB}CQ zqc9A@9z*NOpTJBRv;y5=b;C+Cq(a^hnbnbw{EJ+K;2&~WftNy8mV-lvn_Q<=1WY~n zwcfyl;C~K~)t?85dT(G_apyPx+N}0X@cgqOyna~5D5BO*T{OmPF}@cqhQy@0W^dpd z)wxR$mtc1chEA6vR9(t*m(+1cBiY54PxH=7KFvFWf*ka-Y6SaF^Q<$q|6yKLn^pU- zvBfyXe=vmUf!#a7-5SB680!SJ&{v|!Dt4uWaxcb30a2lb1mBDuW)dV6u~nAnRXFqX z^2Lk*v?xmgSAFSm$<^yJ!uVLxEShLM?Wl~E5N5MKrKiAoC-;_QI$+g)*Gj$*^cJ%49 z+HxXW2qtHCW@U*{&-DmB7br);SjG`^S6HdVm)Lo9ziNK>p9Z;sC2v3Q=$4ZhodB|x z8m$ZyBis)*!W>EUaJZ^nC%&=l5RB!%Q4*!vwA;$}TmFMX0}wPRZpb3uUjW|cNS`<$ z8P|2j8GZ$W0IzE-!pE4N%5hg#2Zf!oGkH-_j#$CmU-0B9W&gE7x$AujLvcbC`jiZ0 z6Z+&d3Dx^5e~NO4bh(&MZ>kB1d8*qumQ8;u&Oy6uycF%Mvs`oBS6i2!R0NQVk5+!7&}^Nzna0=fq{)$-}Oq%54DIcJFkRt z!veI5a&wY{9P+fq*b#&IXr(_PeL~0Fai5x4!osf-4}y<*N_h7-6vn(F0QS=a(9wzH z2@KdIylfK68&oW`+KEbc^+CRlV+DhkSCN5)wF5Oa8@*q8H*}^eO9uxKN?V1b`({9m zWcv%EBuF>Hzr#3g-a0YlPOQ&wEZg2#yZQJ<{{Xd5R63WZj=v7$cxoNPw|{!z`vksI zd}2#H8^p}-CnyL%P#PR`i&=?}J};~7sJ(Q)rLuD$_*6GZ+Zu84`r5e_->LE6rJBfe zKUKtJDQ_5jUFH`T_=kVCki|MD1?Vi&!M=AXKCAf?thYD10aw^CBN!Xm#NSU8!Ml(I zC|&8~=()s3WCpLv+lekmWutOTRO(fntqj|6eeg+6kKl6`dQ($wfEYHXxU__74P2){ z?rVu`-dqg(u0}bFYy9szf6)+pgt9~E^m(Jw%z0rlK1n3y?Gx9~$^;fWN5SWPNM7_O zq=MVkA=D+TEauGib--}^0?t99P-bxu-z{!YC8m5a;@qP0DT~vyf)mM@EDOnoMf#Xa z+g%_FR zYxkX39OyIeZfK{}*BZ%wllWNjm2ROenff~(Y0>O|~DZ!BRKN7okRVD;P{WGzAv!ih&=2$-v`s?kTw^BjtIwwE+ zt2EtX_JM#`n=g!aQGdZF&`eYbj=8fj?|&qY=!Nl4ikm9l{07bsuLOqvidE_I*6N{i z+5RLb2hJbPZn~tDU&AB-&hOQ>5l>agG5$HK1nYgsC9lVj^{M)I@uu1FZSHChU^l|k zdF@vpUeV@);Ks50r=Ed181D-8u8Dkqf=_BPpOzT4uIqO(TzUrIz(brgI#53zq2DTB z3jdl7xSDlZd>zR5&+PwaG5@dLIOjeY_G?fMZzFvAn+0%c+x)C3GdMrM?eY5ar!dsY zPdS+9+iJc+ZC6>z-MY*;G!wh<^AJ4hn_qhQxghxnn9H??1Ov1e!c3^_LXuHae`x!g zMwc@R6pEJ%am|lIhe1`)tv>$| zRtCKH<9KRHMg^ouzC#6CaCPY6M40co-Lt_P+S-2;tcz)UkPJzdur-Wu)&8{8gn^k5 zYaIfvVNHS21aL!4xGv<&svq?(a8(e$1j`s%Dhx#bHZlM}?WFHKu>k4CB$@X){zZYJ}cGcD67BZ3}e^j^APTPdK^J?2K_VX_peA2O- zu9=&Smru-K1JIE!$dNqlJhh85_tvVi6r8#>f`9hntJAs|tp9IIDeeRF~b(*%SfidOWiS@PJ)H zG0;F*c`U3g?kaim-|z>l|9~$vGW)s-{waQcs}ax=2HdjW$NJylRGr!PuZJzwV+ibI zS{b9klmQBtf4araI_0C%q&G9kf>M~o!ww!WcURvh&LcK`WFB)axv+$TAHB}h9a75YRa z8ym?+?TVxbHhukVBW?}Qh?p^oupkEe$}@-RC0Bgc_RDeOE_8uF{^h3nZ1m%dWa8+Ah zhkjvX7@LvtH*dE6}R%qAE&TVun@>LFH(uB^T2~P0| z5wBN+rkRL?R=E;o(!_21@u{gO^hqZsCh%Cl)RSfB1&mBGPF5UZ5L(V^s)G*PSgy3_ z%uJ5q3Kmg*4d`#C`-OH9vS0zf(og7vWuXUl4HC0|s_Z%()&H{!s4G5=4IXF0(h!q_ zE8v0a*I0B&T42M2RJ=>-+WjXK<0lkW_#Y_7us*}h-xC~0pE8+$xiJ#BTNw^Et32yU zWF(;T2;ZoGX%%Gs&1|fic=DW>?5j;lGveet4##bnuUl(CA|Ks{OD6oux5lBTBr+-kI9kQrz4vpnLJTzmTkfg^h<5BhTeeM6JaLIMyIPu%!C zl$b4rteg<%2XUUPsz;ht3{9@f$`%RJ28K7ixp$Iu2dYE3&bmhpnO^#kVUsmx|!A70z*ZctvjqJ+*;m^1wjw7!48Rkp3*;y92A#KEh}8QDye`E_P;qjG$fG9_qbEJTY5GHhp+b=(Nk`WgnRx&glK9#Pbfv!J z>Qj1`Itc~ER-~900Rf67N-G)iA^~|p%%aWb zb`F$r6>A}I9}GBNc2J{ri*)(yyh256>P{SLWaUFh zCRsw+h$MpG{xB&5;0%}KY3cT#B&e0K+Or;~CWk7ZA|xIh5N&1F}E_!F96y(PNypwC9dBgOV>G>mSSKq0uFsGYhjp zJWsd;gLDOgFzQhs;HekKdsBa(6pUg}{0|FQ#J^btb>85~mMW-LSU8pYAINdRYbQ7S zL_mLcTKsxNB=ky+_GK{;Za8Inc7b<~h@m7kTEyf62`V~X#%7xaWrv`v1;R=wDRp}f zM0A3pqJt>-GIxJ=$YU0ad2Ej&W7$LL@TTZ{1Oa)#q1xmJP#fB0C(w3;P`1FG>ENNx zaVils4ibA2Do&9#rUfG2=;z~U!bWjM!&Cl)#WE1d$^}hY6t@NzE88zvR2aJE>MQ9^ zx9%dj>}QWEnkQe4$sB>U=|Kcdg``-7N>y}*VSz~XnEPbRhtYl^OBnQ=sX>zWe+YXA z=uDdZTR7Il6Ppv;wvCA=wrzW2+qP}n&cvSBnK<{!`@ZMgbN=7G_gl|Oua)lV{o8w2 zcdhE`s{YXf-i;gg6CEyn&yN)ZMF@AXbfm|gUing?4gga82MF~ONb}!7R-Zr%J`L3!+?MDue<5&}1KJilI?JyVfN?(}Mea2i25<%*1P1>duU-qqF}kIbr6GE@ZtWL4p>Kx6&w{EVOI3D2_z}t z7tfU~$Z7gs!UH%DsrZ@jZw0ytWK#)mjTjD0VYA`@Ck8c(m3Z4Vbi{6+ADEOGbA_U)ZMrXvOjSz)_&{=EP#aGM z<+7512uH`grjS8~w8!_ZQy(6A%gYyjq*cY8NK!TfX7Tf9`y!7-i;o1Jd#6zFW5%>H zISj*xKEC_BySjC~c(ra+vY!6gg8g89JhX20Ug54<%HHz1z0}#WA=_F%e+a+d+jXng z?)o^KKDbE#c)I*}em`|-f6Ja8-}rI!a(~fYU5#*gnf(Bm+P~Sk#=}jcgVx^NS%KG- zzHvDJZiA4X?2;~*t%5M_qQkZ}>@uax&i>lHe153cx<)#57=C{lzVTMtnhd97K^Go! z`{4u;AaV1@+{w<=r~1LC$m%KC z*xSeFqv?l_i}~K#xK}~<6K$*CrMHh8uTDp4+kh1tFPIos+|T)fQ`Qgr)ic)-YTbS-8O7C)yqpN=9OJY-eI3pDv zW}VI1Zge|<{Aq8m-lB0vC||4|eIu>xu0R&zn^v8U5Z(m$kLUH8olKRCTw1tN-@oY2W((u!Udu zCza!lf#K=hyY}s&|Lj-apG(FK+h^isg`a+^DqEds&(?q1T-9)`4X@3*rI(rvAC=0d z%Tbu8R`@=ytD7As&}?30-f6Y#U1Hf%@hD(Vc3S_85ok>5vZ}9dZOIiE2jC~smE)^KM~~mXyzD&n-Or!cJ$+;)o%&oRMKAAt zVB;Ttln#bWuDSbo=14*ET;k>P;U!fc=VfTsX&3arIy{#j-I29N)CytSl%LYzBA`g) z!@qyjZ|t<@k4f{;pdVLxu~js(k~SRDW24&)lbR0`o0|wPM9D2orIchsD{v_dIzOa` z5G&SOwJ2p}Z}3N5ny^9by{y9JJbF6^;CE$j^aKHR{oV%b!T{`IdbsEFP{VoedfE|( zW$CVZm>&OiZzW!vk@b+;u7kEVcyzvde@uG-&Q^4i_H^}NH|;Vn`k558*J!_Z(OSnQcR#m<+7_-#2V?{5%ZD0o)u#3o z&tPw?XL4VZlFhJEZ9F{8bbmxbq%HT)YJC!1&nz-bD(oHCxSw@M&6}a?l&G{#I**6D zYSvBDY}4uI#my!c-;Jo*j_8~p@kFhE=|tF8(ipUIWNQXq8Y3Y56dD6HT3l4?NjRya z)(tcELZcV2m;Zu6qE-uDF-o)Xq4D1JD-*i;vE`Dnqxk`CBMu%(pYh|RX>~c?FhsEJ z(XLac%4M93H=Y*UWAeNJBtWjF5Jru7MH9RN$+8Y)3B^UzTS|DX%2&YuO|=KBSCm>e z(pKzn+e?{?F@&NFH?<$-JZeHO##zjICqi;3*>|b$p%mi8c@vQpJF{W)?c>iMH)YGHbB^6=RR@%v%r67t`Thj zU(h7l1QbIC6#JA0Z((09@eKcPdlU5%bU=8Z`R%n@BEAF2+jGH(hL5Is{2p}plmY9IraumYM|t#g`Q%Pv37-vYgvFNb$INK5yIq0|_$rsie>`m8_m4)8%cWb* zd2R0dPR+X{B(q%D-XB_Jdka6!Urr};wXO?Z5Ra`dS8gSHt+hSM4K`OEkIva>Isl$u z*V6E&eAd#U3@)PGF0S$C-nL(HR!;bWuwhm zvlRS@jB$PeGb^@P4ZS4d;ls-nb3H!&2&~e?lYCrc8BB+e-IWU8EU!$j@-=e^ip+g& zQG37B;;pRn?l~XtQBL~n+a718n~q#>*IqpLd+i9Ell`ja)9Y)r2ygm<_pQd;{N7mI zYXhG)D~@y-?Q6^GB^w@m^xz{B=X69mk5Y zf0A{ffph?19a#N}69nJc0nK7m6{cvaErlWBfzGit;kLUW)#3>OSy7tK^YwU6jlkj! zV`>)+YqSp@@*Gn;1&_ys>hzY-Du<(WCoe|d?JuJ)I+J=mcIYRky4-&E=uBg;F&+~q zxj7p7Ed-b((0JLzb$xXz=kw~kVEtWbP_SDE&! z7>~s&c=@hmO(Xi<)77XjPe=}3Z80-HslDEO48PjcdyGqID>Lb9W*XkT=EZCoh0n?C zP;rMwbd=`ltlQk3`I`zdIEUl$0djp?!Aq;F;}Dc zi4Nyt!zkTCDdgA|fAzb;b`K>D{hC+ZuThN z?^9k#!-V=9zr^InnNji~u3zu=?(jW?Ft+vhoJZa$ka&2Uc%lDlf-+Hv- zJ$bZh--E<+j6Wj|q%AY@9=_8P)rS&rir)Xmh|M=xKyYME+vB%ge|xt3GdjF+IoyIB z|3?t<>z=!G#3%y;#J4mlVnV1;2_AxP`@Si6poqanMu@^g4S1MJ_J-0gey|?#I5oHz zPrETsX^}}G^AbeG>DP6aB@pQDbj-VSpyyTQW$`kP_)gTkqfp!FQDb;{YjKswgwxW{hld zRf-)npYImtACD=xjAEE5qTi%9go2`koa6R%#>!K7;zr@bPiiHH{p{ldu`^LlGZ}>9 zUs}%G)H`F)$~$H%i~G?GpGS4=-P`M;PD;nXL>g58+{mb7_gP6Dcqo?pc~zz>1)ZIK zcl5fLyMLlxwaor{qO+NM+iSX==xF*Lf70CNEe>;)w%J8vEWEPutCjLeUfG+r+9YGH zO%~NnoY5#7N^Ho=#&E1njU{oM@94-~X~KH~t$^}eT$GVc!KWjWI<5Jbws_V1z@6d-j^H=qE9bUMiCR5A4tntV7s4=6!Ge3Yu^l{IwxZcy* zs;5H{y+zn<5kItz#7_GzGZ(ied52f?@^){W`S>}uic+U~|736DUNOwO-3ik{TF!g}^R?BQOG$_V<)B44wguE7H zLz1tp7GoAI_0^7B>k3+{=gm>^;;q28#K(^qTzvS$Rdx3>a>8~yz2U^3H9bV{70Zu4 zg5UUHs9OhXs}j9cfAlV*l2sD-E`pheQ>!~~FJMh_)ZIT&p$z*A{iK9o)U65>&)})^ z6KySgdz%=bmW!4vI34@h!(b}fMi#f%)wp57E@aHSzXp3K#U2)5Ura7Icr8neY;Vd7sbDvvw1bY9kgj9v)>y&zbsn=+M*+UvsiUr*qc2QNA^d^3fa5T1RFJCWs)^9(>jZ{a z8zNXw*S?^jIj(*jdPn$% z^Fm+@8c?A{&2s6U%=;zsI-6t zbyi#}Z|%-c#|ZD%DIvIx?NqWHSE61eO;^I$R6^Ux@P;%;!EV4E0TpXI?o_HDSL(rI za6Nu9% z0PQtV9j4i)Q88ZKNWZ4VU3(+<=1r;%fZ|T&sEOKgEMMmi?D;}CZ3hcgC(8t|&=LRI zCYJ9kBfWBGWd7cukk$`LY(hO z^Vj%Tbjn9F^RG5oX(3W(SyHW$Y^QIuRvv$9G~UwSH(y?o2Yp!A@QtAn=Z2D@e`K7i zgrAN6cBJO{NYEa6J?OX2=D?}IQynBUTh}{L^!}Z@3Z17Ojw(ix`w*|Jnagr#wVO8v zepo4*I2d&-Tz0*3J+ktAt|{>Qo)9Ja7?0p0uuuF};Q3OYLX)4`V`3#QqvuDva*;rm zK5z{#5O&YEt-iuU&#V*KW2c10OoDS0Iw2=Ap)#)84x1kkV9D?c#bY#{F;7;1?$0Uc z6)Er2mGp$mEmvfLaiHF5WC5Q??1v4$Lpa8F>=|k-P$C2Z5@MnsK$)L`+aqsV8C$NL z#5;dAp<{NPefufWOGZq3vAr(O)8qp4p%L`6GF?u>~gN35S zBM(c{d_*Lw`SG=;xa@~nXir9+vj+H(a~Um>@XRiX=%V(7ZXgsQ5fE;T9nGtl0X()I|`CKL;&so;;)$WZx77-#-uEXjaCH+mc6%>-A zABK(LcNh)Qz(>>0xG;guEcCkIi^WWqpT=D8e^ z_83(Bo5rC)1kL#SZ9-tgn~1$ogdksqz_jVpr=`qQqG7!Kg((^QmI{%7LO0OGi%RFX zwQ7L%K?v6;Tx0Tw0uh36F#}&<=6ej5{iq+aK!Qr0X|*&%#dum~4TR!k4C1grQez5Y z2+&OFg+fw$9mxTGs3OgTK?1@^^CK+D;+&f?Z?M&b3XvqM7OFJBKsVp%Njo5wy74V*O7(l0snm-yCT* zHNZvR8{r83qonn^5dCE3uOI zTT2qSU9VnDD8v|cJPh1edi>9?W18_V5By_zeL#mnz?9sV{eJzv*}X{k?^N(F!-M_F z(`%EOeId6=YaaD-_MFTe4a{9F%$*(LVEVcwe$jp)_w>GXN7DBB)gP6zoc$(_pxw=& z{lSd~xfiFeEPDV!+IUQr8ozpz2rFs%DEUy(;jJEi^}KV>wtGJ=_j3q66)h?C5FN|l z_nId?maAp;mV$}-)iXzj_r&DpgpBK3rN^5>hHHiFsDCmKO!ZcWcHnaMLk-p8y$O%A z>)Vj)n;%!UoaBjAOCol{LQ%D$tns)iBYEu()oT3Bvk^_-X~^0NOgsWdvHIRnAfhH_)4$&FCe_}V_i+TE`Srk=58dZ}jK zxeUQwsFYYoQfB?9Hhuq&(zc90v_q1XK<&DkfAu_hD&qP!%qS?R{ZV*=*x?=D@qTT{ z3&ryQ!BV!KQ^4v)>Y#{!Uy70NR3JB)weIp3hqiMMz#BMC&PI-;W2B*GnxtbMnrRk{ z?elb!c6|f5mXh9?ntt`X_UE~>+Rdu3NzX^YD7^DMZm!cvn@+!W?fHlVk~ zFyMxYjl5JwXEa0E3m!Fq@qknLY!nqZsp0>k=LG)Xi+1mS>#^~{lp=0|J3S@Q_-93DEM?9~eW85hn@K?j3^A4SadZ2B2prv{M9`15AyNZkBw-*;>7)tM1eog` zo=$-ZI0<)tNu{@%QUikvZ*XGK|3ckG%3(yzk7Qd-{ng`N2oWnldv&MrTQ?#!Qu4TgwsW7p{+6+MTSS?dfM$x%h6B4@M;OB=0 zk-*m=D0h3V-fqUlr|>viUUdI>-;A7e5pLv(0m(j~1ozo*OmNy3u>FFbCTjb|iCxai zRw-1;y?56Vp9Gzx87ar_kdhJS!n?_mM8F9+Q1rL;?_fI=22kxLWbMf40$I26FRh0Z zbRwv#@|%4@MGBjOsFmw=yNL4IQx5`e0&dvASmf12^E($NUd}m+}?(@lU7@l%1s16qYh@T`hw}nb(-6$%{10T?6nPMH#7}iYDP~ia|99ZHf zpeKB)xS?dk{ab|_aG#;lSIuv9SY89+3!!a8_Mwh)WNQ+dO12o_r%i8+$liY} z&b$C8h`;~mjG~_?b!#qaLft8HD}s1Fle=`goiL$#}5ZCu*%IHBB{YL*1$V zCu)VC+CQj+ScwHEf1%a}$M(*pao=U4S!iHDgtFiunoCsdl&EaWt5Er>fz}2WDEhN6 zGZerFP`8SvLWZ(rK+&LD3?Pqb3Q)DvE``Ej4q%0{X!tHhE3j!+C{RH9muhqVMzp}7 z^kYF)ZlhUZ=KD8S1(V_2ih9sm2z@w-NPN30195Odb^AyV5r7yZ4a%j^M8R5r73Uun zNZ5>@iW-2*@$;>l)bbTaV3ax?X9$<*ySi(O9#o45)6jx}_2D1`HIOaXDF-+bPuFR0l(8veN$K=m6S5C929z z@Y&l^U?*=G55iNUn8T03zB1ZMRxj$ibz@j=RCUz;qjwP5Y)RKvyLQ}&iil~R@gguu_ z_);2Q35lYj9%7W_#VRvInCzua^YmKggnhPOlq$!S?&LXPtK;G&`rA`S@o^JU z*7ro@La2!oqw*r80m#Y`-oS6F?qY zijdf%n+E%v&aK=`<}2Uf+E8gWvA80u1(qA$nU|Zj^Yb5T{5rwimz#xAulMR z6=&?*l=$kmh|H9?T8KbwD7I&AN+>o#{?pn^xE+Y?*lHA9;ruwZ39Cfwvr#@t%1zsN zJGZCc?8|b{`XGg~$iV*FFgT+jHF5SB+p*gecu~-5Lj^mS2mzwSO8!&DR4edb$r6TC zGaXu+8hW64X68?@{C&s5DjHu&GhC5_6h=05Vr&U^w1PKnhjEbMV?dybFSqUb2w)$d ze8G{Uc-(p=NO7zgY3X*ZZoNRPYM=g!89Ta>JFyQB4T&u4Ha7xz&>*F_TL&?S8KI(_ zX;a2h_*5DU15iq$3{Wa7&kGu3%Na|vDGqIdA}6`2p?{A~f+NnJoXfV(5E2Ml0HDO- zI!7H%$R*sn4~izv{;+ULkZ9X7+R_o&Km7-~>(s&<#e;aqR$0xCoT`Gq&o5BvWKRyF zD_H_OQB%1C!~ikbR#+oB)>imea*VBTT5_E2034JgdjX}cr0?%*Fgp@jDZun zPp4>wY+4Ke^u_%G=N+zu^Xa2jvKZqL)ChJ~l*Gc7`*yzV-5|sBZK*;Uf5~6Lh7QTU zNflCmf<=ZW$+$73_#DVx4IeA%!632Ufoh;l{34d)m8!)KGC6+Ghr~*d_9bK*h$KT+ zS(Qnl?`Pjibn*HdIKZqaqu+2Y6NEcJ6fw5$@L9HKfJ`>ikkm1@XQeh0>0d&UBgUoJ zUp=!4&}DD`4og%jq#ld%S6I%}z0%7>YD#ZE2Jr+%RMQ`2_GSDpj6sUvY02f`l$QJr zu$0-r;_R6v?&f)cU&U%wkqZs~zdm!h_L*YU386^y>iPv5$ZeP@LWiXP6Bj6DGFtzL z6ekLY9i`N!D0TjvoONTKQ za_XE^DYd~9YA~~NOB8DZj%7fcJAJzTH-#QL#}wk=hTpBOPC{ABzvjjfSw=tk9F2nU z_>u+O;TP9i<-j8-V@H{H8p9T^{xVJ$^xe6O`W-_&W9uz;_gqIr1Ru&yu-kANue z>nqom+y=>)hOHZ+e1JfFe+T0JnKX3`X{aR#C>z2xfZvAYbCpj%q56ZJZsBQ;FqF?X zoA6y1tThcnfL`Auh*TUX{1J2)A*J4VQvH)#4RCQNAHlmWrznySP~i-|;Fo^eAzG~g z`*y(pRY*Sc2HvH^_}qSvLagk*pJ#rSo+*43!U%~s?b9mZ84`?q1bxKZMWBf<2fPN6 z4D)e&2YiUp8bauV!y|JsJ|WK zf6Xnwh9pZHd`fUV3gZ0u4)(WW7y?xtx~$pte6+aNw!3(f?L5`zQn$^peP7pS}VJ<`a7Dg|bJD{(OY% z_VUL2UWlakSsNS{)1Pv#A+c=%wXus(WB`yO5A%iye^?(U=c;DSwu{iivWs9mK?eYA zS@C`{Yh0@jfInVs?>9SO?{|&i*pSU2luOz-RgH4QL~HkT%}6&2==TXyZ_;_MorWti zPHZ8Ko8r`IOoe4R|5g-t=Wbcj8VlZIO28OM{0#!f0=GVlVH)q{s=-xjE=D8i%4p=S z8dt>1v>pKl7#IcPm*N+5xE=Zjdxac+e_rrnzwf~PB|0@d^yV0%>fMibikme1Mt(7st1MH7G5e&~%1^K1 zYn*075#RZBx?;DJ)~?g*0AN`Mm&`)|Oz|g7@!v2%WQ(5^$8kT;)66(DLj=pGaM)~J z-3bIhW6C<^WfCxwWuLT7OLt0hlT7Xb5Q8mlrQ^DGJd1=hq5{b{^yZk1J)MR;Q-k;l zYn#@7%G~S+&OZ4AOPqc30k)uI-ct>duM=0A^b5tB39pW$OPAz^!Bo)}>y!cQ)zQ4R zol?w*vQ8?v>~-8iP=k80EcyPVzVy21tx=_eBZI@7QnPk1^dfe3MS+-N)V*^n5u3e+ z0ZfiRWxvMC+a3P=g~-7)L9^Fi4?BFa z+6OPf2qd%~P@d#z?|YsEFooWo(iC)mUJvZ;ZfNO0Dm|@URZv7?Psa2`>;mh0FqGr^ zf_Ri9VD7u@E0une5S>erlM+n|Q5~nMAP>n-$dW-c2HL0y(fDcTXKU+0w>*Mv|UC+~>gE-7d9TBL?l$+833bkG&Ntrl8nr2$fPoDrZ(xU6pU&E}Da%b<+o1(H{Omyvgkf!r zDarO~nOs&b;g~E41vpwWSif^nz?$iGa^PDlaF~HQ$jj~%ERQ|RLGU|Lkh6Gf?hDNbCwY^+7kU?Flnb zfh-^wBBOZ7kdZl5Sbl6SpxqU&)!#VbBe!2?G?@MSV$dF*Zg9eOH^%&B{IQr`Zh@p0MG3p9&mWX%GVVE|n$V(% z)>z8R8t2=h)PmD45eslI2yswQRA~SxEvNX8Zln*~~8JiwU);eR`0j|`cM zUgMBkhmiy~CV?|y!qjBn=T1USW<^29SLytM)w*x{vrRZoCIjYYpbC-SxVc2BlEI2_ zVmqfJ>@|N;ESJM-IuDcAvZr;Hi@Iwt&Ow(%o~kF%d6)6A{OwX~lK}m;9i^MdH^pZE z%@UIDLDLFPvX6jQB(0e(%A{0I-Ynja(SQ83-XRtBax;Qp=cOphG5nLzXu)XC4Zd?A zD*gTYAu1rvg82CgGcF;vNpYS&RP;LLBQ}k+*r_qEZa*PU9%aOAM=)ld7wrO=1N^Vw zq7llzGAKvnZeUiO4zR8jIcv=P3UmPdwoifasM!yWC~A(vl0jg5jTXfHhUi8lepwMw zMs@VOpZrtgUq{V$Fzxs6zByozP>htuDa0t@?k_~=*$#B(uJFs|t8>Gyg23PYMZj&l zem{W-n)@FD-wq%+P%%gCm@_>V&~K6gb0cWiX}w_WSs)<_iPp8BtjZ< z)dXb4^t9rHeV@c9H@F%4Yk4WdYH$4&ksRd$Qu zo8g~9i3!fJC?K1uY`VWGZ%I(RLmj4{{I?;iu%CPq0SJE?Qj`P=;3Kh|9?0a(9ho|_ zB5bb#s3(q22`YGd82d6qfJZ3Y~_w++c+@`KG;p5MZ6U^gca66OJ{_q3S^H96C^Tw zu)m=Dvpoc{Ns`UfWO6{nKXL1u%tE*@w|uQMivFA_%*_P%TASE4H%ai<2uVHNY7Zd` zFEVg=#dueOQ7p=8at{#zL*yYyMAD?KCR0Q-Ul%!|6(5IsE=IN?Nko=s*=02%J+-oY znz}9$fJ4;p%9>T%jb}88img^KBu1ng>tq&JM;%8bgREw_BUm%iRU>|!fYMYyG84V- z`=(EI+S^M6cPwn7zQ2;qNh_!0C(<;h+NQqG4cm|Tp;hZA0vHAXK~qnjCLbrFxWV)j z0bI@DXK>*Olel_Z;Th9M0dcC`>Im>?X5wTT<3wVBVeon-So-+-hg6ZKSpbqDB4mHu zw27L-AOu?Jbu5&c;g8*1>hJ<_ZZI_U7DVbgI%-AE(SUPm#;g7sl60JZ6Dr`!a8-I} zC!Wv(@-mLKx=VccLnO9CuAl6x`yc8s{Xf+SA^vZ5maqVI>` z{u{^|4HNQqHA1HKU!)kRZ*F|zGhaXcN4n&EK2e=+P#~Zq=>JGA>R{yPXl8Bl*E*|4 zl@0q}>?mDZ#kws!#?Vc6(t8xgBsH5d-z)(i2>`0|0L)bF9iXXc|ITc4JY-0G*SlKLXqi3IBZ?=U}GvTCup2zwxA)$K}7Pd zDW=bSv_qTpBgxs1dU0i7sV@eX+k8b~g>PNX<}&cL27+#`2Kj-3n|Eo#B-> z2!YoAw0L-NfIn>LY3ft9KMQ&iLz#-QMd_t*Q2bMQ@3-OQaH=}S_bU;})9(S>tXY#q zxV1RHh~HS%$!!MR%05_HTYz^Yht$!3V=X4{lrxdOM)ZDWj{_66+O zeZi2$7`N5pL2S4Q!)gq4axkXKW9!_K70OQ7HE;2`|4t;w|50jGso_}t)BJevdmsA+ zb!iPkf=6p<__`+ax~-TzP1!Wp#vNeQFK?rGw=pcfc>jhd`oN>bMJVLJ3bxRw=OY5< z7N4`D38za%5UN6%k!LORk&q~xCN?KixDIMp`J`CwPflv{nv%gZ1jROeg?6sHx{>jy zyCQAYbEDei!OpX}aas@cU8A4zR(7u}Rc9s{LOzZ+jfT<}xzFXpK8Q}^>oR|2tO|8T zHy~KgjW?0O$DOx`@r|f{;{h?P6kh4qPNMRXf##bIj(*WLN1V*Kl}%^yc!{j)&!}@h z%_T~De7hQIN&V?_u)7Hur|`K2rF%X)$fF5Y2nd(nkuofN0CX+UhSVJ0Lh?h3Mezm& zkijJ$VVVUl*jIZLXSMCHz&3oJyG@t3fd6}WAQ;Dpf!m%S(1c)%L(0$ySPV7!{D(=M6{G#`8{siw z>820XB<;3D?&o@YMhKPNoU;W({L7FHgCTM#E~rSfv@@85^R)u)GVo`3!O+M7BK=av zI*B7hz^9T&F(Yzta97lDX0eg!4m5 z`JI5N-YJXL`J08=EO3rhkJ?+_G;)0HI>_e9R}40@rRS@Y9UL5FAt9Q@`_Y=!4fuaM z_QH|lU;xOJ{sIF8g#0hZjBTtPmG$&3|4Ns>k<@Gbiymj_(kqNSIYZJiz7Yk9awxcA z93I;P=qpYQ+FI;6f9u@K6qjW*{dtW<`<+#c`#IGF39vsDrlXKJC?Utk^ppO_-5ah( zvkP_IH(^T3mdhS2Tk1Ygh62xhF8t@t@n8dr$R|WG|F2uANC)dpbQ<%<vkG#p9@ zD@K(_9Ak&Gb1RXAG0MN3A#!od$~|;Vc|?y|gg=2%(^%nfnEt>5`}a8p1D1HMaEXO6 z(^Hrtl>-;pai~bsp#Nby5;`&h(eB#Nh_#NI%G6XED~EB>yY~LFcC4N?nVbi;D#cY_}B=I$AZ!7EC?)N6$@+K(_SJdpIY)?OZX z{hV@oP44=3TI?=UC0gcn{XY`LCkPO=3_$<^wNnBCq5kWVbTl=xGNSuy%kWo*GYuJ= zHCBwSKdOjr`wP!&PGM~#XDjDRMR3T?LeUMvnwI1W1ji&@aOZYCzIq!q{V-=u{WX>R zU(V*<(yVct;D762P^^ZLE7%_n%KRdQ9430=_UzVCyjnaB!2^B?wUd5(&^SgDtAbM0h1GfjmeR8J`P z-sN)=5-}iy%;0g35nuQ@T-)qXea+Ao2DcK5#?!i=;=@V7EeGyc`r(Rm zxfLrw%?TJ1Ycj9bAgwDT&?|nn-SQRIl!5N?{D)Yy>jkGoGKp41`7lwj(O~ipjtIF# zub>euAC`LQ3bJA#+&wv zKog~*Tlf6*)vi^UA(j}iB3~C2aW0-%!Wj;NEn*--xx*Q7BYdPyH>cc)YqS$Ew2Cb) z7E0;y2#Q&YnIkcbzi|5T8+_1RZ%f9Xch`eaiD0EDPmQBe+3N zudeuIO_0B>+=;^BDr9znb!T8pl+kb6ZVWG=)`P5+3rY$ zxaO1zN>B2&3AE7ZM1hktWgJx9>AlC$uXLL6JKfbGNRs!ZO^L&fpg0Kn6pSoY_olGp zYDDOPoJViY&8+R1XnEa_bKGCF#dR5L7k5@{<+vkaEMx{yn%c4$U}fwLG-H8MM(tm; zEdQi-%%>pQ zR9-39J1%6~efB%09ik>5jg{Q)M7Df^yL9t+Y;ci_ZoETKa;+TReK#1UbONgUF3xI% z-%%4>h&tbWE54y?*3aP~z!yeps8=p*nuq_nBr=yD`khz*lthGN!SQFyvLZ8(h$^%( zm~a91$*V(L$)Ly^Nn5saU|gIf=E*396BrI(5}IumN>+ULNS`}K=x5eIfR&0QH$o}X zq8L=PySjaZ3B1|BmH@GDrjQU(L7v{jeCgSN;gNXV$_#^r6~_{0$PPaylWMX-l)7W; zK`Es%{1yqFE*V5Bag-rB2`pZwh(29#lTNE#a>Fc0c9QDhJgLD|peN=3YU?_qnp(PO zKnT?ksvt!)5Tr?OQE4JYq$pA>bTIUeR3U~Iz(}uB1W^Pek@r!gN-;`rDhNoBj)V>Z ziokc}6(!63$X$2V-FtE-Yi9O2XWcoFv=zq%!pe`_Hj5{dc~&pZ?vH1P(Rsxw?&8h2 z$qK0Epb&$Fz=j6~)GI4+we|J(ad$Oyb&+uNv3EV#_Db)U(Kk!7fwn>}wk5VbMPS(8 zU4;rU=h5SIz7K;F>kmXT1-I4 zx|pU0!7F5sYe~#F3ceZ&HR0tnWd42z2UfIREEUfg6^y{Yqe_oc_@ zo1Cic99E+>)J}0#OBTA9wuwW!WrLbk9W3_;OLLiOTNaF6Ciy zT~T{kZyYe#1~8oSkl{Z~HuQ4$@ILrgv*XL$!X())`ZYAKO|(fpqH)@QbDqR6}HoCucw~cCiBwbd!wSAftXA* zpzi+jIoy0*ZS1{(sLW4w*JU>9HlfH_KUS!kpn0nzI!TsFwme_e#2l*$t5^rYIbY1@ zwn|BUTGCy#?Gk;St@12J<}%Bj4lHZvn9^Rb{txQyA1h&rL`XE7xBODr&BCz@Vl%p( z1Cx7OX>;&}t*dlHEG*re-p_WX(VwL*84+Y6Txg6+9zFgcEl)qW*6*8TIBIL+ zS%=36VTwM-Fwj4#VRw#z;zy=5J>iBE)NnICSyRKlg*O8xFRnCs8hyxVoUjT5fc73OM_EGmRvYCl1h{iu0Tui$6UQ8sNS zEJn~}A5oL8%wLd6zft+1S3F^xVff^lm$qTX<74pC54+z9=xK9h1vX|F+*OE+&xTmZ zCC3)QMeH&d*Tg=k!*1xExpH4vfW3*~`xS!ny%DE9Jn#mtgW&p?sfVrfS9iqTNNbf^ z7m>n632JkSh%x2cHcth6H7=Tsy7J#7?YRf2W#p`m46P0M=g&$I!0<98mXNcfujq4Y z|3d8IPK6E0W6P!%UN(y*Jm9;>%~-FaWh2zHrdpix>hrZUT!W7P;6^i@bA9jlQvJ$h z3k_`jiuxE$leww+o2iJPixObBY<9$OJ!?Z#G*tEuC1a!AyxxuSM}$7Ob(`4l49*59S7+T!g@;6`gsaP9VL70olBxUcp z1x~tD<6k_oMOxvwINmp&lUcxlH<#XSGS3V)E_J?8J1QpGQg{4gBcr#oRUQ}E$?Aek zr&7d_(0(3qpW*O|mESsmtfvNn!udgY|kLj>Aur69daRjnYrl7?`q>HJL0_ZJ z1@D)!UGvHEH0(nou3l8tqJc87alSd_v?_Ow&GN|Vr_lmB!|(*l?uF5z-G;37QSTn5 zpjo&4xA~SWy=yE%bdrom?ETd?${RY|DsUc(C6^Z1<$XYNRn^VoAZJPk#`gUGy|=kh z<5I0N#vpbdE!!F?n|71_m=X^=D$HrT#`6oUBpZ{#iBJ1@SQoGgg5cBvt*~nDgeuSq zg`Zh6g%7gVqE{>`fwZiVbJ7Og+Lb(5QkTAlNRcp>mD3mX%8YGV^bUxxI+<&dW`{SJ zaDueAo@Pg*=lmWzNbuOSl9*_9z7SvEjeRTyjm9g0mwk%z0x4`DrK3WrO15<^i+>rz zaxuZ7W|f9Jc2g=Bk2}T28&F$C1rQQ%821oI=1Z=l&#_j&l^Aih*&MJkw@*Q&ExOQ( zd%Tg|8BJsl0#7F7uF-AM%bkFnQ!m4AGJNB-ED+dnj-XIs-?-~)==;CDHRN_k15IxI zkG62MN>lFZl4CKFRj9-(Fk*-xldy2u)bX0t)TW3Y<@XVZKBlE}M{zy+{tiOn6)9;V zd3SF#J1INu4SljDx)7cARx{5q4GX%lR)y`LM%or9lxbM29+GC1r#6Azds(o)gnK#e zo*(`_H$F8GOsW7;gb^f%C7TRgIGxk&o@u|9vE%YOY9A>)$8~;%m^i45BQSNWa4pY& zb}p&`3SZ@2FH*gV;0gaQxUm1xMLKedWk;^I616n_QXTn@ofOkp@UU3){q%ghaNKO+ zLv(|B@Gx%JcZvHNzd%tUDGRrNs4@Mr04E6D1L_n@pLZzDTXE{MTu#ypxV`RT#2ivg zm2`eCN2+Uzp6YUpu5>h70HcRSf_s-A1!`FOh>R(~*HxS05>)9s3^~_nSSzQQQG z8c;4kGQ0w=v#i>KJQe~y)7=aD%Yo2e*lhj{-{%c=f2%anww+buK6bg7G@u&k(V zy-qyqNL0b?+gP5I^NwrDS+!5Q>w*Rr(9J>536+Wc(m?^fdW#c++kvBeO*fa<@yS!# zM&2Fs15tb-Q+*XAzM$aAr-eBoGefgEp?TgN18Ei^_9G?u`fmdxXNdt-&a=2UW#W1p z@$Qbw?m|b4bT46L(#y9chU1HQNn~8l&7?%@p%(!`Tk&+?y1ilZuP+p3up&405C*zN zBDEFG!}~_|MO0TKN0J`Ei)VUQfvnT=68ZWxxM6E ThriftSimClustersEmbedding} -import com.twitter.storehaus.FutureCollector -import com.twitter.summingbird.online.option._ -import com.twitter.summingbird.option._ -import com.twitter.summingbird.storm.Storm -import com.twitter.summingbird.Options -import com.twitter.summingbird.TailProducer -import com.twitter.summingbird_internal.runner.common.JobName -import com.twitter.summingbird_internal.runner.common.SBRunConfig -import com.twitter.summingbird_internal.runner.storm.GenericRunner -import com.twitter.summingbird_internal.runner.storm.StormConfig -import com.twitter.tormenta_internal.spout.eventbus.SubscriberId -import com.twitter.tweetypie.thriftscala.StatusCounts -import com.twitter.wtf.summingbird.sources.storm.TimelineEventSource -import java.lang -import java.util.{HashMap => JMap} -import org.apache.heron.api.{Config => HeronConfig} -import org.apache.storm.{Config => BTConfig} - -object PersistentTweetJobRunner { - def main(args: Array[String]): Unit = { - GenericRunner(args, PersistentTweetStormJob(_)) - } -} - -object PersistentTweetStormJob { - - import com.twitter.simclusters_v2.summingbird.common.Implicits._ - - def jLong(num: Long): lang.Long = java.lang.Long.valueOf(num) - def jInt(num: Int): Integer = java.lang.Integer.valueOf(num) - def jFloat(num: Float): lang.Float = java.lang.Float.valueOf(num) - - def apply(args: Args): StormConfig = { - - lazy val env: String = args.getOrElse("env", "prod") - lazy val zone: String = args.getOrElse("dc", "atla") - lazy val alt: String = args.getOrElse("alt", default = "normal") - - lazy val profile = - SimClustersProfile.fetchPersistentJobProfile(Environment(env), AltSetting(alt)) - - lazy val stratoClient = ClientConfigs.stratoClient(profile.serviceIdentifier(zone)) - - lazy val favoriteEventSource = TimelineEventSource( - // Note: do not share the same subsriberId with other jobs. Apply a new one if needed - SubscriberId(profile.timelineEventSourceSubscriberId) - ).kafkaSource - - lazy val persistentTweetEmbeddingStore = - PersistentTweetEmbeddingStore - .persistentTweetEmbeddingStore(stratoClient, profile.persistentTweetStratoPath) - - lazy val persistentTweetEmbeddingStoreWithLatestAggregation: Storm#Store[ - PersistentTweetEmbeddingId, - PersistentSimClustersEmbedding - ] = { - import com.twitter.storehaus.algebra.StoreAlgebra._ - - lazy val mergeableStore = - persistentTweetEmbeddingStore.toMergeable( - mon = Implicits.persistentSimClustersEmbeddingMonoid, - fc = implicitly[FutureCollector]) - - Storm.onlineOnlyStore(mergeableStore) - } - - lazy val persistentTweetEmbeddingStoreWithLongestL2NormAggregation: Storm#Store[ - PersistentTweetEmbeddingId, - PersistentSimClustersEmbedding - ] = { - import com.twitter.storehaus.algebra.StoreAlgebra._ - - val longestL2NormMonoid = new PersistentSimClustersEmbeddingLongestL2NormMonoid() - lazy val mergeableStore = - persistentTweetEmbeddingStore.toMergeable( - mon = longestL2NormMonoid, - fc = implicitly[FutureCollector]) - - Storm.onlineOnlyStore(mergeableStore) - } - - lazy val tweetStatusCountsService: Storm#Service[TweetId, StatusCounts] = - Storm.service( - ObservedCachedReadableStore.from[TweetId, StatusCounts]( - TweetStatusCountsStore.tweetStatusCountsStore(stratoClient, "tweetypie/core.Tweet"), - ttl = 1.minute, - maxKeys = 10000, // 10K is enough for Heron Job. - cacheName = "tweet_status_count", - windowSize = 10000L - )(NullStatsReceiver) - ) - - lazy val tweetEmbeddingService: Storm#Service[TweetId, ThriftSimClustersEmbedding] = - Storm.service( - TopKClustersForTweetKeyReadableStore - .overrideLimitDefaultStore(50, profile.serviceIdentifier(zone)) - .composeKeyMapping { tweetId: TweetId => - TweetKey(tweetId, profile.modelVersionStr, profile.coreEmbeddingType) - }.mapValues { value => SimClustersEmbedding(value).toThrift }) - - new StormConfig { - - val jobName: JobName = JobName(profile.jobName) - - implicit val jobID: JobId = JobId(jobName.toString) - - /** - * Add registrars for chill serialization for user-defined types. - */ - override def registrars = - List( - SBRunConfig.register[StatusCounts], - SBRunConfig.register[ThriftSimClustersEmbedding], - SBRunConfig.register[PersistentSimClustersEmbedding] - ) - - /***** Job configuration settings *****/ - /** - * Use vmSettings to configure the VM - */ - override def vmSettings: Seq[String] = Seq() - - private val SourcePerWorker = 1 - private val FlatMapPerWorker = 1 - private val SummerPerWorker = 1 - - private val TotalWorker = 60 - - /** - * Use transformConfig to set Heron options. - */ - override def transformConfig(config: Map[String, AnyRef]): Map[String, AnyRef] = { - - val heronJvmOptions = new JMap[String, AnyRef]() - - val MetaspaceSize = jLong(256L * 1024 * 1024) - val DefaultHeapSize = jLong(2L * 1024 * 1024 * 1024) - val HighHeapSize = jLong(4L * 1024 * 1024 * 1024) - - val TotalCPU = jLong( - SourcePerWorker * 1 + FlatMapPerWorker * 4 + SummerPerWorker * 3 + 1 - ) - - // reserve 4GB for the StreamMgr - val TotalRam = jLong( - DefaultHeapSize * (SourcePerWorker * 1 + FlatMapPerWorker * 4) - + HighHeapSize * SummerPerWorker * 3 - + MetaspaceSize * 8 // Applies to all workers - + 4L * 1024 * 1024 * 1024) - - // These settings help prevent GC issues in the most memory intensive steps of the job by - // dedicating more memory to the new gen heap designated by the -Xmn flag. - Map( - "Tail" -> HighHeapSize - ).foreach { - case (stage, heap) => - HeronConfig.setComponentJvmOptions( - heronJvmOptions, - stage, - s"-Xmx$heap -Xms$heap -Xmn${heap / 2}" - ) - } - - super.transformConfig(config) ++ List( - BTConfig.TOPOLOGY_TEAM_NAME -> "cassowary", - BTConfig.TOPOLOGY_TEAM_EMAIL -> "no-reply@twitter.com", - BTConfig.TOPOLOGY_WORKERS -> jInt(TotalWorker), - BTConfig.TOPOLOGY_ACKER_EXECUTORS -> jInt(0), - BTConfig.TOPOLOGY_MESSAGE_TIMEOUT_SECS -> jInt(30), - BTConfig.TOPOLOGY_WORKER_CHILDOPTS -> List( - "-Djava.security.auth.login.config=config/jaas.conf", - "-Dsun.security.krb5.debug=true", - "-Dcom.twitter.eventbus.client.EnableKafkaSaslTls=true", - "-Dcom.twitter.eventbus.client.zoneName=" + zone, - s"-XX:MaxMetaspaceSize=$MetaspaceSize" - ).mkString(" "), - HeronConfig.TOPOLOGY_CONTAINER_CPU_REQUESTED -> TotalCPU, - HeronConfig.TOPOLOGY_CONTAINER_RAM_REQUESTED -> TotalRam, - "storm.job.uniqueId" -> jobID.get - ) - } - - /** - * Use getNamedOptions to set Summingbird runtime options - * The list of available options: com.twitter.summingbird.online.option - */ - override def getNamedOptions: Map[String, Options] = Map( - "DEFAULT" -> Options() - .set(SummerParallelism(TotalWorker * SummerPerWorker)) - .set(FlatMapParallelism(TotalWorker * FlatMapPerWorker)) - .set(SourceParallelism(TotalWorker * SourcePerWorker)) - .set(CacheSize(10000)) - .set(FlushFrequency(30.seconds)) - ) - - /** Required job generation call for your job, defined in Job.scala */ - override def graph: TailProducer[Storm, Any] = PersistentTweetJob.generate[Storm]( - favoriteEventSource, - tweetStatusCountsService, - tweetEmbeddingService, - persistentTweetEmbeddingStoreWithLatestAggregation, - persistentTweetEmbeddingStoreWithLongestL2NormAggregation - ) - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJob.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJob.docx new file mode 100644 index 0000000000000000000000000000000000000000..5d59d89989668af5bcaeccd7f04d2655ac885bd4 GIT binary patch literal 39006 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 PDh`knFg#{6zHj{x^}zcJ literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJob.scala b/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJob.scala deleted file mode 100644 index 54ac8011a..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJob.scala +++ /dev/null @@ -1,232 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.storm - -import com.twitter.simclusters_v2.common.ModelVersions._ -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.SimClustersTweetProfile -import com.twitter.simclusters_v2.summingbird.common.Configs -import com.twitter.simclusters_v2.summingbird.common.Implicits -import com.twitter.simclusters_v2.summingbird.common.SimClustersHashUtil -import com.twitter.simclusters_v2.summingbird.common.SimClustersInterestedInUtil -import com.twitter.simclusters_v2.summingbird.common.StatsUtil -import com.twitter.simclusters_v2.thriftscala._ -import com.twitter.snowflake.id.SnowflakeId -import com.twitter.summingbird._ -import com.twitter.summingbird.option.JobId -import com.twitter.timelineservice.thriftscala.Event -import com.twitter.conversions.DurationOps._ -import com.twitter.timelineservice.thriftscala.EventAliases.FavoriteAlias - -object TweetJob { - - import Implicits._ - import StatsUtil._ - - object NodeName { - final val TweetClusterScoreFlatMapNodeName: String = "TweetClusterScoreFlatMap" - final val TweetClusterUpdatedScoresFlatMapNodeName: String = "TweetClusterUpdatedScoreFlatMap" - final val TweetClusterScoreSummerNodeName: String = "TweetClusterScoreSummer" - final val TweetTopKNodeName: String = "TweetTopKSummer" - final val ClusterTopKTweetsNodeName: String = "ClusterTopKTweetsSummer" - final val ClusterTopKTweetsLightNodeName: String = "ClusterTopKTweetsLightSummer" - } - - def generate[P <: Platform[P]]( - profile: SimClustersTweetProfile, - timelineEventSource: Producer[P, Event], - userInterestedInService: P#Service[Long, ClustersUserIsInterestedIn], - tweetClusterScoreStore: P#Store[(SimClusterEntity, FullClusterIdBucket), ClustersWithScores], - tweetTopKClustersStore: P#Store[EntityWithVersion, TopKClustersWithScores], - clusterTopKTweetsStore: P#Store[FullClusterId, TopKTweetsWithScores], - clusterTopKTweetsLightStore: Option[P#Store[FullClusterId, TopKTweetsWithScores]] - )( - implicit jobId: JobId - ): TailProducer[P, Any] = { - - val userInterestNonEmptyCount = Counter(Group(jobId.get), Name("num_user_interests_non_empty")) - val userInterestEmptyCount = Counter(Group(jobId.get), Name("num_user_interests_empty")) - - val numClustersCount = Counter(Group(jobId.get), Name("num_clusters")) - - val entityClusterPairCount = Counter(Group(jobId.get), Name("num_entity_cluster_pairs_emitted")) - - // Fav QPS is around 6K - val qualifiedFavEvents = timelineEventSource - .collect { - case Event.Favorite(favEvent) - if favEvent.userId != favEvent.tweetUserId && !isTweetTooOld(favEvent) => - (favEvent.userId, favEvent) - } - .observe("num_qualified_favorite_events") - - val entityWithSimClustersProducer = qualifiedFavEvents - .leftJoin(userInterestedInService) - .map { - case (_, (favEvent, userInterestOpt)) => - (favEvent.tweetId, (favEvent, userInterestOpt)) - } - .flatMap { - case (_, (favEvent, Some(userInterests))) => - userInterestNonEmptyCount.incr() - - val timestamp = favEvent.eventTimeMs - - val clustersWithScores = SimClustersInterestedInUtil.topClustersWithScores(userInterests) - - // clusters.size is around 25 in average - numClustersCount.incrBy(clustersWithScores.size) - - val simClusterScoresByHashBucket = clustersWithScores.groupBy { - case (clusterId, _) => SimClustersHashUtil.clusterIdToBucket(clusterId) - } - - for { - (hashBucket, scores) <- simClusterScoresByHashBucket - } yield { - entityClusterPairCount.incr() - - val clusterBucket = FullClusterIdBucket(userInterests.knownForModelVersion, hashBucket) - - val tweetId: SimClusterEntity = SimClusterEntity.TweetId(favEvent.tweetId) - - (tweetId, clusterBucket) -> SimClustersInterestedInUtil - .buildClusterWithScores( - scores, - timestamp, - profile.favScoreThresholdForUserInterest - ) - } - case _ => - userInterestEmptyCount.incr() - None - } - .observe("entity_cluster_delta_scores") - .name(NodeName.TweetClusterScoreFlatMapNodeName) - .sumByKey(tweetClusterScoreStore)(clustersWithScoreMonoid) - .name(NodeName.TweetClusterScoreSummerNodeName) - .map { - case ((simClusterEntity, clusterBucket), (oldValueOpt, deltaValue)) => - val updatedClusterIds = deltaValue.clustersToScore.map(_.keySet).getOrElse(Set.empty[Int]) - - (simClusterEntity, clusterBucket) -> clustersWithScoreMonoid.plus( - oldValueOpt - .map { oldValue => - oldValue.copy( - clustersToScore = - oldValue.clustersToScore.map(_.filterKeys(updatedClusterIds.contains)) - ) - }.getOrElse(clustersWithScoreMonoid.zero), - deltaValue - ) - } - .observe("entity_cluster_updated_scores") - .name(NodeName.TweetClusterUpdatedScoresFlatMapNodeName) - - val tweetTopK = entityWithSimClustersProducer - .flatMap { - case ((simClusterEntity, FullClusterIdBucket(modelVersion, _)), clusterWithScores) - if simClusterEntity.isInstanceOf[SimClusterEntity.TweetId] => - clusterWithScores.clustersToScore - .map { clustersToScores => - val topClustersWithFavScores = clustersToScores.mapValues { scores: Scores => - Scores( - favClusterNormalized8HrHalfLifeScore = - scores.favClusterNormalized8HrHalfLifeScore.filter( - _.value >= Configs.scoreThresholdForTweetTopKClustersCache - ) - ) - } - - ( - EntityWithVersion(simClusterEntity, modelVersion), - TopKClustersWithScores(Some(topClustersWithFavScores), None) - ) - } - case _ => - None - - } - .observe("tweet_topk_updates") - .sumByKey(tweetTopKClustersStore)(topKClustersWithScoresMonoid) - .name(NodeName.TweetTopKNodeName) - - val clusterTopKTweets = entityWithSimClustersProducer - .flatMap { - case ((simClusterEntity, FullClusterIdBucket(modelVersion, _)), clusterWithScores) => - simClusterEntity match { - case SimClusterEntity.TweetId(tweetId) => - clusterWithScores.clustersToScore - .map { clustersToScores => - clustersToScores.toSeq.map { - case (clusterId, scores) => - val topTweetsByFavScore = Map( - tweetId -> Scores(favClusterNormalized8HrHalfLifeScore = - scores.favClusterNormalized8HrHalfLifeScore.filter(_.value >= - Configs.scoreThresholdForClusterTopKTweetsCache))) - - ( - FullClusterId(modelVersion, clusterId), - TopKTweetsWithScores(Some(topTweetsByFavScore), None) - ) - } - }.getOrElse(Nil) - case _ => - Nil - } - } - .observe("cluster_topk_tweets_updates") - .sumByKey(clusterTopKTweetsStore)(topKTweetsWithScoresMonoid) - .name(NodeName.ClusterTopKTweetsNodeName) - - val clusterTopKTweetsLight = clusterTopKTweetsLightStore.map { lightStore => - entityWithSimClustersProducer - .flatMap { - case ((simClusterEntity, FullClusterIdBucket(modelVersion, _)), clusterWithScores) => - simClusterEntity match { - case SimClusterEntity.TweetId(tweetId) if isTweetTooOldForLight(tweetId) => - clusterWithScores.clustersToScore - .map { clustersToScores => - clustersToScores.toSeq.map { - case (clusterId, scores) => - val topTweetsByFavScore = Map( - tweetId -> Scores(favClusterNormalized8HrHalfLifeScore = - scores.favClusterNormalized8HrHalfLifeScore.filter(_.value >= - Configs.scoreThresholdForClusterTopKTweetsCache))) - - ( - FullClusterId(modelVersion, clusterId), - TopKTweetsWithScores(Some(topTweetsByFavScore), None) - ) - } - }.getOrElse(Nil) - case _ => - Nil - } - } - .observe("cluster_topk_tweets_updates") - .sumByKey(lightStore)(topKTweetsWithScoresLightMonoid) - .name(NodeName.ClusterTopKTweetsLightNodeName) - } - - clusterTopKTweetsLight match { - case Some(lightNode) => - tweetTopK.also(clusterTopKTweets).also(lightNode) - case None => - tweetTopK.also(clusterTopKTweets) - } - } - - // Boolean check to see if the tweet is too old - private def isTweetTooOld(favEvent: FavoriteAlias): Boolean = { - favEvent.tweet.forall { tweet => - SnowflakeId.unixTimeMillisOptFromId(tweet.id).exists { millis => - System.currentTimeMillis() - millis >= Configs.OldestTweetFavEventTimeInMillis - } - } - } - - private def isTweetTooOldForLight(tweetId: Long): Boolean = { - SnowflakeId.unixTimeMillisOptFromId(tweetId).exists { millis => - System.currentTimeMillis() - millis >= Configs.OldestTweetInLightIndexInMillis - } - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJobRunner.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJobRunner.docx new file mode 100644 index 0000000000000000000000000000000000000000..a38303ca988385d7e3950de18d40496772c18097 GIT binary patch literal 39796 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 IH1!rl>N+}VMb6QH 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJobRunner.scala b/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJobRunner.scala deleted file mode 100644 index 11a94a47b..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/storm/TweetJobRunner.scala +++ /dev/null @@ -1,242 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.storm - -import com.twitter.conversions.DurationOps._ -import com.twitter.heron.util.CommonMetric -import com.twitter.scalding.Args -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.AltSetting -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.Environment -import com.twitter.simclusters_v2.summingbird.stores.EntityClusterScoreReadableStore -import com.twitter.simclusters_v2.summingbird.stores.TopKClustersForTweetReadableStore -import com.twitter.simclusters_v2.summingbird.stores.TopKTweetsForClusterReadableStore -import com.twitter.simclusters_v2.summingbird.stores.UserInterestedInReadableStore -import com.twitter.simclusters_v2.thriftscala._ -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.summingbird.online.option._ -import com.twitter.summingbird.option._ -import com.twitter.summingbird.storm.option.FlatMapStormMetrics -import com.twitter.summingbird.storm.option.SummerStormMetrics -import com.twitter.summingbird.storm.Storm -import com.twitter.summingbird.storm.StormMetric -import com.twitter.summingbird.Options -import com.twitter.summingbird.TailProducer -import com.twitter.summingbird_internal.runner.common.JobName -import com.twitter.summingbird_internal.runner.common.SBRunConfig -import com.twitter.summingbird_internal.runner.storm.GenericRunner -import com.twitter.summingbird_internal.runner.storm.StormConfig -import com.twitter.tormenta_internal.spout.eventbus.SubscriberId -import com.twitter.wtf.summingbird.sources.storm.TimelineEventSource -import java.lang -import org.apache.heron.api.{Config => HeronConfig} -import org.apache.heron.common.basics.ByteAmount -import org.apache.storm.{Config => BTConfig} -import scala.collection.JavaConverters._ - -object TweetJobRunner { - def main(args: Array[String]): Unit = { - GenericRunner(args, TweetStormJob(_)) - } -} - -object TweetStormJob { - - import com.twitter.simclusters_v2.summingbird.common.Implicits._ - - def jLong(num: Long): lang.Long = java.lang.Long.valueOf(num) - def jInt(num: Int): Integer = java.lang.Integer.valueOf(num) - def apply(args: Args): StormConfig = { - - lazy val env: String = args.getOrElse("env", "prod") - lazy val zone: String = args.getOrElse("dc", "atla") - - // The only SimClusters ENV is Alt. Will clean up soon. - lazy val profile = SimClustersProfile.fetchTweetJobProfile(Environment(env), AltSetting.Alt) - - lazy val favoriteEventSource = TimelineEventSource( - // Note: do not share the same subsriberId with other jobs. Apply a new one if needed - SubscriberId(profile.timelineEventSourceSubscriberId) - ).source - - lazy val commonMetric = - StormMetric(new CommonMetric(), CommonMetric.NAME, CommonMetric.POLL_INTERVAL) - lazy val flatMapMetrics = FlatMapStormMetrics(Iterable(commonMetric)) - lazy val summerMetrics = SummerStormMetrics(Iterable(commonMetric)) - - lazy val entityClusterScoreStore: Storm#Store[ - (SimClusterEntity, FullClusterIdBucket), - ClustersWithScores - ] = { - Storm.store( - EntityClusterScoreReadableStore - .onlineMergeableStore(profile.entityClusterScorePath, profile.serviceIdentifier(zone))) - } - - lazy val tweetTopKStore: Storm#Store[EntityWithVersion, TopKClustersWithScores] = { - Storm.store( - TopKClustersForTweetReadableStore - .onlineMergeableStore(profile.tweetTopKClustersPath, profile.serviceIdentifier(zone))) - } - - lazy val clusterTopKTweetsStore: Storm#Store[FullClusterId, TopKTweetsWithScores] = { - Storm.store( - TopKTweetsForClusterReadableStore - .onlineMergeableStore(profile.clusterTopKTweetsPath, profile.serviceIdentifier(zone))) - } - - lazy val clusterTopKTweetsLightStore: Option[ - Storm#Store[FullClusterId, TopKTweetsWithScores] - ] = { - profile.clusterTopKTweetsLightPath.map { lightPath => - Storm.store( - TopKTweetsForClusterReadableStore - .onlineMergeableStore(lightPath, profile.serviceIdentifier(zone))) - } - } - - lazy val userInterestedInService: Storm#Service[Long, ClustersUserIsInterestedIn] = { - Storm.service( - UserInterestedInReadableStore.defaultStoreWithMtls( - ManhattanKVClientMtlsParams(profile.serviceIdentifier(zone)), - modelVersion = profile.modelVersionStr - )) - } - - new StormConfig { - - val jobName: JobName = JobName(profile.jobName) - - implicit val jobID: JobId = JobId(jobName.toString) - - /** - * Add registrars for chill serialization for user-defined types. - */ - override def registrars = - List( - SBRunConfig.register[SimClusterEntity], - SBRunConfig.register[FullClusterIdBucket], - SBRunConfig.register[ClustersWithScores], - SBRunConfig.register[EntityWithVersion], - SBRunConfig.register[FullClusterId], - SBRunConfig.register[EntityWithVersion], - SBRunConfig.register[TopKEntitiesWithScores], - SBRunConfig.register[TopKClustersWithScores], - SBRunConfig.register[TopKTweetsWithScores] - ) - - /***** Job configuration settings *****/ - /** - * Use vmSettings to configure the VM - */ - override def vmSettings: Seq[String] = Seq() - - private val SourcePerWorker = 1 - private val FlatMapPerWorker = 3 - private val SummerPerWorker = 3 - - private val TotalWorker = 150 - - /** - * Use transformConfig to set Heron options. - */ - override def transformConfig(config: Map[String, AnyRef]): Map[String, AnyRef] = { - val heronConfig = new HeronConfig() - - /** - Component names (subject to change if you add more components, make sure to update this) - Source: Tail-FlatMap-FlatMap-Summer-FlatMap-Source - FlatMap: Tail-FlatMap-FlatMap-Summer-FlatMap, Tail-FlatMap-FlatMap, Tail-FlatMap-FlatMap, - Tail-FlatMap - Summer: Tail-FlatMap-FlatMap-Summer * 2, Tail, Tail.2 - */ - val sourceName = "Tail-FlatMap-FlatMap-Summer-FlatMap-Source" - val flatMapFlatMapSummerFlatMapName = "Tail-FlatMap-FlatMap-Summer-FlatMap" - - // 1 CPU per node, 1 for StreamMgr - // By default, numCpus per component = totalCPUs / total number of components. - // To add more CPUs for a specific component, use heronConfig.setComponentCpu(name, numCPUs) - // add 20% more CPUs to address back pressure issue - val TotalCPU = jLong( - (1.2 * (SourcePerWorker * 1 + FlatMapPerWorker * 4 + SummerPerWorker * 6 + 1)).ceil.toInt) - heronConfig.setContainerCpuRequested(TotalCPU.toDouble) - - // RAM settings - val RamPerSourceGB = 8 - val RamPerSummerFlatMap = 8 - val RamDefaultPerComponent = 4 - - // The extra 4GB is not explicitly assigned to the StreamMgr, so it gets 2GB by default, and - // the remaining 2GB is shared among components. Keeping this configuration for now, since - // it seems stable - val TotalRamRB = - RamPerSourceGB * SourcePerWorker * 1 + - RamDefaultPerComponent * FlatMapPerWorker * 4 + - RamDefaultPerComponent * SummerPerWorker * 6 + - 4 // reserve 4GB for the StreamMgr - - // By default, ramGB per component = totalRAM / total number of components. - // To adjust RAMs for a specific component, use heronConfig.setComponentRam(name, ramGB) - heronConfig.setComponentRam(sourceName, ByteAmount.fromGigabytes(RamPerSourceGB)) - heronConfig.setComponentRam( - flatMapFlatMapSummerFlatMapName, - ByteAmount.fromGigabytes(RamPerSummerFlatMap)) - heronConfig.setContainerRamRequested(ByteAmount.fromGigabytes(TotalRamRB)) - - super.transformConfig(config) ++ List( - BTConfig.TOPOLOGY_TEAM_NAME -> "cassowary", - BTConfig.TOPOLOGY_TEAM_EMAIL -> "no-reply@twitter.com", - BTConfig.TOPOLOGY_WORKERS -> jInt(TotalWorker), - BTConfig.TOPOLOGY_ACKER_EXECUTORS -> jInt(0), - BTConfig.TOPOLOGY_MESSAGE_TIMEOUT_SECS -> jInt(30), - BTConfig.TOPOLOGY_WORKER_CHILDOPTS -> List( - "-XX:MaxMetaspaceSize=256M", - "-Djava.security.auth.login.config=config/jaas.conf", - "-Dsun.security.krb5.debug=true", - "-Dcom.twitter.eventbus.client.EnableKafkaSaslTls=true", - "-Dcom.twitter.eventbus.client.zoneName=" + zone - ).mkString(" "), - "storm.job.uniqueId" -> jobID.get - ) ++ heronConfig.asScala.toMap - } - - /** - * Use getNamedOptions to set Summingbird runtime options - * The list of available options: com.twitter.summingbird.online.option - */ - override def getNamedOptions: Map[String, Options] = Map( - "DEFAULT" -> Options() - .set(FlatMapParallelism(TotalWorker * FlatMapPerWorker)) - .set(SourceParallelism(TotalWorker)) - .set(SummerBatchMultiplier(1000)) - .set(CacheSize(10000)) - .set(flatMapMetrics) - .set(summerMetrics), - TweetJob.NodeName.TweetClusterUpdatedScoresFlatMapNodeName -> Options() - .set(FlatMapParallelism(TotalWorker * FlatMapPerWorker)), - TweetJob.NodeName.TweetClusterScoreSummerNodeName -> Options() - // Most expensive step. Double the capacity. - .set(SummerParallelism(TotalWorker * SummerPerWorker * 4)) - .set(FlushFrequency(30.seconds)), - TweetJob.NodeName.ClusterTopKTweetsNodeName -> Options() - .set(SummerParallelism(TotalWorker * SummerPerWorker)) - .set(FlushFrequency(30.seconds)), - TweetJob.NodeName.ClusterTopKTweetsLightNodeName -> Options() - .set(SummerParallelism(TotalWorker * SummerPerWorker)) - .set(FlushFrequency(30.seconds)), - TweetJob.NodeName.TweetTopKNodeName -> Options() - .set(SummerParallelism(TotalWorker * SummerPerWorker)) - .set(FlushFrequency(30.seconds)) - ) - - /** Required job generation call for your job, defined in Job.scala */ - override def graph: TailProducer[Storm, Any] = TweetJob.generate[Storm]( - profile, - favoriteEventSource, - userInterestedInService, - entityClusterScoreStore, - tweetTopKStore, - clusterTopKTweetsStore, - clusterTopKTweetsLightStore - ) - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/persistent_tweet_job_deploy.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/persistent_tweet_job_deploy.docx new file mode 100644 index 0000000000000000000000000000000000000000..bbeacd45bf7ca0e39774d0ced66a1401ebdeda3c GIT binary patch literal 37598 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

    L;! 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

    o-g<6s1AW zag7tyu@d{msZgfR=N+7`+ZHv8SD0Evx!TYey&RsT{;$)&*Dwq`G< zev+4f$HUu0ga%dA*Zt|Cck9}6wJArpEFkB_=-gjBnU__ zF$f42aK-{Q?*40<0r6d9+MQqc4l8fSiOEkjF57pN|G~Ro84M#rZ&9WpN=%Xyi}m z*rTM@w;cTF2H>}wTg9-7!3hT6F1Oa-db97hTxNN^PwWfF3Jr$l?ohp9nc>0BJcJ*b zd#CJMY8|<&WG*o{T|rLUItKSZY``qxCkvaFjI}#$JEV6$(MJcekB73S>A+#};A8j) zS?_f^oxw1pBPkGVe$9pbM#>e7eB;uNsI%> zXOdT|y3_A?Q<&7)IRJFdnNb5*E}rpiBzfv-rgaMY)`*ki)EI$*r(d!xnedIrFOXoQ z&$frZMisFjN7Qja{cx=)@B%ePtl6SUV>?ZV-^PRX9wJaN6S^EoZk^mV};Q>?E3 zxN~pAn~tXkzOpk<70vQV5>Q#{c2w_o)~PEyQ>OLk2hR1LR{dA?+l+m>G6CO|p1E!7 z5=_taDZZe3%j>GelO};Ry+@z8SH&FNvfX&X`R1cN+$Vb`AN%~he@?bE z*&m#LWVLvg!S;qpfy(#lRQWYEo1aMS`Z(=i>v_8?t&>W^*S_FgciyieL%n6|)ahCa zYoiWj*=7B^c_;Z^&b_REA7|#svt%VgUZ^9;{E;bQUW@;2&hQt9w*N@u(9enFK>e2Lb5bG6S7ht%|0 zX8h)!7s)QX?WthHb=8J7GdZLA=5;E^vAme|w6DW=qw)O2eGC)!{H%PnzJz<8@A5?# zyDQ>enlr`R6X^YSSF$(mUeiZ^rZ;>pza6%1{jryUTl`Y6d{BeI%>$QjR-8|EJufT&VM~VqQY#8Ri%4Nl)5) zPwQUdjel~fKYr@O?P-UfP2rsO_O9}r_H({x)(hWmUy_#AD>KzL^V5_$yO*8YQ+@4C z)1m4$N4HJ7WK>;Q>ihPQ>W`|satEW|e_lW3iAQkp=~vg<Hyi@ElVsEgtskSIrMTs9a3vQhF;c-#v z;V!Y4v8&tq&qq(5lz4MPW%c(7oIlSME5AD8ymF>+`Zr%IfA3(e-CGac`X8Li+^YJ@ zitnXNo`rIH%g=(RUVJ4R_?I=YNo6c(#7g`(?)Y}dKERuiNrV|RJkG)3Fv~n*ZP3z* zQ-LkiQ@}AdP`3jH8h~O94AIWO!Qj-qlK7Cyg4E(zQ0olcfJ!xQhaW(t_kiQb+%Vlh zx`FW+&// where can only be devel or prod -AURORA_PATH=${AURORA_PATH:="$CLUSTER/$USER/$ENV"} -AURORA_JOB_KEY="${AURORA_PATH}/${JOB_NAME}" - -heron kill "$AURORA_PATH" "$JOB_NAME" || true - -echo "Waiting 5 seconds so heron is sure its dead" -sleep 5 - -echo "AURORA_JOB_KEY: $AURORA_JOB_KEY" - -echo "Starting your topology... for ${ENV} ${JOB_NAME}" -#set -v - -heron submit "${AURORA_PATH}" "dist/${JAR_NAME}" com.twitter.simclusters_v2.summingbird.storm.PersistentTweetJobRunner --env "$ENV" --dc "$CLUSTER" diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_alt_job_deploy.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_alt_job_deploy.docx new file mode 100644 index 0000000000000000000000000000000000000000..ada984233b488a11daf0afdd8a2d5eee67d280c2 GIT binary patch literal 37604 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 F4*&|^Q#k+t literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_alt_job_deploy.sh b/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_alt_job_deploy.sh deleted file mode 100755 index 67b14d126..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_alt_job_deploy.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -# script to deploy simcluster storm job to CI - -set -u -e - -cd "$(git rev-parse --show-toplevel)" - -# shellcheck source=/dev/null -. "$(git rev-parse --show-toplevel)/devprod/source-sh-setup" - -function usage { - cat <// where can only be devel or prod -AURORA_PATH=${AURORA_PATH:="$CLUSTER/$USER/$ENV"} -AURORA_JOB_KEY="${AURORA_PATH}/${JOB_NAME}" - -heron kill "$AURORA_PATH" "$JOB_NAME" || true - -echo "Waiting 5 seconds so heron is sure its dead" -sleep 5 - -echo "AURORA_JOB_KEY: $AURORA_JOB_KEY" - -echo "Starting your topology... for ${ENV} ${JOB_NAME}" -#set -v - -heron submit "${AURORA_PATH}" "dist/${JAR_NAME}" com.twitter.simclusters_v2.summingbird.storm.TweetJobRunner --env "$ENV" --dc "$CLUSTER" --alt "alt" --usingLogFavScore - diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_job_deploy.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_job_deploy.docx new file mode 100644 index 0000000000000000000000000000000000000000..3278a1cb3e1d3b0631f82d5fa83ee5cd9c2c70fa GIT binary patch literal 37581 zcmagEWmsIvwm*!!dvJGm2`+))?(W*Sy99T4cXtTx4k5T(kU((ve`jXSIWyZHr)Zfnz=EGxezg!1M56*GlNfY?hE8M9*7p4y&19#^b3^Ojq4ndwvp?D2k*H(YgA zAry)+J}dp+hj6WdzuUWoQd?B)R981ky^s{V)Vpw_fbq+7VS8|kB{zj)5;G9#s0wsj`l*8uLcaDxj~i7y6C34>1cu2Xc4j^?Tk4QqYH zNbbY%0F>`PYF69E+0r+~x&qukeV;`E-iu^HT>14SGFXB0V1%LayRGAOzIh zOTKiK?7OT578uLWr_gA>CKD8)_QV@Ldp*IIR(=o@=zCcz-Pji#zb7qt#*ozmQTRs} zJt(Dx9)R831Oowq2maM}G_`SJV*GurPMG=(&Vu59E+9TiQEJzsDps_jCw3%TB+#2S zc~)ZQD_OGI-K8j|tAW)=czC{NY_^zLh__5vViTlpq`457ztpF(MRVEIp}!830^1ot z;;ynAtZ9=Gc}s>QWJ-C@X{JUjK(~oLq)pR!HY;2sBBoDkD~VJVT%L$}1Mf_&?&8BR z2Y>=d$h2@olvcO@uyKoc5NvUlH1HQXj^s#idZST_o13B50y63c+%VvBe zzxNiOmsJbDMu8ERq6IyU_$-MLu-tyf&LL|vk;6H)wO3@Tl}G1FxWzYeZ7;CF)!Yhh z9Fh=16dHdXU=jhZiTSo>gth*hBTmaxogCbM-upCnMQP4!Jl-3rh>HMMmjf=9$)YQ> z7{*IB*ucR)|7DsayG^Mi|42j`Rd(fznot7uS29H6eGHnP0Re>JiDU_lsO7CCgdka{ zW%;1tDT9VG(|Qnd%ayP}jypCGuDCT?^1DZy+AO$hEr@H*bzh&1uUPzi3A7M{e|;J< zP&&vmrLKcw#Xog@ghW6FWfM|NS8{7pW8IE8b#iprnsEi!twd-IMLLqVN}VHfdw4Lw{|V;HFA7^v&AHM;dYCHxGr)PP)Ijv}DOl zlENqz&VrEoD*2thd#d25(eM4!+lOU*x(BXH2%KYcBt4orH_^A3{wutH_T^@64f_Px z7aIr=5R||7#n9gVkG7~x*sU?6bUxET=sHJOLJKS6Bm^!B&x&r~)+J=M&X1FRj)!Px z+4c2#48!F4!gL$X*U0zWH2%CKYzEyVXQ7HY@mMgb;IIMLTpKZRur_r_>I6{%S&peT zgsSVHKQmsv0L1|7oUX1=Gwwy&Xf%0A2yO2qPdDSdiX^nzhugpH9UIW37 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_job_deploy.sh b/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_job_deploy.sh deleted file mode 100755 index b3e4f22d4..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/storm/tweet_job_deploy.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -# script to deploy simcluster storm job to CI - -set -u -e - -cd "$(git rev-parse --show-toplevel)" - -# shellcheck source=/dev/null -. "$(git rev-parse --show-toplevel)/devprod/source-sh-setup" - -function usage { - cat <// where can only be devel or prod -AURORA_PATH=${AURORA_PATH:="$CLUSTER/$USER/$ENV"} -AURORA_JOB_KEY="${AURORA_PATH}/${JOB_NAME}" - -heron kill "$AURORA_PATH" "$JOB_NAME" || true - -echo "Waiting 5 seconds so heron is sure its dead" -sleep 5 - -echo "AURORA_JOB_KEY: $AURORA_JOB_KEY" - -echo "Starting your topology... for ${ENV} ${JOB_NAME}" -#set -v - -heron submit "${AURORA_PATH}" "dist/${JAR_NAME}" com.twitter.simclusters_v2.summingbird.storm.TweetJobRunner --env "$ENV" --dc "$CLUSTER" diff --git a/src/scala/com/twitter/simclusters_v2/tweet_similarity/BUILD b/src/scala/com/twitter/simclusters_v2/tweet_similarity/BUILD deleted file mode 100644 index 526ee6d23..000000000 --- a/src/scala/com/twitter/simclusters_v2/tweet_similarity/BUILD +++ /dev/null @@ -1,11 +0,0 @@ -scala_library( - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/scala/com/twitter/ml/api:api-base", - "src/scala/com/twitter/ml/featurestore/catalog/features/recommendations:aggregate", - "src/scala/com/twitter/ml/featurestore/lib/embedding", - "src/scala/com/twitter/simclusters_v2/common", - "src/scala/com/twitter/simclusters_v2/common/ml", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/tweet_similarity/BUILD.docx b/src/scala/com/twitter/simclusters_v2/tweet_similarity/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e187a560393bd40fa7ae211cd131e30a8d17eba GIT binary patch literal 36807 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

    3LJWuq-a`cD6Q3e@2 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 Vc(Vd?5GYp(G9&`CM_dnx2LLE|QQH6j literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/tweet_similarity/ModelBasedTweetSimilaritySimClustersEmbeddingAdapter.scala b/src/scala/com/twitter/simclusters_v2/tweet_similarity/ModelBasedTweetSimilaritySimClustersEmbeddingAdapter.scala deleted file mode 100644 index f1c3f8cc2..000000000 --- a/src/scala/com/twitter/simclusters_v2/tweet_similarity/ModelBasedTweetSimilaritySimClustersEmbeddingAdapter.scala +++ /dev/null @@ -1,37 +0,0 @@ -package com.twitter.simclusters_v2.tweet_similarity - -import com.twitter.ml.api.{DataRecord, DataRecordMerger} -import com.twitter.simclusters_v2.common.ml.{ - SimClustersEmbeddingAdapter, - NormalizedSimClustersEmbeddingAdapter -} -import com.twitter.simclusters_v2.common.SimClustersEmbedding - -object ModelBasedTweetSimilaritySimClustersEmbeddingAdapter { - val QueryEmbAdapter = new SimClustersEmbeddingAdapter(TweetSimilarityFeatures.QueryTweetEmbedding) - val CandidateEmbAdapter = new SimClustersEmbeddingAdapter( - TweetSimilarityFeatures.CandidateTweetEmbedding) - - val NormalizedQueryEmbAdapter = new NormalizedSimClustersEmbeddingAdapter( - TweetSimilarityFeatures.QueryTweetEmbedding, - TweetSimilarityFeatures.QueryTweetEmbeddingNorm) - val NormalizedCandidateEmbAdapter = new NormalizedSimClustersEmbeddingAdapter( - TweetSimilarityFeatures.CandidateTweetEmbedding, - TweetSimilarityFeatures.CandidateTweetEmbeddingNorm) - - def adaptEmbeddingPairToDataRecord( - queryEmbedding: SimClustersEmbedding, - candidateEmbedding: SimClustersEmbedding, - normalized: Boolean - ): DataRecord = { - val DataRecordMerger = new DataRecordMerger() - val queryAdapter = if (normalized) NormalizedQueryEmbAdapter else QueryEmbAdapter - val candidateAdapter = if (normalized) NormalizedCandidateEmbAdapter else CandidateEmbAdapter - - val featureDataRecord = queryAdapter.adaptToDataRecord(queryEmbedding) - DataRecordMerger.merge( - featureDataRecord, - candidateAdapter.adaptToDataRecord(candidateEmbedding)) - featureDataRecord - } -} diff --git a/src/scala/com/twitter/simclusters_v2/tweet_similarity/TweetSimilarityFeatures.docx b/src/scala/com/twitter/simclusters_v2/tweet_similarity/TweetSimilarityFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..100c9a688f5e5ae5b323a85ca3636cea0f07b407 GIT binary patch literal 37387 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 JDouble} - -import com.twitter.timelines.prediction.common.adapters.AdapterConsumer -import com.twitter.timelines.prediction.common.adapters.EngagementLabelFeaturesDataRecordUtils -import com.twitter.ml.api.DataRecord -import com.twitter.ml.api.RichDataRecord -import com.twitter.timelines.suggests.common.engagement.thriftscala.EngagementType -import com.twitter.timelines.suggests.common.engagement.thriftscala.Engagement -import com.twitter.timelines.prediction.features.common.TimelinesSharedFeatures -import com.twitter.timelines.prediction.features.common.CombinedFeatures - -/** - * To transfrom BCE events UUA data records that contain only continuous dwell time to datarecords that contain corresponding binary label features - * The UUA datarecords inputted would have USER_ID, SOURCE_TWEET_ID,TIMESTAMP and - * 0 or one of (TWEET_DETAIL_DWELL_TIME_MS, PROFILE_DWELL_TIME_MS, FULLSCREEN_VIDEO_DWELL_TIME_MS) features. - * We will use the different engagement TIME_MS to differentiate different engagements, - * and then re-use the function in EngagementTypeConverte to add the binary label to the datarecord. - **/ - -object BCELabelTransformFromUUADataRecord extends ITransform { - - val dwellTimeFeatureToEngagementMap = Map( - TimelinesSharedFeatures.TWEET_DETAIL_DWELL_TIME_MS -> EngagementType.TweetDetailDwell, - TimelinesSharedFeatures.PROFILE_DWELL_TIME_MS -> EngagementType.ProfileDwell, - TimelinesSharedFeatures.FULLSCREEN_VIDEO_DWELL_TIME_MS -> EngagementType.FullscreenVideoDwell - ) - - def dwellFeatureToEngagement( - rdr: RichDataRecord, - dwellTimeFeature: Feature[JDouble], - engagementType: EngagementType - ): Option[Engagement] = { - if (rdr.hasFeature(dwellTimeFeature)) { - Some( - Engagement( - engagementType = engagementType, - timestampMs = rdr.getFeatureValue(SharedFeatures.TIMESTAMP), - weight = Some(rdr.getFeatureValue(dwellTimeFeature)) - )) - } else { - None - } - } - override def transformContext(featureContext: FeatureContext): FeatureContext = { - featureContext.addFeatures( - (CombinedFeatures.TweetDetailDwellEngagements ++ CombinedFeatures.ProfileDwellEngagements ++ CombinedFeatures.FullscreenVideoDwellEngagements).toSeq: _*) - } - override def transform(record: DataRecord): Unit = { - val rdr = new RichDataRecord(record) - val engagements = dwellTimeFeatureToEngagementMap - .map { - case (dwellTimeFeature, engagementType) => - dwellFeatureToEngagement(rdr, dwellTimeFeature, engagementType) - }.flatten.toSeq - - // Re-use BCE( behavior client events) label conversion in EngagementTypeConverter to align with BCE labels generation for offline training data - EngagementLabelFeaturesDataRecordUtils.setDwellTimeFeatures( - rdr, - Some(engagements), - AdapterConsumer.Combined) - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/BUILD b/src/scala/com/twitter/timelines/prediction/common/aggregates/BUILD deleted file mode 100644 index 01c930e8e..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/BUILD +++ /dev/null @@ -1,353 +0,0 @@ -create_datasets( - base_name = "original_author_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/original_author_aggregates/1556496000000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.OriginalAuthor", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "twitter_wide_user_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/twitter_wide_user_aggregates/1556496000000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.TwitterWideUser", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "twitter_wide_user_author_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/twitter_wide_user_author_aggregates/1556323200000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.TwitterWideUserAuthor", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_aggregates/1556150400000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.User", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_author_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_author_aggregates/1556064000000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserAuthor", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "aggregates_canary", - fallback_path = "gs://user.timelines.dp.gcp.twttr.net//canaries/processed/aggregates_v2/user_aggregates/1622851200000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.User", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_engager_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_engager_aggregates/1556496000000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserEngager", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_original_author_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_original_author_aggregates/1556496000000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserOriginalAuthor", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "author_topic_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/author_topic_aggregates/1589932800000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.AuthorTopic", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_topic_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_topic_aggregates/1590278400000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserTopic", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_inferred_topic_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_inferred_topic_aggregates/1599696000000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserInferredTopic", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_mention_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_mention_aggregates/1556582400000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserMention", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_request_dow_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_request_dow_aggregates/1556236800000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserRequestDow", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -create_datasets( - base_name = "user_request_hour_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_request_hour_aggregates/1556150400000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserRequestHour", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - - -create_datasets( - base_name = "user_list_aggregates", - fallback_path = "viewfs://hadoop-proc2-nn.atla.twitter.com/user/timelines/processed/aggregates_v2/user_list_aggregates/1590624000000", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserList", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - - -create_datasets( - base_name = "user_media_understanding_annotation_aggregates", - key_type = "com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey", - platform = "java8", - role = "timelines", - scala_schema = "com.twitter.timelines.prediction.common.aggregates.TimelinesAggregationKeyValInjections.UserMediaUnderstandingAnnotation", - segment_type = "snapshot", - tags = ["bazel-compatible"], - val_type = "(com.twitter.summingbird.batch.BatchID, com.twitter.ml.api.DataRecord)", - scala_dependencies = [ - ":injections", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) - -scala_library( - sources = [ - "BCELabelTransformFromUUADataRecord.scala", - "FeatureSelectorConfig.scala", - "RecapUserFeatureAggregation.scala", - "RectweetUserFeatureAggregation.scala", - "TimelinesAggregationConfig.scala", - "TimelinesAggregationConfigDetails.scala", - "TimelinesAggregationConfigTrait.scala", - "TimelinesAggregationSources.scala", - ], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":aggregates_canary-scala", - ":author_topic_aggregates-scala", - ":original_author_aggregates-scala", - ":twitter_wide_user_aggregates-scala", - ":twitter_wide_user_author_aggregates-scala", - ":user_aggregates-scala", - ":user_author_aggregates-scala", - ":user_engager_aggregates-scala", - ":user_inferred_topic_aggregates-scala", - ":user_list_aggregates-scala", - ":user_media_understanding_annotation_aggregates-scala", - ":user_mention_aggregates-scala", - ":user_original_author_aggregates-scala", - ":user_request_dow_aggregates-scala", - ":user_request_hour_aggregates-scala", - ":user_topic_aggregates-scala", - "src/java/com/twitter/ml/api:api-base", - "src/java/com/twitter/ml/api/constant", - "src/java/com/twitter/ml/api/matcher", - "src/scala/com/twitter/common/text/util", - "src/scala/com/twitter/dal/client/dataset", - "src/scala/com/twitter/frigate/data_pipeline/features_aggregated/core", - "src/scala/com/twitter/scalding_internal/multiformat/format", - "src/scala/com/twitter/timelines/prediction/common/adapters:engagement-converter", - "src/scala/com/twitter/timelines/prediction/features/client_log_event", - "src/scala/com/twitter/timelines/prediction/features/common", - "src/scala/com/twitter/timelines/prediction/features/engagement_features", - "src/scala/com/twitter/timelines/prediction/features/escherbird", - "src/scala/com/twitter/timelines/prediction/features/itl", - "src/scala/com/twitter/timelines/prediction/features/list_features", - "src/scala/com/twitter/timelines/prediction/features/p_home_latest", - "src/scala/com/twitter/timelines/prediction/features/real_graph", - "src/scala/com/twitter/timelines/prediction/features/recap", - "src/scala/com/twitter/timelines/prediction/features/request_context", - "src/scala/com/twitter/timelines/prediction/features/simcluster", - "src/scala/com/twitter/timelines/prediction/features/time_features", - "src/scala/com/twitter/timelines/prediction/transform/filter", - "src/thrift/com/twitter/timelines/suggests/common:engagement-scala", - "timelines/data_processing/ad_hoc/recap/data_record_preparation:recap_data_records_agg_minimal-java", - "util/util-core:scala", - ], -) - -scala_library( - name = "injections", - sources = [ - "FeatureSelectorConfig.scala", - "RecapUserFeatureAggregation.scala", - "RectweetUserFeatureAggregation.scala", - "TimelinesAggregationConfigDetails.scala", - "TimelinesAggregationConfigTrait.scala", - "TimelinesAggregationKeyValInjections.scala", - "TimelinesAggregationSources.scala", - ], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/java/com/twitter/ml/api/constant", - "src/java/com/twitter/ml/api/matcher", - "src/scala/com/twitter/common/text/util", - "src/scala/com/twitter/dal/client/dataset", - "src/scala/com/twitter/frigate/data_pipeline/features_aggregated/core", - "src/scala/com/twitter/scalding_internal/multiformat/format", - "src/scala/com/twitter/timelines/prediction/features/client_log_event", - "src/scala/com/twitter/timelines/prediction/features/common", - "src/scala/com/twitter/timelines/prediction/features/engagement_features", - "src/scala/com/twitter/timelines/prediction/features/escherbird", - "src/scala/com/twitter/timelines/prediction/features/itl", - "src/scala/com/twitter/timelines/prediction/features/list_features", - "src/scala/com/twitter/timelines/prediction/features/p_home_latest", - "src/scala/com/twitter/timelines/prediction/features/real_graph", - "src/scala/com/twitter/timelines/prediction/features/recap", - "src/scala/com/twitter/timelines/prediction/features/request_context", - "src/scala/com/twitter/timelines/prediction/features/semantic_core_features", - "src/scala/com/twitter/timelines/prediction/features/simcluster", - "src/scala/com/twitter/timelines/prediction/features/time_features", - "src/scala/com/twitter/timelines/prediction/transform/filter", - "timelines/data_processing/ad_hoc/recap/data_record_preparation:recap_data_records_agg_minimal-java", - "util/util-core:scala", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/BUILD.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..2c821dfc55b4806d3fa1d875ef12bb4f9d769eff GIT binary patch literal 38233 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%0DansRe9Vd$tfBH}+TVvb9xC4Mlym>Ir+!D)cO zPfVCFS58X!n-eFSN24zfHI+lGB~^h0Jjh)3+yL@GXck-4P_2~$z@)$qy$+IbnM|06 zMTCcjrdkt7X;D4sFG`}K_$X=sQ70UnL(#&ou)vKwHPxFEV2}Edlv8c2Ck%L$sPpXV zBwpk-D*)Q_Ga=qbiE3d#HlPvzlLcl{0??U5(SJMRfCin1RqL2nkDZJ-E`>j7%GT`A z??FyYWlcjRSmp8)x9z|#tX(u-E)y;+P?gkg!a}M{*>F`fse{)E;YO%9j?Zx|<0ISG z6)&4?R}Hsd{KIakd^InS%WjiXg}ddrW?|+Xds=rfN~IS6ty1#OK{JZafG6NBlD4c? z6$(0MZw~LLm>+)H@6by6d6_{73od5t5f_%_K>2+OGd?k{ zS!sbeRQx9PS6n(piE~qa{Xt^B0{W==?x)xV0n95<9>_nhC1dmh6>y%Yy};~xT~Ix1 zYR=e&RoDRL9iKvzG4n4x(eyk;r9+?&nyn}YjWJEALI5#wRt>EDFrjJc4`b%LI1UH* zl#Y0#G^1tlim}QB2a7TJc7t7ct3rSR4Ss|*Fr>Rb1l)HT4iZUW`Tr(Bc?iXWfiq^$ zp5+N9CNE1~5@b3Ww~#R}LR>;zA}uZqa1MOfw^NFj3Tety7Y0b^YsZWFK1)u;FSM(4 zXgEm6nPMF@+L4T!6WwL|XNI@o7`ieWMw8!7nEoMEeuwOv>7Pl91Ie=_49HS3JJ?dN zA}-mb4>w5p%aApM-+YpQ2!9MIP6h|^ky^Qr5%rYmR~yq* z2&9(|Z=ETVb8{eU$$5OQL`($0YpqqdZ0I7r5`S9G!xuBnd7Z0l+Q`ou@>$eALcN#> z6C9Ry@~41yUYx>T+@`Q%-b$OIitFHIv!c_5fYYKxsjOZ+cr1Ue#~?0gs@d8s9;k$8 zego4vC|CB@4^_r7zkeyr&xZI~m()E!Mf_)mq=9LzmxMzA4K$*1qC3$z4t*`9mlTL0 z_8254ZQ5R&B_>{=hZfmJgik*o3usIh1AJU@U5m^}tE!lxua5%akPf(UX4mx)8c$*1 zsTU4Qkm|)bo5$DF$CJvTsT=KnsvYgFl{`&EZ*CZ!joI*hGoU-~>mx-x6}8kjSk2*O zl-KnWYo1qY*Erxu7{K|ZUFRnToCX2I)JU13o*<>U#qkpZ9?cOKh!KfX1p0gtnKQ=$ z@oGI9$Viyxl2n=#q!Pes@CIcB=7fgFG_mG6Ad(RZ^g#TKsk-A36lU2?9E`frm%Tjt zh(bwz2uzJu6#9B5dL`bmfJ=JT>w#MG4E%o+D&)&_Q-16qo74vRY7%FCpY-^HRAQIf zAjM7ZKh)v)|5hi0@_*G?Apq5J!*uz+onibN%;@07G0v&vFCZIC9O%2XNV&Fukz%F4 zz4b}Rdj0iZr9TS<#dUkYK|qdS|D#Zzqp_2dxsB&CN6UFPw^CyDs?W}x92(9{qbI=Yi}SVp{c>M`Lyy5C4b%gL^6=2BwMn%o zA&jP_H>@od4#MBEjHm9YjOzp7-mz-9=pbBOQ$hSv9}QBN^@teoj;>ToYlZbp&ahM*tL6k3c znUG8i9Z|9A=mCJL!pD%<8H#+F+#nHg=NoA7FnExWJRV3gP!L&{ z3sIE#X@?Y1a*&ovY(GWAH>3|Yr}J}zCK%=l8*?4Sr0<(!`z^*gbtrx%yZF&Btqv~t z#}e>ctSYVw&d)F7YDyp`ZI*GyzTF5R)i+B>ZbifLVg?%4*_QUiW3+-<$j$V`OTXyXR+RC(pJ$Bw7ux}5K4ZxnT)BcFkcpHw}6zJ?| zLYL3gwG9x-N!+t&^?CSADlhb_%(zO^sV2{Z@N#fT4z^TdYS4>{{1-LXw5&P$UmG{^~;Z89Qbx)VYW zw$-9*gSsgU0V?nUv!O9~9SfAH%sW5^hv(0z>VeF9kMlgz!T z9XQj=@nJqggknI1?5>Pa(IYUm#2i+4at|p8DG?_e5=MiRdV*^azT#f%RhrYW$A#GR zed#e<*#`aR^2!sg5NU1}ApMJtfI0N!gYU?iAyWRNn9P_N-8>N3eG8G zm_<#j-vrq{`$`~Wwf25+wns#SE+WCSd_P{dzJ>g!V?TLv9Swn1e}BS(fS~=$F%w{s zYZZM1t3RcGHX>Yr=cEhG&5-~m{7N>Cbwl(P{Mn8RyuDueZh!?9Vn+X=#RpN z8>{6^aX4V57o@x~CRUH+Aeaq3ON#($t#`z84~>8k!HrcTmBilV?b=QvXN~r+V2N59 zxAq8KR~gl(7ZXZk)iO~$8eu-P#5=jfX2F%r6D_qgVS5f&qI2YfI1LqR9`ZlRK*d5s zCf!>f9<|X`SDl_t=j1Ude)k@RB9$&uiDbbF7b=jqJ6O*>Fzh&A>%*22yZ7LvH6t-$ zPp=}+G*d(|EDyMm&d`%esh~dzkB&?)1zoM|o2H#@*>!=uoGi0d^It5f`{EbGa~hy! zGhB?IoWq)5*bh|N0IE{?>u> z;&3$&ShgHPcV`y7R54Y1&D$|<2KT%>JFwExF)h_j=fhrY<4l|Eq0`gd^@RcC^P9Vp z5hmSViddYF3-RV|T(ns2OdsZRhK!I0Vz=V-oeldDg=RrkjH6(GL7;qWVd>z`r!@a8 zd|nh4IzO64WmZdXmSrO~i)1$11NY6~-I3*2Q)`dzWKWKOjVwag>&z`Bnp9ZjI3BY* zU+kv&ZL(mq&W?(n-9caSoj|hkNM-GwEhHGzRNeQ(uVK^9uPNP>=OrF;)#Bw}Z~m+3 zaiTD3>oBn1dIv2C2*$q-NhdR7Yh$KATb4f+&NStK^=+}cf2g6fA1uDCJBPQ6U94U% z7bBvzh{QCCYFSY$5}%THBVO9~`s#1i4!~VB57br(!C%b3rP~lRBc14C)2xM4D>@tv z$$g`M9wB|^_v+DAx?VaDAq4#yYA^ftsClU5j!3*+jPy8i+2k4UKD3Ox1NMSMz9@0o zM6+kPQuC!1t_B9n9Y(Tsrlz;~5DrzFCaIMngrr9l{9vLD)tC_dHZDpADF8ZtnXJg7 zZG+w&#;Wi4`!i|elQ3J5~^>iJg*JXED};=apJSM7iY^a&~lyQef}W#QDlL-R?f6w-8$V27bo3BK{w*CM^0Yv;l4| zY9mE8JS-ur7rAgNT;E{)V&>G{aiY5KIs$aQ^;di$4TI?A?yt}L>nSsR6%tH3A72ia z_D5<6-?SlmVBhS~-j9AVy?ejVJe@zg+Gcw-fs7{fZu`7kwCMI|`=Uqrtq*p$+s%5IVwT+$cOJl}oZFEr5%Ti-AyZbVAM}eFcx?_+_P^p$L!w^!+q!jE^8E3Amf~q}tMjbNiR!MJw=D3w@fwx}X&EQ6T{rZxh>z{<$E1YQ@uS4b*Id=!Q z#aaDkJioci^L;lrEiGZFl&<)0k`y_;g~e zV9t#HAc861kFLk!TVkYo7(N>|5}5c9m3nIjBSN7p23^xYs%8CP0dcPORu02gTHVt7 z_LDdCJGG*W84 zi(HxuN}0=2W`8v1S9MZ<>-V=U-3(vm!gSgT2xxBFD&?ft8_2beIv|knegJDDQmaCZ zuiI|6>YJalxPTn_5ohz$*)hKayvj;5+43>7`ola_WQ5%4W+=CIQZwTXVsSa=**HZ- z(`WM~%|*?mAD<&m#!z<6*grKhi@O`pHaW8!(snqJqO3b-fishTXa+BGK2zl7O`QPO zaDMMK@++HR{mgWI1eWam-L}+m_mdhH1!HV;j1{jyn+UUJKYfnT*skPVvr_DO@9In^}u z5f!J@U`xfO-j~l7u-0C&>j=ilQMt0b+xn}g3vGG(uuMTY&pSS3$7Aj@tv!mCAcM91 z-eitKp@(eCXFN!;s~*B5aBA&bfdh9qwhUsrf^Oa#pTJSUT)TJrqZwyMkuB&7>&3MN@Zc>dZcsccy6jj99a8k~^i zhxieEl?O<2YS&WrCgg|3|+tGjOi5Z=jqk*{n|~VhjobIeyjQN z1pUukEZdiNr3Cne2L;StKLFniogJNQt<|lqn9QAwt^a)ORYlgp^)sV`{O}eViytfI z4Mks2LZL#l1-^@Xt-id+A(iXnTGBB-VnF2l$naB1zobP0?f zE&=P*gHQo=5&lEhU)5p%t?o~0*r=I0V1AAQwbLa}(r8w0Y)YM{{)h&)_Q{T-jO12#zA`ut>lVSUACA^O$Q7-^lreLq#pOx9CwBMtoM)!1J~m0j&GwCS;>>5D zg)dhHANwrYjLdGrM1@Il+L%jhtHu~m=s%|tCr01?I6T)uQ*{62~5VTwRjxy0UcAyz@hdiX#v4{5^;jBu|puDTfeU>fjP!)Vz zc?0`rhc7 za!L9NftxRd71_FIRQbE79509Ah-jTL8rfDYui$w*5%e0u&<>`7PmL+SJX-MyKgyGnu3fmj~40fDYbRmf%#c z({=Ftu3eqTq^h!8?|sq8 zkymVD=&?s7ZUnqsdIfD&AB0tH4Tb(f>I^?8zt?->-(vA(uP+&ge!5F0efqCaTI_5{ zm?dydCJdO}{d>$|<7{nU>;RmV`JLTOsc+isabtIFmk7m)Yd3`@utTsn<_oEQi4rGk zx&xuau06{cWntd9lDRaTqN~gjEDdLqMRS>m`rxz8^X>(Bg?xIw4v61E3PX3~yb91N z*%qNcl9^oIfB%tkLV58+33d$)ZF;uVN67rw?t9G4Pt^5!NHp4-5^8ncZ&Wv{-z3u_ zt@xt2Li_KN_tdWwYYwa@%cj)m@X0)9hUQ%ec8t`*c37m9huDIwpp`3f3tm|{;r4Im zoii0S4OQ(sYeK0)%XY%y;fmTZEQ3&L)(^z(DHZl0Db)$t)fDC~hL=@q75nU!m-1N1 zKKGhQNTp4lJKTMW$P*2f37;fkBebP4V5OVE3@!ENk>TRzIa^MYgXE%+x(t@*?2z}} zp1x1>_2j^ZWuoy(3!omOt1*R`hKx1~hqIT0wOyg7BOeef@eLjr#57VkB{6}V;;cc%v#qi{+; z>4#Y*s`Sgw1L=l@Pq=xv1xyTzDP~2*)Hkh(wa(vd-G$S#Z`Rjt*WB`tnTDV!>rA7D zvVQ`&owR?6L|p!CGB~&UVbDQYcN{eoP3VV*&?O~dKs9qKRG!qcqmokHE#!~D4PDPAM(`XF2j50H58bTz-J&8D~ zUu33EXZX1u*Aj9m5i+82osmm5<;=;Pom0tP_8&8A@3lYQcfapi@4KJx^Q^UB`@Eje z-uQqi`*trCtAS_eS+=XWP^Jo|i>(|f3V@9qG2@NdWQJM|sFlyKo$&w2FcF8CQSq)f zEt9LmT7<8Zu_4Dp2iAn4M+>f<7gfRS_Q|WO4-j!Y++=`~t}QpI&NtY#MST0&-a9GV^9@)5Q3sOkkeRw37ha?tzRCC-_!zw- zRP+#ajFc7N&_PEZ-D~r!v?3g}>hXHQ%(fjUti;Ug{(M=7NCvi*-{144D(iiJP@5%n z)GzNz9=5K1b|qETNL~ULvh%~ARn2~EroTnuLB8^K5-?U$T002%hGZJ+H@posJR5lmG6%*v^o`|CUjcJx%6?Kz;IBDm^ zgkC&R>>xbNwcfj$5SM5#+tx@MDInKT1oaDiaQQDsH&FuVJf@(9~IaI_;|Ak(;(@)Gs=M zj4A^S2f_N0eZ{d#c;7=o?K-^&Us`bKiudCixW7_PHT+p(n%EZ6a1|~ovvUomUoo=T zU3_B-UCLN~J*DDJG~g`xLC$-|^n#5bx;e)ESb>Xt+Q%M7Ry}2MNbWCT zb@C`Pb4}S+{JL!WKxvy=M1AUuWZpoxV7_tBRn6zYqQMVgz7D~U=4bJr!>gooD*t&J zNw==asV`KGH7cPc9nt25>nP~yMQ~S_&7{>_Zo_n5P9hyI8e73^I~?M@F_N8{zBxC{ zxt4$-%=f(Z;t)B6`I*eE3cWgh$dU*lt?%jN5JnnVa)UR5;R?XF_moa$q54$9r31R-$$5(C%NC zbwOlb(RPy@%N)KIWB1TB$D;~Jte7KDut@N1ySsTEaUpKw=HjO~it+RPYVmFy`i#9e zAF)ShQ_TKc3BXmKJFY!SGwP{+(G$|s%4`Msh zJ$vlUP?l4E2h#nvNYl@!U8_Vr;>tUimt34);8mp)+I4Ez$23>PmChDu&3oWZT$@IR zH6?bMq4=xh^y>oj2Sc*m&$dX6NqcgmhJQe@L6`?a&8TkTp{ z$iC?OGiTy8QmxL;reu}hX|14k@#(eH`whiO&rPW0V7tj7ozIkh%^H`f_pB7|e#fBZ ziLPkPaBc^ir%4Tcd*^O;_(;!a_Ql+w=B{+Na9m#@t8%WZ?-vfa#AlS5fZ@D<$_W!% zf8jURVLxhEQtp2W85lp;8Y=An^aX#>;^N>C>o3>8za&_T@`8=4SEOLPU0+E?=|pN% zoK@?#J6>W;zYPqoi&YtSEsRQNb4gC}=y^bIub9iL)+UrZZ2on z_KF;F5|?!*(1>vjKMQSqaT&lS z)BHry(c6qvFhXqtb8cU4$M=H8t<7ifRt}g) zhJUBQf1221P~yKBe<8Gof-zBW$Ftxq9U!Q*1RMpg{CM|xoeNyZL__fpeSNAt5GP6k zfZ`JTB6#Ho?&0sh+*6xxLbl>$06+?~CQBR700&~BasWyM`+|L64)>#}uQUN0Zw8yv zSkkz@!Z-ZCp8qVe>?p(+s{9gX2mo$QQUHklIA~%SV6PS)B#1;N;ugx4&@q61Q1UxX z6LYXx0z*D83DtqtNf&i$g1_thR78Q|(89|i&LV%qA!Qh-0<;jZs4z(Rrm&-nba(&& literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/FeatureSelectorConfig.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/FeatureSelectorConfig.docx new file mode 100644 index 0000000000000000000000000000000000000000..ab274a3fd32f34fe29d6782d194f01e979856cec GIT binary patch literal 37840 zcmagEWmsIvwm*!!dvJGmcL)S`cMAk)+-W>Oa1ZY8?(QCfy9EgZcmH>0=A1Kg?!E8( zW%E$A)=$>jy{me6Da%1ZVS#~x!GVdU@n~177RDukgMp2~fPrCxM)f2B_AVCoE=KB} z4i?S^%pP{OjY$ehtDx8;|nyB?8Bu@+sGPLr^A&Y(T*YlW9EqV5&;>ctdWp;_?24QMi zGJM`mbAz+)*7WlmVT7EC=ja9|X+MBP(^ST2Vvr1lz^Mw2L5Ef6&+z1SP&lZo9*xlK zGJM<{Q+9iq@N*}BknoqvdRbzo*3A5rj?fms`!(G7TtoV^aYOuobFJGXL%oxghGX4o zZy}1u5F!BW`wzPwX7_O|jw6`5(#UHy-3<(zkRK<2Pr=kRvxksbT5t9OImfG-3?Dmm zb)waMt&f6a@V)LNP%@5t0_kY#$qW)<(%3s?Sn) zM^Ha=X^7OSwu{9ik8<$wyg438ko(@`1nVvHNhAfTo6`*&=nLK$vA{LjwlN9cKUMybU6B)ZB&wIjBFa%Tn zM;AS* z^L661$Q~$Dw9?h7B59zF(@T7Cwrgg&ke*Ml#86}#q-ClzADFw?tG!8g(a>(R2A2%q z5kTglz7wotn-+0Hfg)-_eaCI7Nh-{+fjOv0SARMqRwXWJL~kd9QW9L6fPRhWLaXKK z%QOps0Z7X?aeXPSZ2e*D{^eez$wkK4U-T%}0bMOs(VPvJw*W=f5%XF?_Fy`?EVeZR zr|q#_`J-O>1@mE$gp!(}2jw-)WCz9ouT_I!@l4C^`+X)#ib*Z6DNEOlAQeA{Y2sh3 zwJB%1jWJ8UaHBJN+-LtRP}pZgHEYmqJ_9NcI;cSA05fGLfP*uO8NkWn_f4J|Kd#u% ziY9gEBQ>X>8GeNZCnZY{e)Q#o3|7EW>n$gjg6((~_vGeoft_v+gB$Ut!0?rW@H$Up zGo)EadvP{F!9V+Qy}F8f z4C;$56c`xV-}_?X;P6LV)W_{tSFnQsC8uu)>rd3#s=2d-JcmMHMsjkH5~<|*we z819#b<9brHx>BvM%czssZf&vQ96m0{7YW+P(eD&VHYR}HYxHdGfHlY1mfQMLfmjr| zTNJ2A0r91097*~W30PgC*o3B3OuyPOz|}7vUZjM|OGs_-FPA@__A_fR6Gg2Fm)p=O zeWzxGrE14(%0KKdSC9!+4bf006Fr%d5HOh0ooXE%NG$3aDC$LFXLI4ByHRb209(QL z05s5vpM>y~-@EDVklcO5e?eouuwy&edTVFA4YVft zO8ohObq6?^vw%Leu6Cfs>Gz#+lCch0<9`CEWMbD1vrjIl*$^K|${hgN&wu9zrK-?=0Zqc5|U}pJqAn@6F7<1Ir8Z z*(fDp;Uf~~oXi7dsG0ciYvFX&Nm!NE}8jK=ZqJ{99db!aBAe`EH& z|10J870bBqCX?uR|1*j!?#NCuPvNL@M>0fokLn?tT#B1_31dKbDV zA;lE|$IjRg%wAvfB;SU|kB^S5T4wP(U?1{c+qGq+J`;w2+sV3-c|)=)&Mn~ZmcJ57 z86)nJ+-MLX^VveB;`cuO<@(8y>CJ3P6~iC_PtY80BJmw0Ju4&l6x1Q9hNzDDa7Kvy zx#*6zm^{))hVdU58f15dD|)Cc#iW+9^hr99iXNh>I63usb{Y=g1Lg?ASd+t!8)eSc zlpm1bQw%~lO)T+@z9LlOMq|l>wO{k!bIJw0ayOfv)+x!9Q1rpyVjn2Gtdf|EPZjn+ zqvpDzwH*8=)huzQHmvxdh5ILyUgw^A)(+f`x$1rjzW|*cKjw?c8YwdeG^;bC%x6(o ziEW3O78Ht9_*p1XG&bfpZh90sQ6g4!1l9+ed8h#*ZgYP1*h`)Khf59xDl8q06~pFL zy3okt)8h3tMqNvK@hrs?!9g&WR{RwEtyt0CMWhCJJ6bRv%aGtP>!6QAhg8f#iH0X* zg{Ewn!Do1FH>gQMtn2(HX{L!qOZn;m^D*+!dN`{UUiGub3!dx6Uyytdm=wwgCC++l zFgty;@XFHSiGYNCEEYKs4QxZ-Cw zO}~(T339YMW=o8RL`NZ8`z1vD(-u`0LWI|`W4d%Rf$W^$xlI_oK31<1*ci>O1jZcC z!JW@ajv0B6q>MW@?(&&okIu?oeN`(rS7EtTC7Yhll<zD#&mWZdu9HxZkOrvcv<~sK9W$D!< z37LnlW90~CP{89Scr%qsv0$_kKRM+3v<`~-MHYM=i4Ba_9EwtBPFY>Or(Q3!{<>YY zQ)xHfD5ck~zWDuN^~gl+WFB%+cPg`n^i@W*~iej}$!;p3HpOR0+;fl=-PU?UQ|c*D!n7%l%q&e>yH zNaXwi5WoXS;E!`Z+2`1~~gJDgz#>LCvlbsy=V&(UG~aO=B#h z+@X`BK?8qBmZ;-wh1R6n!&*bNeOyhvj)@KMIyxxPe)sr16lCAAYO21?m59V7|0^mr|~89R1ov)aYdLj8Pff-q#c+U3q;i z3%`Aal@TW79~ZXOEPT!mSQ-%(EH6|%5Uw3^TCeg60NTPe$QZ0}Y&cds5s89L}hynVhO zUtf|q6kp66dARbQ3#^~Yt^%DSvz3gt4>T`APzR2BeMPcFes)ZRm>8QRD@by&>ooC2 zYF0%D7%Q`%8@V}OP|!_&;Fyx%V4RnV|0JmA=KrDyOdC6_G@Tn8B6^{cNO^ZZ-05bW z(}({syo39*a!+K6_X+l&OQF3#0R}s0k2DV2BN2l3NPjGaf9~-Az99a&+fNiz3S!0k zeD;da7m|QgWFPVFR~~gcy>xYDGGbgo4A1e+%Bq}^3)V5L$ z)FDtd=Gu$4Vpl~K97?Ojf3D-vh0u|liT`R6nw{n1)lPmfS=DmcS@CI0WIfHfcT2He zGq4XGs&;AK*nonI%6RAO;M>i;IicSRtRaGB!#trx(O$r_f_@Z+5tQa#24p|Sy|MM! zuH}Lmn528RM2ZA^VNHhGHsob7M}!zJRb84|@TZV>lb?8Pu4fVlycFSGykQ|kc7-F0 z33vF2v_GkgYrQ`f>O2365kN{~hvU3bqPcIpCda#SJyQ+E_Ym}*<)5{VD#sCsU;zU& z)PM#<{a3A>T|8|qod4K#7#Jk%NZ0vxcjx6BJ^!$a4F(&YvImQIBQ){u%&I-(P~e#T z_3az($Cwi%KPoa&5)D-i%@1Yqbpm}^ILdT;TA2yz7B4T^ejT=FKqHdq^q13hp8js+ zu2#J>&8OnY)2ns>@CDCD;9>vNL-#Z*dG*EqEYf_uYjFRt ze$k#X-~Mzk`}3wfG<5gK^QBJk)$XlrBZLLGLSmR)d_LWO5Sp^LJ-&L}T>dhCeA(c+ zX3JA7LQ>J&)2Z~CFD$a|?b^Ct*ZXOHb==GSi^!XUHlQEHG@m-tx2fPo+ zupZ07W}Vq5(dkd;NjH}sX+%8Z*AYM`Ca)JhFN&*#@?APt&o0lEH4#bi7{3sf*RHj$ z_U4N5q(L@6yY@BTE`7bTu9q8$M@!Wd;(o`?br#f3;8!UUADOHZvbTZihi=o}>hXE% zIP1e2^fJodT<6}m9=6oY>{v>r9Ix=Q4w z#>iJk#FsaOrK3H@A_Uj(<@KQ7(hu(Cdi}*EP5-$DxZJTRC{*cwb{d+(bDG7Ybo}OP zcm@=z%C=v8!yM>Jj%-=!K2bbajREZ3|9Gp_?Uv3W=xWoG=6;}i?BVvhW22&Zy(eYY!u&zBQHgG-S!g>n6}dNZWy{`?~u9*`yqGy9AX@m84ID#I!x? zTZLt&V`KW9vUsrP=v;wQQ1Tdqe%|`DXmX`aXETs$bszNBVNkU&{d6+>=y2!wGAw(0 zC312moS`D!XfQu_-oJl!_4BmfIfIiSq?NExE9$L(-=mB;O;I+7hFZppxuDH;V z!C7r!^%%ij75QTYd#Z^dtaQ+kBHC?KWai7jsZuat1Ukew`;%t;Fc64|Lo3MYC=c19 z0)XrAj_Qe`DPH2B1t)Ysk1&Z};=~5Vc0d>8{GR*>n#B3nB-Az~09@>^_^L*HDrP7a zPsEWv*$s$)VV`iugHlOBaddyA>VnWhK)C-%{gVo+l;+Ha%;UcZ&QvHsBM5(}NbZ0( z&;1_~{{t24byZB`D}3g>BhCyz<$tM?74q&!Y%jXlE;HIKQlgB_ z!8Ov`Q=r>YhCA}$Y8SKLaJG!yu~Ym(>#u zT>X69&sq{FQ42Sm!)g|8nABE@D973&wU!ca+HLA6CR<;7*W-p%Zt2zgos!lzj!ryQ zx(A|@?{X5qUsCgSySS@;oI)AJ2|F%p@PLFGrq{sPE;U+64}5tYI4@E<7-!#bAr9}5 z9ZOgJFrL2k9ACx*O((H%rXb5t!d^e?`AIBE?qtC)LlQ%avS@DEyv}pS+-Tu=FGLab(8TH9pz_xl>J*03 zs4>iW9p<^_!5d1%*#t&#B~$at#|(yLD}z0K35twycdldv)ew)w+@eo{vJC#=b&Hwl{^A918#`K_Mkpf3hVe_#T;x2HGONOkV(a|4hRos=bxv-D_Ojo3 zh;_8HFG0ei@;;yMGonHZGiR?$t}KuK$BGz4I)^IoAZKJWAM3H3Lb@Urh4yVZOkW>( zHX;)~-J*iA2d_{a%*l4rVoda5-_NF}{oQA3bH2qtvUX1e3peG~2LYvJ+nNIRKONJt zW=Wbi&&c0i)8^Wz-5;-qFJCW*2EE!}96f<|uSstUCy%o~pN||^O*&p%L^5w#o~MVQ zyO8b}|I0Z-U9I1D%OFijtjZOPs(9i;^jlqbuj%`$Tp zN0}?OyYB~!|GGNL>JXaJVykf#RDD-Ni~{C7ef<10wio(BFTZGdRJE|1oY2QTs~``c zW7e3RM4dM_ejma&MI1Ka6jxyoY_XZVYQ8@YlVG)G!;3-_7|5I_(A<*Hqe0b-p*vuJ zqJ`V4fU?NL#;+X1xc2Pi%vr=yPMxeSdG4z{-C&wFxEy}8(#!?eI7Y<#dBm=5JrtO; z7ps)7@=;XjA0nU9-fL2;jP}RmEvO zzsTU0op9`OY}xiuq2n^X=i3;gzFN$$2~3BiJp2`{MyQg>1pkW zN?F8P{Ot9nHDi9-5TqzUZ?=SiX~Rs(Bk$X7WXwcr$P5+6%cVWvnsoKz9cA5Ca?g*VbX?6a zdlqI^YZj8kRgdn(jhW8HukdEl*8C6%2dy23%wLY&nrX~zl;&4eskay=;iN2XN%vh{ zb*6VoD-Rr7dQ&A8-Ixlqj9P`V-d0EU#bp_yKUDIH*X@)bYF7AtN-j8AQ(bM9X>x8i zZZG0lmeqCAw;5%Nry3?|rhJv=k>ybQFv%;%zFUB3X=_!VS|C(hc$-1K?7RZ)ZPT(H zp%9BR>Url`UKM|=96z9~&1t%#sCnqsjKnWr?GS zg(_u_JhHcn5sXTK0r63LF}mOZw!JIo`J?Km!*`Sz_|md+s&1`h-cyXy%VbPd6_3V? zjm14;>uNn4OP>_*Zk9`l?hd2w__E&0Q0#>8EPE{r?eq9kEeY%T1PTJXRa`A`*a3@c zQ1NHA6>0B3k7%@y8pktUm84yXMbe*{=?h_dNifjpmokB+wa!-haSmtO1C-|zkY{Gu zCSF$2a@aWQ@giYR-gBhfq_$2}o@)B|VhcDiFvw#Ul$6DEF2kynswg?$7WJz)J6dq9 zjM$i$LU-(4Zbr!UUv?mTpPbO)AF+R*LP~biz(U7Ol3L^#F3J;;uA0X%lL{r3DOo)* zjLoVMZ|~FV`KYpYM~}yZ{Da?Y0`yJiX8YN|W$j%)gdK|N$E&7E&Y$Vvj}^327JiT4 z9U-r`Cz%@t9y?ct{epa-b8~v zSa3O3wMeRV3-UQE>AQb*Po=aMqo#LPJ-##CbmXwA_ijmoUpEC{!BJG;|3xd$zk zR{gB@SH06m3272kTqdCcK+ZX{ueYJym8b_v5!m}y z_=rZ;xxU%en5Q=FhQycW)X!J5mIRochj%tNq+MS#sq#M^tV9s$Tga9kyu6-koy|jr zSZ+?mJ1NphwiA9E5sUO2@ z)-f9Q9HxQKP!uPZr;ag~$E+uuB>4OXw?I*^?5&N_3_)2S)(pX?VqwV6TAp8@qBn+4 z=jw2OL7BV5cPboQJ$xMVR(61>CQSa89_`%W&yzEG0Z|9n8D|0CnF^_>zj-Gu?_g?G zb&Jz!LN9~fi9Nk!na6V*u$q?Ntgq;0>3IT~LhxuIi19;sA3UalpPm=6E*rGPM36U;W}CvKk0x5?caL z6@EC`ygul!=H0$mh?3K6Ea*z4Sme45-{GV!4&a}y0%2(g%{ks zxFn#za<;a{75@}oIasV;OGEl%7DfTR?KZA<^M;+NIk$$0|=XPK{eco{R1xgiX) z+fsEpv)qtkOJB0+F8CtGkk#O3%Wj3fwOb>M9F$_q;nvzsl`U&R_)0fpor{Aj(WdO9 z3F(&^Hpn$e)MX+Z?cJow<{NtCzoR}fn1HQ1zQ(@!a2xTheHm%wxHLooR|Nn{$3gOy z?))RYzPA4kdFf^IGAlKgUT@RnDwVCm0^On9gLzcQCyAO; zhI`B$Za)fXDdn!_9 zSX$IxpgX^G5TRE3qTwkZ2*$KxX%HQ z+38EdXauXwBUSyh=}o>8uCJM9F>hCDj+fNmP$ylNEVG74xB|q3o-S3o@TfbIgfG;p`%}tic+Hd-T{4N0wRaHlKJGM&_)Tp zqBM~oK~#Z}Bpyw}r&+0;W!C7i|K@?B{1=bnt}HJ2cJYNWdX2I3(GUwOeF+>b$Wr3> zpJM9QtbA>)QlbWZdX+~i2fd8yQ0j~jM|h}MDC$si=dVv}@2qirR&c;a-Qt@P=tf$) z&Z4R)tWcxnjpiHRWV&YP=VzA=ju;@~r>%FKU9rGDLotg$uKM9i;k0Y`h!iRR!)Eg3 zzu5R(|3BGiM?3;}E@&3x>JL5^SKH`9QEq-rIdcb+n%Kyc`qdsj`O7vc5 z5>!Nc@Zx&>^7kP(P*_A-ZnMIfObSw{LHX&Mn92#~nzn(OyS1Gl!V~xs6G3HOWpw5K zr?X-60-bYfJt)dm*%ieiQnQD8($(-2ZimORA}P_!D9zHWAz>{uCDBVhA)l&f@*DbdOvOa4~CoMt7Q3on*8R^9fRAtQB$ zVgUCF7DOCGsyL|=m>QfUQrO@KB00`1HjYHxvZDC{G=vi@hegb0B_T3w*E$`@iV$OC>=*CU> zr*ElI5G3frR^!X|Juqz0C1g<9ya_Y4@g!ojX=sXD;p}fJ_oaWUR3m8ssqBaStr7~n z_N(b|>rWrneRBz1JA?okaMvfuk${Fb$glt+Gg787ZFwziBq>XQI2~NLk(=8IH{X;0 zAg*$DltLA0t=d#-%kNbI?=6AF-31}ux-)yX0ii^NSy?@GD#kiJ6yLvXrC}wmQSyi# zup>9tPqxbrv8kSw!Hc*pUALC-r+4A0dyG_+mUPiqI8#eRFErT>HpppVF}Ug{0MpK? zX8^LAGTj*9-(0WXxuE2&zML+g>#Oo#6mgu3D>@oge=(cff;w5DPRT>AVY-1?8sHAM z!&v>L`ypP(*1{0ebSGVVh^EUrWAxi@5}p-P8P$|*M*S*j5N|QCO=~}6-pIDBnSlm0 zn80hbs2V?DZf89HaVG*#et<8E zH|J(cT@=jbrAfXBcgDA3zxJS- z(uuJ7Lkaf?=~QX9a)5W@dEUCeiN|`tV_M zy_@l^U8EyBLjI7`)qEEKY{2X#(&PEwN zBpYS~j^F@8D3!J;FC%)LL$ir&dhM*0wrS4Bj4@~{UN7XW zW_@e(R0DORId2T#yl#n;+~aMB!Ppx@)e1C7)o$1(Gvs6J#ppK)|4l9T2Q>zW8dmQ2 z?t7wjV*xqY_z!9~^KlTh0QaBN->EPoQ2r0?9qj__=w4WHKcoyPD-m1Vsc_On@x zi~;Vy$g~4Hnkd_kMKB{MJi@e4Sw8_o4?fc`o&5EaM21Gk|doh0RvJ2led(R>L zMSkl#0wPy~{e!%jjT1A1`TroFF_ztWh)&sDbNY+C&sg?BRqGx>t62r>d!Ng9*h96} zIF?Q$!_CfsR-yX_jy8l$qPMogu@8AS_lrAUJBy%-3!WIYQNH|)0@NlB`7Y&%(Xa4n z&gT0mbY@l_UAQ;x$1+-#ZOnq{s+=^+D-pT6_pfR-cA^^9rG4YNDQFWab)c{<7EWH* z3>h8pV2TZZzY(vQ^Cm;1ItHV{T$*4MIc{u}z=v{sTxaMbwW0n5+%-|l{2|YN8lGh> zISplNRklw+^YOcy#(RSehc632BaBH|-4_J%G?+YVY@@HGcc0197QoY}zpaS@Pd}BL zLBU;Lx4TD+aVji44@ngBTc???VJggq6~Qk}sZa7K&K4AxMYnZqb5_0xE2PafJYq|7 zB1_JWd0Xflb=HLyx%wBubGFB2Kdl_)Ktc$;oKjh$DI{=pUwkW7Orw5xCppWRXARNB zp>Y*8%lWgkET0*`ukfi8ka@~k=?0Ci06Eiexe<`;btal;O_XB|G1>j&psR`hOMs|S zw>Ja66rG$o8tn$V@G!A0I432@d)0R66 zHmfD2F&sx3pn=Td&>mxX0nzb9yB%W6Qg19s;>e%;GBgF1K)-Q zp>_O5^AM|q)eXJ)jmF||3o|*yp|v!=GJsgpT=p5a#qPY$1AGG}=3JcY*TJnR+xD-8 zhEx;OUPLrHv<|R1$R0#AHqs6-T*`3VAJ8|@EVNv^KUod^J(0GdZ<`IW4kmH>3>T;k zMLRXPI(klq69*B`f%3t)Uli^GM{TEa;ZZn#iB-OWsfya!fIE>Ikb<@u9^lL}7%U@* zNAQNq#|Sef9bi{@eTecb>9AL1R*jV7{}C4@_FEiY@VWTKr;$<9ExunhBy9b}4M1>G z=-(IEI?x5C2?)+82WW?G^9OsPoIJ{Q(S5X74M`BRJ;>7*pUF+7N~y~&n{d4uj18o+ID@NTuNa5 zOCdr(;@&ag_Ba8}WDlf`u^LTIsRu2bS1BO|ga$n<^j7>Bn;5C2gSza1%88G!KW-GD zUHt=i&AWd0e4}0~LdC-3CIqD5yMe&4(Y_IRA^V!yFUa%WH+TRj9M&$I=U3CHHS9V$ zvch4JJi7H{ZZ#`zbE`SMFY=%thv6O6Ys}^<&u$4$!G30Zb90yTZ5Oy`M>!Xu`HFO~ z=G!FtnTD0NL`dnTCKf0-pWlan9v028>R4>EmgUfi(=^rGd)v{2u!MLSc80!5(N!FU z9(I@8_n+0KK#M; z8{ELN@-K`VwDYAxW=mZ_+(YB$kz(dUX&%;j%ehofj)lnTcx12>`o8 z=A8Ykd@#TAKB#!X5AaBc#z2Vtz^~coE%6i8PHS1L-8lG|O})>IB5+ICiVJEOR~%q# z7+1%6=wT1rtle?A_qN8<^2bc<-M8tZJ!q>Dcb{>QmZ$)Ni7$>1wyi^r`1D0w292s3Shs#4lu5qi0u@@BeUG$evw>5TegC82dF?K|qJwNwsC-&(4cdMqey?&|U za#S{tJg4Zx=(8Zoz4r;Dm1kLV%M^^AK^kU z2;L>@b*!|e&*ggmzmT30yQuY+e|27niYzVZV?zDg#s+50LxT6 z{`pvDFF8xp3Up=4)7Y$@l#+Xv;i|wl-57aLG9m%Jh2GLt8YV}~D=jahTZc9%QW7jv zESQhu{-IOJ;gML|7$_A+j8bt3pSfUGp1mMJCHw(RedpLCygG@)(M9ZWA65wa0j=nI zZ4`4EFNZz5YXdNrxJYnNES_B&B799)QjM!ziaNif{)@x)QN@*FQjvpV(^EszDkfg65OTdAa08;&YcJWCe_0nti zS^b=&aVsl{(=3l_dZ7$}~xRXO**w5EDK((Td4PFuKXL+Xk z+yhbHPJaYo$xso9Xf~#dz}n4R=pVpQ0|>yBgqhN<_s}B9YEanEc-8JN9o`1#T@PYP z&?1rCmdk2|^=zWhBEFrQiFDOGQ=m~bMBpKxvJp!T$aQV$metX9{#rlaN0g7-`qx3C zlC4Ft%_A?6pW%4~V3l_7bYUO~NSXquBxW5O#=R`(KA~60Fvl&<^!Gopuhq{bzRm?* z%(*T-4;Kbz5B;l||7&gB@*hlxbZEzRP(by~0l0Qn zh1CLZMNYaQ?$2o)^D25#l(>w@8eJ|A&1)!F*9JD+JFJ08c!o)cE8H8s#oK$q+~>Gh zM>xI@1=f3kGo|JLdgDKUEbg%8;e8Do%~LpG*yE^gLEm$+6A%y0iy|x^zvYp=)pGv8 z4mAuP?T#KT&?V5Yq;PAesYt_XSTFYbUB6VcBN^`o_J0F7D*XmH3jYJZ;m$p97izd2 zZuq2!IC^Q*gTEp}(V@dKC=$YoKP#Ldc&p{&_7Ig2@FBI+f45~!-G6tm9}mHS&<72& z_d>YWaeJfUF9mu*GXq4<5dK>ph@XZ-F|GJ2#38yZ0~GIH-iw{t)=x9YA+a zNUR8>SXo4EL0Fmi#3X4-rd)@@)3esj_))b&Zn@+__l+FvGWz$GTVirWUguv6CzVz3 z{hZTs>7!nh&m$C_xHhAJsaRybCu=RPyj)RTr31F@>%;ZJUQLMQMl8WSY^#$DxC&sA z$`9wcFkZz9#oya3Gta+8dL2XRA0_nenMzkP@eD!Yr8wFL{cN(!eWgS$6r)t?FvWa> zQw(B0e-6cfpsKy(eZ=li5jC)Gj&^`vY=s8zh%Kn*l2IkqUyDxm+$r2xipTp3kHokb z$Iej#0gH);)6)kfO+{S9fqDhOV0;FkqL!Ag$d{kc<&9u#SA%tA(_l_kv$y}yqF| zlp9pSldLDk0>jT9I+$AqClo6pwRK>%mpyEm7;o|MEZ-zeEiis^6|dpRk_BwLY~wuJjpdNDeC!R#4;Oo z#5P~HLY};HKQTQWgE{5c!U7rZt9Gj5f~c8A*72%y97_91eO<_bC&z^zla<90QqdB| z*J0zW%z*G-QVu-uXXa^Rs2uFz-Vt(ckjvh~3FF_pfX32a@u5>}cskNbNJRojLpn>& zDT`c0u&OsHy+8g%#R{Uri~LQ+8Zl_PRXfdN2C~Wi)svOP%hq(HP2&46cWE_p<#mwnRiXudn(N$HioOt9^|D2v<&q_r?wMSBkTm?FkL@Z;W0#I*>5bnnej*-?VjD?=tw>IbcAH2}#gbgOSdP{KuN% zN#QkhhmzF7*bzn{->b)`?DLE=g>y1{p6eb)sntW_iiIq2aF@?XqXm9#czA-JZ+*Ldz zzADYS1Po9rtDK9goEyR&4uuUzkETvqLh9G^2`v!%Rtuv-f1X+$juCJ=IS6P}EK&Y` z#Dt8!<+}k#e+@~`x!GP0P$rAS^CPc4t9L7jZO=tgr?pj}E)i80!!6l*?Bc^|Li%KB| z9f*)73e9p(ossDT5<#zy=Lv2l0)3@<9E?B}CH!3(d}A*tN1P=`95IvN5e6ILlP&5} zaU!eM$RY~16OVdVcu)?67_>o7Aags=CQS z&-3@^M!n~t*eCaBvR1s+4zEf+Mv+hl9cq1h1M9^4)&sT^C7vsKV>xnYaFk94Pk_c< zf=N(fhiijMGy!@%P1~!^>i8(XaeN9!vvtRkmm;i3#LEo`m6Cw3zYwI{?K51WRs?-V zl`2rK!)1@c+VUoYr$bXM!K5oW!LdQ5yU%|x7sly2QzQ*}%+{eOU{m4~mm*G>T5zaGXgR$V~=DuJh-Xb)HVjYPn>WUQn;R8!LfP<*s zJ)hNEA1?|E-$T2D0`ijxk->D(8g`ucsPqV@sy`r@vOrWOSFs?cNuxvvl!spYNcN`# zV^o@{#Fs`qXO1s3GN4Kf>J=+Lg?D-pGgpLReYh1Xii7YWp(KMAM{p&FZp;)v0p-Q4 z&w?DhP2iJ3Z@S^K6ER0hBOnVh?gXT`W|Nm51f=j3I6N#~ki4P(^W46%XW%R!7Z{jx zH4GU3KhN!JS-X6cvb3}?bNTZKzpp_`zI5Hm(*t(n(V$XRG8ozDxbGAO#E{|m?nUbD zy>NN?oIzSu{Lu&cX3!~q(QJQ=kry_Nc zcbiCW-1qzTt-vM0s)g)LzpFE&T>#DI+R1Ii&F+q8y?;5@J;gm;DO(eD+}((0 zb=ZB%n3wmtd+}u7q;-{QXg}iSEMonov^53U=o3ps=+&DmOpxs5osF;c?rk)8^|-6k z<*emX-4czTy$DVB642B8h1>edwbsa2U#R-lugLBp#S-Y}_ts?K=WesRI__K0{lMHB za0c}A6gKK8ZM*fzFMi{DGaYwM7|sq(4{c7_^YUxybYIRIkmp=I^kJfh)+;D zkftZ$y{a)X3e8%{30)mr{NY!He7W|zd-0xSdRU;^-jR0;FRmecoW;YQ3~=Q`qjTE53XJTQ;7KpS6}Odhy;lFNd(_qp9MB5?%La{ zH<{c}%jc^{U#Kd(D=;KPCKlS~eVr^@mrktO=gGa<`HAGFMGA4*{T^yotx#aghv#3~ zGj7(6Mm4%wvNksbrY1`ts;+-rnZ7*uIJLgsZj#j9rSe^~u|2#3YhP~rf35W0ow2Vw zJW?#Gga>G8Zg%24+TXQ#XcO6+Us!j`FEp9otCdfeV{uL`iM(A@H@i&W0G5z`LTkl56Z?{`;sc;!ZUK%{_>wKPTloUI`e1Mjt0JbzI9V$c^#;>q|( z1=(xyqj=ul2$1_Dw}sIGxylG)9Ut*cTexb&a7t*fH_j)eFIo*StX7+Vf-v15nHc3D z7+!5kN#v77^NxXF+ao@_4!wCJY>gh9xyk5$e@ENCX_{v`{iL|r>Quvmk>`NL?VecL ze#I!#p_0k0l`mT__{kILhJu{+6%00DCB18BuCK)=Bh)Nvzv@ z`=L;b8tE;0cx{R`2;K^Gd+^D79f*anCVwxv0X?u#u|6jMe*A5m9+M~s#I5tO(k3tz zHFeMg-3n-e^aL~!3!12rZh?0AHw57VTr=298bLSJ&hMaqW&aNHn6v{YEGqep((oJp z50t+L{2k?gSAoaX4DIkWZv}!^e#Rc05XQP03?(QS1jh9bt$#^cfjDA92Y|xhL1CZ% z3hM#bBW|%uHU7p~hu}r}{u}4-0e|ycBi#T!r$@d43c~<}{kDek$*ElS5#{#kGWscG zkL>>u_72dMZCkf+tcq>hb_Eq{$F^-$RIzQ_wr$&~*iOY&Nd<4$IrrZ8o%_G{{0nV>yd^zPPo-Zck+9x>xj(~PIeDGEZD#ji@Mm{!|2|`^fo|zEiO8uTgx_x$ zbUnC0AdFhtSwGSPd}cP;nSR7;seFr#G^u)TXYAg4yo>#IHh!}FGWmSC{_tv9Kds|L z5OyD|+1zZdN}(Z$zVlsT{P=+tD!1>+y@kEVgL4vPB9NPn4lohO$u{x2SQ3FV zaI5IQw18+NgE)SDF$Wow&xLjl@LnT{^SU*`4l*TX@^8{dw9Lg^u;VDwjgE8s4PjYo zA6MdEs*WHpPsab5#9dFy(wz9>JHoo^H4@t{e?`c>Bw3ckx6np&fh^}b7k(~*h(-KM zcl<@Lq=rm^+5M3l%a#3z_lO9Vco(nwJ`hN7NXT*K02iD zMInb^a#YCN3sCwKd&t~v1Ok?WLxlH4#VxSszIbRM9F>bx%l}3^3V&8u>A2>sPsD4@H-ItS{*tbX~p&xb0sF z3Y_F+zP=ssW_#$%_xBtm^1s)QA-FoNdq2Ov#)=7K9{JpBy)7P0G`uzm>T%-BRxrM{ zt^eR+!e_8UvVU4)PmfW(?U5gK-);BtdT!gyF^VsC92BujNvP+iw96+HPp>{andUiB zTd&TUy`RBqhJ2;`bZ*!r&!f;iNz}@tz;;pBw|{rjBIDp1hJq!*jCE(?HiL8$cA;y? zMSs~cRb1iZMc`y#&5>tA}1Jg|7%RPD&KrV@~1S8OaB2;2wO zxaJBaczMLI98-fMp6)kW=FE?X+pPrPE1vjq5pC_nO7&ge8-yJ1IHQbONhF_ z)=Bf(Yf61~M`WGH#jaZbd*J@NX%CZmqaio!vui{Cpl58h*|&+$=C1M!3<|0F2iI$N zh${YoalG?YDohWF>_iUDc2g!UQ#)XLULSc;|_ycin1S><{i$@n^qo)(m=68k3xy3Phz&`!h@_uWye! zN{3&ZwZoywJeJ0Cc410qqtygat%c77pYl$23R-ps;iLBTdpi?{d>P(^5I~ z#EwwyyYX$^R#N0P)7cp+?EalHL4cy1{xufS*LGKS9*1|w@BU|OJ$7#6ErK&P%E{`8 zq3aILkHrTzV;y%&qXh0Xm_GX8FytL?e?c^NfoYXil-J`0?2xirYleK zS|nW^uy3``>M%|oDy+ia+Jd-29J3`7JU0<`OdxIDY}YA1a5YS()NOXQh+ zK_1FjWfeGnXC`e7Bjy!pPuZw( z78WSV3>h*Km@ui&#FU4AX%FDYA*QCtq9aX&ILb~YvcLV|y%O>32(F*^6oh2BX#3wR5`IGsmB{WOALz)$41odfL*p`Hq_qApO~n_hOp&E zE0u*)QxMdy;ibZXOue^dQCy-VGf}iZAPz(Bs{rc&X?*JFbCh$Y_W5e1&e|^zON+nG zX!uOy*l1$kWVb|uV?^8%4)iA~)Atg_5hTy+rAPgp5`*xv(J!)DL=u0uU3zGC$6;1> z%~h8UVw${+8#sA(HpHBlPe6z@ssFr_)5IIFl{xZKs`UR>ov9prd7kG?X!Z44`Z!))f~i!obN|SqF1ja3o|s|Objo3ewg}9ZIt_#wR+KxYCh$dmn_x2 zfbD+z<(h%%_c}827BKm|D+iV{6{FVDhmU{jYuf__Txo_b>!;2TV5X)G28XYI|Kv)q znV0}OeES_~l(cBcv)9ZK5uw+HsoGo1_Ums5;Fk#z$7B-**m)uipD)+FolBUlBkoIt zVC|*$I``T6__YzUkb;k&khlz%;Z`%Nzjk}}@YEvAL3Sl=3mH-|^d7b*$RPI7x?SDw zGI?BPK7oj~3|zcz>V4uYle&wU1^A5z$9n~#MB$9`|wy#67jpab2M;^&~ln!`wc zv**#ihS~0YcT&21FT5-Dp&Lg)gm}EJ>3K;_(&=b8n%uWxi0rdw^D#htN(6zibF{H8 z)nD_|@H!?{E&1R&gpDk{w)_4X-aJp!^8*9MWU$y@Mg&gNwn*s`k-jk5!P>9Cg#~7{ zWVMRdWso}puBu~fd3RHTA0Fab&e8`h#7jB;xCrlhddd0QDxKFxVed7C-V<& zP6zwlZ3PiEyk_)H@X0cYO+14-Tlj(QGmhFA;KR@KH8oSzPhtnU>s_#6HZvDw1L1#` zknS09ZD!UBx^D7#aXENhZp#J|W6Mpxh;4Q6*$`bLY~neMSrw)jeKo*o4)OwrZ;2Le z<9a(@_CXIOqpWpvme||Y;01DvrrO;$VT*NJ=*Ah|cHuYv0kxV3_}I)G@B3*6(CjVi z>-@5%~H4&kn#Id7t}r(}|;v3lj<4-|OI08`nCVVz!Gt>1r;L zbOG0@T!HVk9DmM>-Z-NsJtD5+m|t*QOFvF-egUH$Dj_NDBoQa_hD zI+6+Z2YrVX-`m`O-Fb9+$h2g8afa@02DGK#gMDwXWKM3K&EZ3c&1{WbJ-e=~rtn-9 z-lEH2X-2jSA+ZxTrWx`7CbvfA<_-d*4MK9|d23Pys4bLLN6@GD(mWV18m7u2DX%c4 zB4jljq_SS1qT6N2?MBnnMAJ+6PO%{1$-|prmFqqo;A>pq8^mXJL2SAz2E}Fo7g^S> zln7iZ%{ z_ZyUvJSO(4InJsvZc=8e;q0qn?d1eQTVvq25Kcf!^<4IbP7I`R?j&E$3+s+&iT_JfLkopq(f$RYSJt zK1efNj-~5vt>$T+1|Blw-_p$iQfO*W=4qY0zTLQuD^~H<-FkfzSAK}`mb3xKa@(|& zuwiUa+xnrinSc8(-5yABuX@~EV>Mo|dk_9P)t%f`v6ZrrukS*B=-eLNz(?Ae096xoT|NN1p zH}-loXqU@_Uqz@sOk%ldc&_Agn!gTPpc#oFL6iTKsG^u3(c`y9(!-z&(h~8^ztstvUw^OA=IL8RIjsOI&k8)?A zIN3Yr9B}5Ew46b1|0TE$i9ztK7LpY%BSesa_o+i8kFoVD>eR0M; zVpj9(n(hM;vJ)J04TYhVi7*p^K&KExAsy2TNhkwt%0B&3eW(Ef!?TBnOv zS6ZQK8P=E8;HCvR;#R>(Dmu51F21ZcWe@~|ObS9!=g4rT5(d&Y2M^Ek$Q~iWWrF20 zPILtb`=23^LH`}{V$B>F()IGMki1VJOZDde3Yi6kOez%ChbY&Vqcl-W0_JQ*V~v5m zLGu`mEF7tv#w2Pmi#`HxX9z_mYH&*yh`837;zBD5VqgIklIM9Yp~wwXTTyCvZSnOB zgis!4#v*lSJ=mdb2n>kRZ{Zp~(cRk+n1+|nUm!+;V17k*Pfj_+ub3XUO8!P|)GqQU zNA_<6?H>+Y1o;91gR+(n>oAMGMW=R^p^8h2%$D!GzCg=-S8EG{;$i}K9}IJuK9JVW z@W%ssACoyyuhj%VFboL%bRV*^{2+IhXkuh_mFM|Uj2o3G2!vHWPqY&@ozS*f7zlAI z(P4)O1lcxnKMV;Nnh1m*bLOm!m0B#EPk<;bi~mY7YB+2YQ=+(Ro=3YD!~m3NW6~{- zP#6da7#}<6HBO<|aD{H;gf$9G`dqt>B?k8MDrXQ3FKaN5HHrpXFiW6zT0abm#_L!f z_)`r_PVbtc=ap7K{^x>^~d}&uj2QYoQz&)Gr?g+vwa9UtEv7?azSu{GSI5KtTFy^v?0| z=?+-;P1}40W(C}O&R;uDuSxysAfOwP;gRw4o_!4B-s$$OdSA(uecswqARYS+A$q4n{5?86m^!;LtvwKWpR(cA zDDT9}-qpn3)5hN2B{>lqECW+^zk8$a&r9?}Kb;H@1C?1dX*BBcHEM}wtd%r;5iePV zp*^+znfPr~=eS`s3Zq|kjaKVSEV<1J%*iq*jnG(nk-7)OeE*{T z$l~bc<@9FI=uXEdQHLSE7{w>OCu(n>druTS-|vGlX{)(!l1O^JEP5aOgwO{GMk;_K zD2nDYy7a{LyJUE2n_tpTMO{9ckvA`Uk6inYlk(vsSm~H4>Bm^O#-|(J%((70wL6OD zRyQv^T|QIO+f#DxZ`EFJidpVefboFT&v3OnU3x*QxleU;$B*Wp-Q3?s+~559a^a5iDdvxoGcQ2+40~evIJ7KF#f)u#=CR!S18TuAc`Sy#%FyiVb z)G|9dt|d^lxq}yf3tQdkS^WXLf@w8x8YK1}GgpC37YUz+y56f~5Nmg^YkhI$&4k10 zuTfFeYKioG$@F?(lPtXBEe+ExeezjCdN62lPh>0y zFYE{Y6QyI7Xk?E(BZ=O9z3}E``a;b8ZIt!P7rl?-bL1|c#IE;S69JgdPf#2cn|Vc? z-zc1wh#t$alb(y@hjTW+z9nGpJp%EDE>d$*qnTJ4=-H;3*hl7Czr+uCyUM!10bNVW z>`u?TdD-~+QeEp|JJ4e2t7sb8{hqMUZK@|I2CDD=wmxYA_X`l%-)0hcN5@57E~h`9 zrSc6CBarooSLJdX12m=S|Dxv{@#vFY|3CHE`{KxuwIEzvkZYYj-kaVQN^Yk(=+7Um`f8kW?GB&d2cqYnXy3W1TQ;7r1{Z|QHotfCLvm5a;trB6B~y_Rw< z%a1A0b9Vu!R|uEJ=nid!zI71xOJu$=)e} zWtiD!aO`Rvo!kwo&2>z3RS2DP(;CB82=J+E+oSKM+A`7|64@#kZ7Y! zx8C0ZSn^=!;pw^v%{B^I&ylAugK7TIa%1!*@Kd28$L}UXn4iLT1m+l@`-DnJGC(24 z!_9iqEZk_m0{Q%j55-QBVHmtxBpy}TGx|jF3N}TO5x$RJfP?e57^nZM7z=gw-8!KCyQj6ZalZ4s_!+a(G$ZQP$fnXUZf&?X zZvR-|srS;T_L1v+czc`N7tFjuYBX__vbRiU{#dtb9?OXWj4s^Ep9N3p3tT>>5B8rs zE=S~+A(#!}F^Cu{In{^Ma}k7AnLFTa2V!`wS178W>)&mNh+Ojs3BiL&5or-udc4%` zwh|E0cwMe8dw#rcM^AqhZT=hwmU~1C>3i6mD@ChqJ+~JcexBNE;{(T!F zaxC&zlsx}qT2}mPpB5W(VOP)~@l(6g5Jz+taJ?2(z3A8?fJf!0_G20*F${Hu?SbGD z#qBQ`)te3b$O?KhPr@F;9(bU*)U~9Gd)MZZ;;2bjLKZ=H;*JBz>+3^z5?A?MxI|Lf zcWSAIlgfG#xHfrR!Jp&`yMl4C+f9cl^18CF0`CIuIKkKz^u$UAw`NnK$*GzA=HQPW z3#sv0p7X8gj+TE)o+q_-gh}VzDXA!c9x>=x;2trU)Xgx^5rQ5a*$^dRCH+xxN6Sj^ zw+au?ATvFiut6!6*Y~?u1vjOC=}^u)0qS^n{g%l;d zZ+}^VmiEVrC#8QwJe2{hK>L4KF=BWaJbVas655b>XXQ=qF)?|&jyt?+)nf?X`q>A> ztvc?FKGSM0W6Fw0I;zRmwjH9gcV_Dcy8hJq8^=yPfK&2VHNk>62bbR-)XEBA_~x;T zQzIQ{qiE7Mglue!d*-I}fyX*)EfGzq_J-{oBC$RecLDejYN^M2I5zLQanW)pO0Fo$ z0#m$xMx%;&h2}x!_!El#+|U$PKV;|<%j(G)j%sVVKeI1n*EgPA<}!K%_x)GQpaBGDPDKYP~o;LoG&A!-dfw)GB|Cf1wWJ zCKsLmg<2mH-@lN-|B#Jot%VI0#(|G)B~`Uornak~M(3viULR7V6u`a8QiK>t-!7gG z9mbIb!+>EuggT)uOxMY{5{7^?gd4`8<+mKG$faGSNCO>EuE%?dY>iFp&w-)R!LY(E z_#du{=A-#ljo|fAMhH^TM28&q$QZF6OzzhL3LVym^Lbc|m9pXvC*e6~Qsv;=|P~DEV z;xzv-8Rw9`5U$!2weXn1%_r4Uo13VK+#)6G1~D%e9<@U>Ar@xI~y8psXJTy7B4#ZsQCd^kNmgn3krp>`K?`L+_&El}|p z>A6|LS$BA#g0Y(O8~wwk_o!NOk_)V6VTWim$@68xy1SV7t6503V_|{-;?Khj_yymr zMC;9**130ZnmVDHj64ZWNli5LCT1@jSO)w*$zGERIuDBqE0qWWFawJdq3}|Ai0dmL z7EWr0i74yML6bCs5;P%KG>q}5#FaubKOjbYrbpEX6ONb5(!QB_GZ&WjLN8uq{rY2^6{(dbVLoC#bj zG_s>V%VW?q)Cba$q1eJeTpi>95ApR5P9}A{CBNCs9AJ!sw%REt%Jk=G4vz9s|XrWBERaNS#e%2Ip zh|Pb+p!kdL0puU#t?I7m~*(2o16MYH*LXK$mm=n z)-~_@G=8PuZl;hvZk<5Y31r4x)et77!LHFRbCc0^=0QM-@rVRvlxXQrSzpu7@F%8R zkgbT9lBkxVsRr}dy^<>C{4TVkm%^~9FqH^61*{3 z@iIDS@IC^;bVNgvJI-O^J`GVEyw*g~5iUxYbh%pSLMh!A@_VY33Ef2iF>5)jiAWm6duz%Pktzdwlm~aHh=M!n&}N?s*YIFN3-8iJG@s#75y`Xe zOlbZTa@Qj#%KEU$o%Udw7?VFqPp!4omZ0Tb8^U>2G_&f&7$UMllbXlm4?4EL*dE-@D1{_n7) zfolxM%;B%vw+n1y- zUQu&yE%Mx*@=WtndYd#O3V%}a49!EpnHHG~+Ek)56?LgU;sSdsq~mB)H`VbNmMVl) zEZjPxN-ve8w``8gIEYW5@2-*Z#Nt)ca3$4nfNx}5fhezbW=lanv6a{4rAw<1nbLrp zUs$2p7;>oq;oTcB2)HZu(m$h-gfvmLy*Ur#tVGLCAhn5o_B|Pg`0Pg&_&`+JXq$(K zq=FY?)olh}y8hiP^^4!$L(FL$*_?xq#KTJiDJfzYH}Sq-m`E!rVm{soMfnV<;x2itj$+%g>aY0rYri8Rm#JaOz+;nAs6w{JYMr zFaeO&Fo86d-lYSi7@^lar6HVK=piCx-#qq!UxA>vq11?5ac?99m1X?Swc$5T{bAC+ z6($G_B=~nA{_vEUTWAxVFTnSP@(mGn;QHPaQctPtax*PGFOY-@`sI?m8$h&YKnXJ& znFmuyf<*oT-$zPobeq=v!>taqG)$2A-GEmd#TTS_j_Av$L5C4Wogt@A;NLYUzRbox z<)cLW{=Y;xx&8k9=bv}a75@^!4o$Qe&?);o@+JBg_%ED&B!=an3uzv6N3qW|$ic9eP_DG&WS3I0$&Grj}Rv;QH5%>UOQ%-@a)z2;ZmLQ`c7 zKPS1L1oM8VLj3I*ws1|C0cUQbAS1!;eHm>uj5Fpf^pvL8G5sH6YktaqBry{d0%a?m z)_yR!KxBsue*#9V*|0Mz}dP(JR&)xt93yQq*rJ!R+*N&&o6n9P|y=Y|($OpG7D!OKzh`nBmoL zPKW2XqAW>x@U$swkB98DAZ86BqlCh@CTNUcnI-&v)8wwR5T})LV>XUFnk*!XERJlVYAwfBNqtG^bS>9p#-zh-=4fu9a3-()-27}A0=*+vLPU@on|+WIO{+{ z+hxFEQ`d9+Ra`O%0Hy2xi@-~Yv(!TX8-c%N@zNv|4ZxOV#y$OQE&SW)Eq<$snBU?i zQ>n*!d(XvfASl53YxXe^rt}X?>EAHAfYN8BNrFHBr=4|di40LlG&Y{`IikEVuY(C6=me)0ln^2g$>|ZU3_t-bs;vxXfQu+6IrRjNNJb$Dh z_%2QkySh_)a!VA*0$jFEkuaGu2l zU=ub4a8EmAWV&W}NT>DziNTk)Gx6QJTt-8i(t%|i`|wQ1U(7;ZYCxgEJ7jcTu($d{ za!>2xN^(y>!55V+dTT%nb`!`_e4^Pf7tnY4+9SPXJX5m6Ib+OtbF!%Cs2n$@qMr^4 zxJ_6JZqh6TP#;bk$!>bzn^rr!usAO$x9au7F5}f!6-g+?Ji4`$aye-k!{r6g4r;Bv zJrFJam?7j_fx`!oEX^^AKh^mSpz{Y5dqXWqauldG90i%!x=$7kQ)vn}PuRk9a%ES< z(#yEhAXXcSm_zNT@9fP&;}oW|S;}4!z;&@S5%f(jMGt3uv3&jhv?mDAJNhk(M9%01 z<4v9Me&9_ESM1X*OT+Z@^~lNbj*6HvM1?jX1-C4RC>Ih&8Kn2wtWUnT|;ICzrtF=GX{hXFPkL4L|iAcYLsENHW zAmA&oSzxpPb)1(zCR~#(KcfW_X17e9Hg$qB%eG#aIR%`g#W!Oij)vfmii)~)(w)92 znj%g}?G5D6P?1(oQd9j2Nd*kabC&9aDqp}%TWRjz3Hyb|-wEtU6yDy9mg=CM?d#eP z1U73DVV?FZPE{TncuT`>9wIwM9!qd%1;8Qk>crCml#mM@)jV|?#3h6%eTZqG6Y5Cg zZPc3w^+kMMR$6{m(h@ekGJskd;R_FqjzyM}5;a>K8G@djN2($KF8RZ$x-)piGzl&K zi2`^y&d+*~<-r+F3?mR2TOIayBCX1DV3K}P(59x+RRoC7yB}iiwAN6EK^`4CeOEau zVlE2)_U_##c2tBgCCn2asKW;d{l|(U@&_`m-Ew}5SSMB_;2i%UNjd==Ev}%XR4+@G zS5^fRo#&A6i0dDQM_+>yMvcsh>kqsM13cW%!FZOSa4X_B2H(AQCe6VFae!TmjT53m zN9WPu`g45+@2zsLrQ}77-hG|ZVhdgsW{V!Kvrzz;6*{2T zLo%+A3G=Xs@X*lIXaOlLX$1dGNmLXcSsftif`fA;TJ#MTc<`X6dQ$@IQ$LY%s*m@E z1J4o-o;|&!%lsAvKu19q#QPXg9qi{uRN{ZKz)VgAI&&oYA7`9Uq4Tloobwy7QxGPk z@Tbh#TAT(v$*HMqX{ZFN-G1Y?A3B70h$hHo!G#B@k@`(8JbG$fD}wd2!<K zl+&OOYG6yv8Mn9w8_2xtTVytFsml{X&r@7B4CVI((pX#v7vds#i0u*ZU!>@xO-v33wW4G}zi4>OqUj!(R zpm;EF#vR$Sy}-oeWywo}&Bx*wGZ#dNONmRR#f1T`L5~LxN(oY-&G{O_00~2#1W~_d z$?1f}4wX(#C+T=|tivV;k}*r7`<#HRh;|&~ugu0V2f03%VNAk-G$fCu8e5pp)yPDWuF)`dgJ0E z8z?ibH)p8eNw1vVx>Bd+=Rw#~^7&qgm! zt}dGgD)E`$$b25^D|;JSwQ201Zwm9XA-vWn_bf~k|5YJrWLobd;SfLtjjWpNNivN` zUr+5L1!9Oj1&c|WchqHzi5D86Mzs^+(=WsUno`67pI5)GM`fm0SI*KmL<4b12i-Yy z>U#-Ir!nv}ibf*;1Zu-3$(OvZSlOmjn zT5BGz-&qfEU0&A9`eHv;(X}T`-=g~AYho9sk79Rq%?Op{$jwhIr0)AGHIH? zkS{W8_9QSty;lbt1_BTb&I&P#rf+x8K`2#(%&}4qu$(T}uB3vctrIzF&`$ zYyUSXR{Fa;-^A?KkN@g8Stuy3-wO@`asvB5`m;Hky0}={ng6xVs#$Hz={q-i&rYd9 z+nyP0i=*rT%^7*!wj8Am@F4*p4c|a)AGi|W^W}HQHX_DT%+jtdG47scdV8FQM&+5Z z5Zv+*l8pr5m;&ZOL}}<~Iq&CJOKn~a*_l(qBA96m1bF>$zID7`9SCq3Fj%F7dLmOE z9eKAks}(1P)3o-5x5vRj1X!2z)c-2yLIXTFSC14QMrdd$h+i3^LJG59ZjL?It&m>n zMDZ{*vpd;lOVO@cYkm27!0^E1sGV3$Z;d#>i9&^oeM}s@u4LN9^{(Gd()I{&`+-q^ zFm-V?xEtm4Q%SuR^Q7nmJ}HF)I}mFqT|O>Cz~MEpaCHp}yOXZoG5FYUF6(6qfsZO4 z(=#ua^2H$wl4-FsIxYhp{#azn%so2lg_45ka*;sz1QI(_kuQrIBr^VD6ZI1e9%K}c zC!!1#ME2EUG$nre5k<5dq_q;;Z_$WN>7%Wgg1q2KhWVnVJZCZKhnBbjtMM*9ijNdG zfBNOMp_PF+0)DGC#Wlf&g%w;a354XWa?ZH7TOq`T775Ai7+7A+Ame)bvfc!YHZUu> z+1}WEdDM+30CBi-wI!r{&3OA~=CQhwET2F;#jVv5rH3{6J|>eJJuqUO!&%A5(!c=t zu#5EP+yD-&6qX7#73=aJqQQyJmHm{XtC4gKtnW8s(if_MyPP@GB?R^O-^u#f0RxBR z2@vBhj&QI{ftuc4aN#uxXUli!tkDUV=O$2GTzhweQkl8t-E9a7xsMOlHk?s_yAer`MLJxH}0TqOuN|Q7XyI@j-Rjr*pm)ApOKsH zB5<37T%FD63b?v=03x|b`&MnfkE*2dLLcR()mkpK;Z|n{ssr5D^yPI(NnY*ck(=7E zn+_5R3>C9{TMxipzXHvYy=L%4l7m~~SVO<8ufw2+*6>8ey?-I$>3Qtae=Xc(J}c_`82yfUp%9qztd zm}KJeKLJLDn#R-RnQ6Z&%!L)<=eiv(~P@P`G5A? zvqGuu=UpzD5d8?{yZLv(K(e}kYM%}pumx|OwSUd=Cy{Ja3T7(m6|(7dVp=B5fpF5<62k(g<*PP zKDK4EfZ-JSL=jA}YxLB97RJ;!{qCK}B@*2Svm1cfeagXZ z8MMG@NbjRy5k0wa8*KmVCjp<`)`#Zmh=2fHOoD0sezIYE2l-FOe)Hrx8v~oo{)Phq zLH)O5X29OcDuzZje|4PQO6j-z&Wu0u<68uEYL>K3Vlz4l?MO(|BqE*{2pWDJ=0^OL zQ2WB~89tj>=BqlX&Ij8#&nvnqa?k)692XHua1x%6*=M7Vhc^PP*01ypl%lk>Z9n>O z9q0$ZS&F<5`G{V+Cqs;BqMwl^0?>BSQI0lSn6wtnsN2+1+OsPuKY4pqxo*1XVno3X zR!|xZL}SB^*Kwvg9kS93Qr?;pYeaDn%!Qq&M}o99IOBPQMZ$>S#;KD^V(;;G?;=n<*ZTG9OvvonB$H;7aC;mRXyzJx3_fIrBlBg^9Hc z2OMXjV4)(B?r)5Y+39Pj&CFzQ@|cyp`;0)5N*Aj{v0z0A70NptZsZ*rcV4XbW6Ov= zcyiKOkeIP&RFh{}C?XqI1l~$#8c3y9(w|1eL}iqLu2uEV(9X5)xj|k{mD{TaES1*l z`Umrz1!~)kl)x+JvKCaenpkzC!Qa1i#Xal!^SXob-;0eDgJvdbAhJKNh> z97MXfy)PYQ(*IDz;(S_6uyp65#p+-}TgV+YK^lzPjyH5Q9zYP916ehVhW&s*{@lva z$z4EcsVaO?938eWmQ7_*M{kjBCpCv?G1d$B-RRw!<)gW+SAVKESHMmdKKym|juKTW zylMiE*@G``%knNoutjfI#lYdPKjmH^MR~NUZr>gfjA^?5$I-X&8Q0g;9?FYSPq`ZL zif_07)oV9Nn6zyK*iyBV76b(2->0ODg{iG6(_crHzdD?0$pPD{V)y)1NA5UWdf9M| z=n%VHyILthKy4L?Z4%YCp;jb5Bkw`Da_sXn+^QRdyKEV(s}}lnx$u@@N6>x z9zm_>bUZBgodSB4^qJqgS6}I7`684M^mmw}?Aw#pk&*`j@lFZi)96*RSK#~b3hpl0 z3nKZF#8orRzV&LYZW~-J43-CsWZP_QU&|33iVjV38$&2buPFH8WIKu}A^Kf>v03zN_)PHcGQdNRh>(i_#a!&OHtaW-|&S zOKU8jt+`|0tG+xwPG(wKR%Eb4-ssh?Ua2m0Qti#P6pPV4qd)poE=Wnmfeo`mCb&#S zJ8elOCYPkhH*TM~;9gK>XoZyI$S=}zUEryr$$b`Cq^^@QFWj)ru)xL1FcXmbxbtkZ zE3%}t&V_l(3XFeSeaq;kN+~U10kSUr5s^W~Jxb^T9^yY=5N$ zliuf-qveCqTEaISh+fz?N7VP@-%Rg5FEqa{p1<1XcsGNLCHC$3zFfBI_v-i|OATGr z=DywTuV2^;eB6gpiM1g>g-UILc!dS>oq}8{$kXaKQQ$UE^MxpkXr?bnP=wt*EK=4-g}cynGKudH$Y4L>W;u$AMaL3lc8Zl>F>a*SeloWGE_-d{xI=ejkxx`@7$Vqoz-^Pz%%^fHk_2Vp=0l- zlQD8Oxn4ML!G9RZRNzn7YxO-TN+TSf4I2?me3(k3t&wJpcS_;dU%TwomHWgHNQGXu@urJ$+SmDBS*$)hCY2Gg5q&FDMvyDC^knni~ zYbR2#MoFmOX|d^Fn76uw9Q_$@_uJLEpcK5?Mk~eoDXRu;0V*m|Zfq-zTPL}N@fM+^ zg7bWWqOw`la#?FhEBU8t_{dsru4in;) z4Z2qZ-x*6AvNoiZW> zYUVWauqPCpGNWx3y9Pf#d%$`}<(@MbCr8!l%3j+?Z#U}7&QZC7a=uSO=&t9yDy<{3 zwjhJ8{Qgv~LXoFzt12F(*mW=AF*vnOp1`3899t$aU11MzEz)Vs6d$s_s$Uf)mUiO; zArfM7w3cS|(zaFP&mW{#3L~cljn65hDAqhbcWkP%gGlMZnnOsI;Ge&BNh%wc_@L+k zx`!quIpUs8(|ADHaU$V4LxHwx()>u}Y|9cbv7VYvQRax2Lp#D` ze%T@-q(udWPmAT3Mv#xa^M=||0~h` z)a3Al*?!1^sr8` z+;6qIzy7O%YK|Z8YANso4+@yQq5*#!yE?nr+iKX_Fj=~o+Wz&iR~=OkH^7Vz^3z9b zJYl?qHw=AI37HBdAFf8~bSMX)e*Rt>U+vblt&YnwYHi99$K?f5wQfes7i5`ondEN;U^g-LPRnM>`f#~G06Rnv%5CWCl17>#pW8?KGa=Q2Cq7oK}b zI;oWL#mVjsZHll7VYllYGr9r^I;{Q1m}r|iQH{AnAJgjDBl?eV)+A?<-__()Wy?F& z1m9NQ!2X$BH+Ra)?EwWF0fl4#L--%b3QqP8&VP++c3iz(ATzqy*Pem9{c)B&2n+Nu zNe~+AWocakcRvanvJKJbigzzLUJm2YuQe{$%Y68PM?rQ5Rdcjd^OWQ;DwTZsAz59$ z9PDIcyfwT6mXJK{ffS>p+%9fAj-%C!P>hJ=cZ5gj)3>LaUFK6QWRiAVo=``FdU)g6 zg42C2JCT^QTa2hl#*WyORk~d=K4Y+CKQMv2N}XO+xg0Z06~A0KFU+y7U!TgPsj=Jc z>uTo8D>gIqI-(Fa0bZ`WgSTrA!>hN4!#)tZA}+`u41V!%vv{#LlukhZx=$hf^fYHMWb1gy&Z$?m2#w(Rz~vAcIlh2q6^n!^*>A=sM=gw%AS z#mSoQK`627&U43Dm^ZIwu8gPYsy#cR~zg}+w6Sfh<(VaQ3 z1GP(cMCgxYrdAH#f2N*NUj9^qT}MTonQQYEvi#V4kDdLEvatY(N?Th>t-<@9>UQnB zWO|ehUo=L9DeD|MCTN?zzSQ?*GJ`_;d8 z6nArdm7lCXGNGX#mciH%W^F0BWJ}X(iJ4=F|MlrR$(@s=LV6(mG~^ilpI#J)1^hRx-fMw7a4jhA&ki%k z;FNyTkFZKq8HE&%!!I=Y}pcPU%cCU2&d=VZmi#}yBC}=4MS1Z zn@11l{04Bl=zNGoUj1%1x^Vbu)Ja)?51HIC@|7tCAlyiWkuQ&GzoGcdOD+VFHVIryg%>Yblx_r zn!m!-Aj;N+MC)erB=&uq`n`ss@2>8>L-39Fq$0-cqvw;HI6NNS9wIcTf}YM#cimf; z=DR&XUR`>&#O!xF&jXwG+PXYrbAuWj%%whlw#yo*r|Z!tl;hRD>!~_n1bXJdF5I;~ zcxP*ad>kk%0}-|f5wS5?5M@;nYoKbaEmBaVvdB&hhKLA3Nx~8WvQrXvk%r=0KoYBk6hvi< zA}E^(0ulv-1Ol?C5t<4e5Dl3_{+OJ3XTIN?_s)4U_q+F;c^W$i0H0l1Hvj}m2dr+o zbi32ntqNcH(@SOJRH|iTyk)MtlIAX54N5F-pz6$sqNzIEVZ)1g7V-)B6a)<9h>gff z9XcDBlse~Ew}%&B_uzkc080wV{a_{ zHP@fzFo=USHGZo>rSi{R3^394Z4|&2e;VO7M5bIeQ%z#+l%F6J7m=iVVP*ZBb9VVv z*N@+FMiwSUM7vZtiu`#tKWO7pXby7T2}DkYn{z9-Z?x2v`W>S3p-Eq$udvJ81Cwo? zJC0Y}8vMXg)Ssb2mVZqzoL(hV+P(qy-QK^_gvzt)ysj9pE!>iuUvg^7stg@?RXYK3 ztg2~!<83+%v9HBwJC^CBm}UKJ<^}iWSmIF42L+jI4csAL)lF9qaJGqXO`VngIjJUx zf49pae?kfK?rqg|6n^vOKt-||_SB)!HdOD=&#ZV<)f;IX-jAf?oWI!?wANTos zE1jot2iKZqMpO^el+1J0X?soSvplqUy87jE+GDLe!9lk|X4qN%7NbP(qb2UEb3XLY z3mQn{gG%>BHJQWA{Pk7aup1c;Aquv2u!iiXnSz(y!nwx%sd^n@^8@cAPdSF&o}0$b zMBP&;y!+pyII2x;VMD2AvMHOAaTv*sLct9UV|m(DQ#rNgThX28GYH4Z_$tiSU%~@6 z$CYR28Wlyl)#1>%xtttmuZmoYZI4*%#y#sEn}3cskLRrsZNF1Nc{}vaUhGp1L2}KNizQn+hen$W z(}%BLq~6;b(aY=&d#iI)e^YUWpny4MU3F|^%z(2w2HdCEd{01G(Il?jYa-L0c;X%2 zNiC{GHggZ3VfKWlBzq{?&OC{_Dbb#am2aE)gS6j^VDxgQ!8_YJ0~6Uikut+o0Z}oe zM(IXTZd_R94r3%CJ!Sd%L%${3|7B6=a}S_Z&k{#j1Z9T(^-Jw3;hrNqrH^w})8_iM z(mc7;DF^8>*nW|1MfuEKKv}cHX~PkUX;015p72(`1MtZ;1`6=tCRa*%l)f1mgCD>3 z{Io_7YzNbu!GASa;C!VW;eB;pFDS50pRE&{^j6+aDa9}(Rm}xiuXTa1w=Sh}x2fmFpRW=__U3o$cz|%_Xt}hneYU z?z>0aNRiE_vF3WO54yWZH$H~H968+*A?pA52^(z{Jut|+@A2=abes80VP-WdS?BP~>RCzTyiAtkB-t z!OqF(PI+DLyc0&|JZjV$HliD3g~Z0q1`quVBiw{vqsnUs{1LO_VcsH9SZCvCCnc>e zvydKF1Z?wnx|AKcO3wx()Fv?JwqQHH{3u`>0J!f1lfjrEg4a=EFecPvAv%Kshz54H zGvK9MFpsSKMGgK_q#l5X&oTaDXb%-8#w$CW1TSd^g=!MQVX)=vyT|Wz$YLfMDu3VC zrzrsCcv%2Ym5@h+Ennq6!NDutwKl0l<^?$9$bHbx^T5`{$^nQ7I|Yt?C3z4$yo literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/FeatureSelectorConfig.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/FeatureSelectorConfig.scala deleted file mode 100644 index 1c91ef16c..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/FeatureSelectorConfig.scala +++ /dev/null @@ -1,121 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates - -import com.twitter.ml.api.matcher.FeatureMatcher -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.TypedAggregateGroup -import scala.collection.JavaConverters._ - -object FeatureSelectorConfig { - val BasePairsToStore = Seq( - ("twitter_wide_user_aggregate.pair", "*"), - ("twitter_wide_user_author_aggregate.pair", "*"), - ("user_aggregate_v5.continuous.pair", "*"), - ("user_aggregate_v7.pair", "*"), - ("user_author_aggregate_v2.pair", "recap.earlybird.*"), - ("user_author_aggregate_v2.pair", "recap.searchfeature.*"), - ("user_author_aggregate_v2.pair", "recap.tweetfeature.embeds*"), - ("user_author_aggregate_v2.pair", "recap.tweetfeature.link_count*"), - ("user_author_aggregate_v2.pair", "engagement_features.in_network.*"), - ("user_author_aggregate_v2.pair", "recap.tweetfeature.is_reply.*"), - ("user_author_aggregate_v2.pair", "recap.tweetfeature.is_retweet.*"), - ("user_author_aggregate_v2.pair", "recap.tweetfeature.num_mentions.*"), - ("user_author_aggregate_v5.pair", "*"), - ("user_author_aggregate_tweetsource_v1.pair", "*"), - ("user_engager_aggregate.pair", "*"), - ("user_mention_aggregate.pair", "*"), - ("user_request_context_aggregate.dow.pair", "*"), - ("user_request_context_aggregate.hour.pair", "*"), - ("user_aggregate_v6.pair", "*"), - ("user_original_author_aggregate_v1.pair", "*"), - ("user_original_author_aggregate_v2.pair", "*"), - ("original_author_aggregate_v1.pair", "*"), - ("original_author_aggregate_v2.pair", "*"), - ("author_topic_aggregate.pair", "*"), - ("user_list_aggregate.pair", "*"), - ("user_topic_aggregate.pair", "*"), - ("user_topic_aggregate_v2.pair", "*"), - ("user_inferred_topic_aggregate.pair", "*"), - ("user_inferred_topic_aggregate_v2.pair", "*"), - ("user_media_annotation_aggregate.pair", "*"), - ("user_media_annotation_aggregate.pair", "*"), - ("user_author_good_click_aggregate.pair", "*"), - ("user_engager_good_click_aggregate.pair", "*") - ) - val PairsToStore = BasePairsToStore ++ Seq( - ("user_aggregate_v2.pair", "*"), - ("user_aggregate_v5.boolean.pair", "*"), - ("user_aggregate_tweetsource_v1.pair", "*"), - ) - - - val LabelsToStore = Seq( - "any_label", - "recap.engagement.is_favorited", - "recap.engagement.is_retweeted", - "recap.engagement.is_replied", - "recap.engagement.is_open_linked", - "recap.engagement.is_profile_clicked", - "recap.engagement.is_clicked", - "recap.engagement.is_photo_expanded", - "recap.engagement.is_video_playback_50", - "recap.engagement.is_video_quality_viewed", - "recap.engagement.is_replied_reply_impressed_by_author", - "recap.engagement.is_replied_reply_favorited_by_author", - "recap.engagement.is_replied_reply_replied_by_author", - "recap.engagement.is_report_tweet_clicked", - "recap.engagement.is_block_clicked", - "recap.engagement.is_mute_clicked", - "recap.engagement.is_dont_like", - "recap.engagement.is_good_clicked_convo_desc_favorited_or_replied", - "recap.engagement.is_good_clicked_convo_desc_v2", - "itl.engagement.is_favorited", - "itl.engagement.is_retweeted", - "itl.engagement.is_replied", - "itl.engagement.is_open_linked", - "itl.engagement.is_profile_clicked", - "itl.engagement.is_clicked", - "itl.engagement.is_photo_expanded", - "itl.engagement.is_video_playback_50" - ) - - val PairGlobsToStore = for { - (prefix, suffix) <- PairsToStore - label <- LabelsToStore - } yield FeatureMatcher.glob(prefix + "." + label + "." + suffix) - - val BaseAggregateV2FeatureSelector = FeatureMatcher - .none() - .or( - FeatureMatcher.glob("meta.user_id"), - FeatureMatcher.glob("meta.author_id"), - FeatureMatcher.glob("entities.original_author_id"), - FeatureMatcher.glob("entities.topic_id"), - FeatureMatcher - .glob("entities.inferred_topic_ids" + TypedAggregateGroup.SparseFeatureSuffix), - FeatureMatcher.glob("timelines.meta.list_id"), - FeatureMatcher.glob("list.id"), - FeatureMatcher - .glob("engagement_features.user_ids.public" + TypedAggregateGroup.SparseFeatureSuffix), - FeatureMatcher - .glob("entities.users.mentioned_screen_names" + TypedAggregateGroup.SparseFeatureSuffix), - FeatureMatcher.glob("user_aggregate_v2.pair.recap.engagement.is_dont_like.*"), - FeatureMatcher.glob("user_author_aggregate_v2.pair.any_label.recap.tweetfeature.has_*"), - FeatureMatcher.glob("request_context.country_code"), - FeatureMatcher.glob("request_context.timestamp_gmt_dow"), - FeatureMatcher.glob("request_context.timestamp_gmt_hour"), - FeatureMatcher.glob( - "semantic_core.media_understanding.high_recall.non_sensitive.entity_ids" + TypedAggregateGroup.SparseFeatureSuffix) - ) - - val AggregatesV2ProdFeatureSelector = BaseAggregateV2FeatureSelector - .orList(PairGlobsToStore.asJava) - - val ReducedPairGlobsToStore = (for { - (prefix, suffix) <- BasePairsToStore - label <- LabelsToStore - } yield FeatureMatcher.glob(prefix + "." + label + "." + suffix)) ++ Seq( - FeatureMatcher.glob("user_aggregate_v2.pair.any_label.*"), - FeatureMatcher.glob("user_aggregate_v2.pair.recap.engagement.is_favorited.*"), - FeatureMatcher.glob("user_aggregate_v2.pair.recap.engagement.is_photo_expanded.*"), - FeatureMatcher.glob("user_aggregate_v2.pair.recap.engagement.is_profile_clicked.*") - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/README.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/README.docx new file mode 100644 index 0000000000000000000000000000000000000000..a9b5bf9fdd2ed65b3cef699bc23adeace73411e3 GIT binary patch literal 36924 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

    `P^Ys#KE}jcq2EH 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 MLn1JH9PI}208IP#4FCWD literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/README.md b/src/scala/com/twitter/timelines/prediction/common/aggregates/README.md deleted file mode 100644 index 0bae21a14..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Timelines Aggregation Jobs - -This directory contains the specific definition of aggregate jobs that generate features used by the Heavy Ranker. -The primary files of interest are [`TimelinesAggregationConfigDetails.scala`](TimelinesAggregationConfigDetails.scala), which contains the defintion for the batch aggregate jobs and [`real_time/TimelinesOnlineAggregationConfigBase.scala`](real_time/TimelinesOnlineAggregationConfigBase.scala) which contains the definitions for the real time aggregate jobs. - -The aggregation framework that these jobs are based on is [here](../../../../../../../../timelines/data_processing/ml_util/aggregation_framework). \ No newline at end of file diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/RecapUserFeatureAggregation.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/RecapUserFeatureAggregation.docx new file mode 100644 index 0000000000000000000000000000000000000000..c0fd7392d514b9ecd9e64d5908064059a076a88a GIT binary patch literal 39003 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

    NDf_XAtNubt3 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 NkP|RGNSWWZ{s)F-{eJ)e literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/RecapUserFeatureAggregation.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/RecapUserFeatureAggregation.scala deleted file mode 100644 index 657d5a713..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/RecapUserFeatureAggregation.scala +++ /dev/null @@ -1,415 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates - -import com.twitter.ml.api.Feature -import com.twitter.timelines.prediction.features.common.TimelinesSharedFeatures -import com.twitter.timelines.prediction.features.engagement_features.EngagementDataRecordFeatures -import com.twitter.timelines.prediction.features.real_graph.RealGraphDataRecordFeatures -import com.twitter.timelines.prediction.features.recap.RecapFeatures -import com.twitter.timelines.prediction.features.time_features.TimeDataRecordFeatures - -object RecapUserFeatureAggregation { - val RecapFeaturesForAggregation: Set[Feature[_]] = - Set( - RecapFeatures.HAS_IMAGE, - RecapFeatures.HAS_VIDEO, - RecapFeatures.FROM_MUTUAL_FOLLOW, - RecapFeatures.HAS_CARD, - RecapFeatures.HAS_NEWS, - RecapFeatures.REPLY_COUNT, - RecapFeatures.FAV_COUNT, - RecapFeatures.RETWEET_COUNT, - RecapFeatures.BLENDER_SCORE, - RecapFeatures.CONVERSATIONAL_COUNT, - RecapFeatures.IS_BUSINESS_SCORE, - RecapFeatures.CONTAINS_MEDIA, - RecapFeatures.RETWEET_SEARCHER, - RecapFeatures.REPLY_SEARCHER, - RecapFeatures.MENTION_SEARCHER, - RecapFeatures.REPLY_OTHER, - RecapFeatures.RETWEET_OTHER, - RecapFeatures.MATCH_UI_LANG, - RecapFeatures.MATCH_SEARCHER_MAIN_LANG, - RecapFeatures.MATCH_SEARCHER_LANGS, - RecapFeatures.TWEET_COUNT_FROM_USER_IN_SNAPSHOT, - RecapFeatures.TEXT_SCORE, - RealGraphDataRecordFeatures.NUM_RETWEETS_EWMA, - RealGraphDataRecordFeatures.NUM_RETWEETS_NON_ZERO_DAYS, - RealGraphDataRecordFeatures.NUM_RETWEETS_ELAPSED_DAYS, - RealGraphDataRecordFeatures.NUM_RETWEETS_DAYS_SINCE_LAST, - RealGraphDataRecordFeatures.NUM_FAVORITES_EWMA, - RealGraphDataRecordFeatures.NUM_FAVORITES_NON_ZERO_DAYS, - RealGraphDataRecordFeatures.NUM_FAVORITES_ELAPSED_DAYS, - RealGraphDataRecordFeatures.NUM_FAVORITES_DAYS_SINCE_LAST, - RealGraphDataRecordFeatures.NUM_MENTIONS_EWMA, - RealGraphDataRecordFeatures.NUM_MENTIONS_NON_ZERO_DAYS, - RealGraphDataRecordFeatures.NUM_MENTIONS_ELAPSED_DAYS, - RealGraphDataRecordFeatures.NUM_MENTIONS_DAYS_SINCE_LAST, - RealGraphDataRecordFeatures.NUM_TWEET_CLICKS_EWMA, - RealGraphDataRecordFeatures.NUM_TWEET_CLICKS_NON_ZERO_DAYS, - RealGraphDataRecordFeatures.NUM_TWEET_CLICKS_ELAPSED_DAYS, - RealGraphDataRecordFeatures.NUM_TWEET_CLICKS_DAYS_SINCE_LAST, - RealGraphDataRecordFeatures.NUM_PROFILE_VIEWS_EWMA, - RealGraphDataRecordFeatures.NUM_PROFILE_VIEWS_NON_ZERO_DAYS, - RealGraphDataRecordFeatures.NUM_PROFILE_VIEWS_ELAPSED_DAYS, - RealGraphDataRecordFeatures.NUM_PROFILE_VIEWS_DAYS_SINCE_LAST, - RealGraphDataRecordFeatures.TOTAL_DWELL_TIME_EWMA, - RealGraphDataRecordFeatures.TOTAL_DWELL_TIME_NON_ZERO_DAYS, - RealGraphDataRecordFeatures.TOTAL_DWELL_TIME_ELAPSED_DAYS, - RealGraphDataRecordFeatures.TOTAL_DWELL_TIME_DAYS_SINCE_LAST, - RealGraphDataRecordFeatures.NUM_INSPECTED_TWEETS_EWMA, - RealGraphDataRecordFeatures.NUM_INSPECTED_TWEETS_NON_ZERO_DAYS, - RealGraphDataRecordFeatures.NUM_INSPECTED_TWEETS_ELAPSED_DAYS, - RealGraphDataRecordFeatures.NUM_INSPECTED_TWEETS_DAYS_SINCE_LAST - ) - - val RecapLabelsForAggregation: Set[Feature.Binary] = - Set( - RecapFeatures.IS_FAVORITED, - RecapFeatures.IS_RETWEETED, - RecapFeatures.IS_CLICKED, - RecapFeatures.IS_PROFILE_CLICKED, - RecapFeatures.IS_OPEN_LINKED - ) - - val DwellDuration: Set[Feature[_]] = - Set( - TimelinesSharedFeatures.DWELL_TIME_MS, - ) - - val UserFeaturesV2: Set[Feature[_]] = RecapFeaturesForAggregation ++ Set( - RecapFeatures.HAS_VINE, - RecapFeatures.HAS_PERISCOPE, - RecapFeatures.HAS_PRO_VIDEO, - RecapFeatures.HAS_VISIBLE_LINK, - RecapFeatures.BIDIRECTIONAL_FAV_COUNT, - RecapFeatures.UNIDIRECTIONAL_FAV_COUNT, - RecapFeatures.BIDIRECTIONAL_REPLY_COUNT, - RecapFeatures.UNIDIRECTIONAL_REPLY_COUNT, - RecapFeatures.BIDIRECTIONAL_RETWEET_COUNT, - RecapFeatures.UNIDIRECTIONAL_RETWEET_COUNT, - RecapFeatures.EMBEDS_URL_COUNT, - RecapFeatures.EMBEDS_IMPRESSION_COUNT, - RecapFeatures.VIDEO_VIEW_COUNT, - RecapFeatures.IS_RETWEET, - RecapFeatures.IS_REPLY, - RecapFeatures.IS_EXTENDED_REPLY, - RecapFeatures.HAS_LINK, - RecapFeatures.HAS_TREND, - RecapFeatures.LINK_LANGUAGE, - RecapFeatures.NUM_HASHTAGS, - RecapFeatures.NUM_MENTIONS, - RecapFeatures.IS_SENSITIVE, - RecapFeatures.HAS_MULTIPLE_MEDIA, - RecapFeatures.USER_REP, - RecapFeatures.FAV_COUNT_V2, - RecapFeatures.RETWEET_COUNT_V2, - RecapFeatures.REPLY_COUNT_V2, - RecapFeatures.LINK_COUNT, - EngagementDataRecordFeatures.InNetworkFavoritesCount, - EngagementDataRecordFeatures.InNetworkRetweetsCount, - EngagementDataRecordFeatures.InNetworkRepliesCount - ) - - val UserAuthorFeaturesV2: Set[Feature[_]] = Set( - RecapFeatures.HAS_IMAGE, - RecapFeatures.HAS_VINE, - RecapFeatures.HAS_PERISCOPE, - RecapFeatures.HAS_PRO_VIDEO, - RecapFeatures.HAS_VIDEO, - RecapFeatures.HAS_CARD, - RecapFeatures.HAS_NEWS, - RecapFeatures.HAS_VISIBLE_LINK, - RecapFeatures.REPLY_COUNT, - RecapFeatures.FAV_COUNT, - RecapFeatures.RETWEET_COUNT, - RecapFeatures.BLENDER_SCORE, - RecapFeatures.CONVERSATIONAL_COUNT, - RecapFeatures.IS_BUSINESS_SCORE, - RecapFeatures.CONTAINS_MEDIA, - RecapFeatures.RETWEET_SEARCHER, - RecapFeatures.REPLY_SEARCHER, - RecapFeatures.MENTION_SEARCHER, - RecapFeatures.REPLY_OTHER, - RecapFeatures.RETWEET_OTHER, - RecapFeatures.MATCH_UI_LANG, - RecapFeatures.MATCH_SEARCHER_MAIN_LANG, - RecapFeatures.MATCH_SEARCHER_LANGS, - RecapFeatures.TWEET_COUNT_FROM_USER_IN_SNAPSHOT, - RecapFeatures.TEXT_SCORE, - RecapFeatures.BIDIRECTIONAL_FAV_COUNT, - RecapFeatures.UNIDIRECTIONAL_FAV_COUNT, - RecapFeatures.BIDIRECTIONAL_REPLY_COUNT, - RecapFeatures.UNIDIRECTIONAL_REPLY_COUNT, - RecapFeatures.BIDIRECTIONAL_RETWEET_COUNT, - RecapFeatures.UNIDIRECTIONAL_RETWEET_COUNT, - RecapFeatures.EMBEDS_URL_COUNT, - RecapFeatures.EMBEDS_IMPRESSION_COUNT, - RecapFeatures.VIDEO_VIEW_COUNT, - RecapFeatures.IS_RETWEET, - RecapFeatures.IS_REPLY, - RecapFeatures.HAS_LINK, - RecapFeatures.HAS_TREND, - RecapFeatures.LINK_LANGUAGE, - RecapFeatures.NUM_HASHTAGS, - RecapFeatures.NUM_MENTIONS, - RecapFeatures.IS_SENSITIVE, - RecapFeatures.HAS_MULTIPLE_MEDIA, - RecapFeatures.FAV_COUNT_V2, - RecapFeatures.RETWEET_COUNT_V2, - RecapFeatures.REPLY_COUNT_V2, - RecapFeatures.LINK_COUNT, - EngagementDataRecordFeatures.InNetworkFavoritesCount, - EngagementDataRecordFeatures.InNetworkRetweetsCount, - EngagementDataRecordFeatures.InNetworkRepliesCount - ) - - val UserAuthorFeaturesV2Count: Set[Feature[_]] = Set( - RecapFeatures.HAS_IMAGE, - RecapFeatures.HAS_VINE, - RecapFeatures.HAS_PERISCOPE, - RecapFeatures.HAS_PRO_VIDEO, - RecapFeatures.HAS_VIDEO, - RecapFeatures.HAS_CARD, - RecapFeatures.HAS_NEWS, - RecapFeatures.HAS_VISIBLE_LINK, - RecapFeatures.FAV_COUNT, - RecapFeatures.CONTAINS_MEDIA, - RecapFeatures.RETWEET_SEARCHER, - RecapFeatures.REPLY_SEARCHER, - RecapFeatures.MENTION_SEARCHER, - RecapFeatures.REPLY_OTHER, - RecapFeatures.RETWEET_OTHER, - RecapFeatures.MATCH_UI_LANG, - RecapFeatures.MATCH_SEARCHER_MAIN_LANG, - RecapFeatures.MATCH_SEARCHER_LANGS, - RecapFeatures.IS_RETWEET, - RecapFeatures.IS_REPLY, - RecapFeatures.HAS_LINK, - RecapFeatures.HAS_TREND, - RecapFeatures.IS_SENSITIVE, - RecapFeatures.HAS_MULTIPLE_MEDIA, - EngagementDataRecordFeatures.InNetworkFavoritesCount - ) - - val UserTopicFeaturesV2Count: Set[Feature[_]] = Set( - RecapFeatures.HAS_IMAGE, - RecapFeatures.HAS_VIDEO, - RecapFeatures.HAS_CARD, - RecapFeatures.HAS_NEWS, - RecapFeatures.FAV_COUNT, - RecapFeatures.CONTAINS_MEDIA, - RecapFeatures.RETWEET_SEARCHER, - RecapFeatures.REPLY_SEARCHER, - RecapFeatures.MENTION_SEARCHER, - RecapFeatures.REPLY_OTHER, - RecapFeatures.RETWEET_OTHER, - RecapFeatures.MATCH_UI_LANG, - RecapFeatures.MATCH_SEARCHER_MAIN_LANG, - RecapFeatures.MATCH_SEARCHER_LANGS, - RecapFeatures.IS_RETWEET, - RecapFeatures.IS_REPLY, - RecapFeatures.HAS_LINK, - RecapFeatures.HAS_TREND, - RecapFeatures.IS_SENSITIVE, - EngagementDataRecordFeatures.InNetworkFavoritesCount, - EngagementDataRecordFeatures.InNetworkRetweetsCount, - TimelinesSharedFeatures.NUM_CAPS, - TimelinesSharedFeatures.ASPECT_RATIO_DEN, - TimelinesSharedFeatures.NUM_NEWLINES, - TimelinesSharedFeatures.IS_360, - TimelinesSharedFeatures.IS_MANAGED, - TimelinesSharedFeatures.IS_MONETIZABLE, - TimelinesSharedFeatures.HAS_SELECTED_PREVIEW_IMAGE, - TimelinesSharedFeatures.HAS_TITLE, - TimelinesSharedFeatures.HAS_DESCRIPTION, - TimelinesSharedFeatures.HAS_VISIT_SITE_CALL_TO_ACTION, - TimelinesSharedFeatures.HAS_WATCH_NOW_CALL_TO_ACTION - ) - - val UserFeaturesV5Continuous: Set[Feature[_]] = Set( - TimelinesSharedFeatures.QUOTE_COUNT, - TimelinesSharedFeatures.VISIBLE_TOKEN_RATIO, - TimelinesSharedFeatures.WEIGHTED_FAV_COUNT, - TimelinesSharedFeatures.WEIGHTED_RETWEET_COUNT, - TimelinesSharedFeatures.WEIGHTED_REPLY_COUNT, - TimelinesSharedFeatures.WEIGHTED_QUOTE_COUNT, - TimelinesSharedFeatures.EMBEDS_IMPRESSION_COUNT_V2, - TimelinesSharedFeatures.EMBEDS_URL_COUNT_V2, - TimelinesSharedFeatures.DECAYED_FAVORITE_COUNT, - TimelinesSharedFeatures.DECAYED_RETWEET_COUNT, - TimelinesSharedFeatures.DECAYED_REPLY_COUNT, - TimelinesSharedFeatures.DECAYED_QUOTE_COUNT, - TimelinesSharedFeatures.FAKE_FAVORITE_COUNT, - TimelinesSharedFeatures.FAKE_RETWEET_COUNT, - TimelinesSharedFeatures.FAKE_REPLY_COUNT, - TimelinesSharedFeatures.FAKE_QUOTE_COUNT, - TimeDataRecordFeatures.LAST_FAVORITE_SINCE_CREATION_HRS, - TimeDataRecordFeatures.LAST_RETWEET_SINCE_CREATION_HRS, - TimeDataRecordFeatures.LAST_REPLY_SINCE_CREATION_HRS, - TimeDataRecordFeatures.LAST_QUOTE_SINCE_CREATION_HRS, - TimeDataRecordFeatures.TIME_SINCE_LAST_FAVORITE_HRS, - TimeDataRecordFeatures.TIME_SINCE_LAST_RETWEET_HRS, - TimeDataRecordFeatures.TIME_SINCE_LAST_REPLY_HRS, - TimeDataRecordFeatures.TIME_SINCE_LAST_QUOTE_HRS - ) - - val UserFeaturesV5Boolean: Set[Feature[_]] = Set( - TimelinesSharedFeatures.LABEL_ABUSIVE_FLAG, - TimelinesSharedFeatures.LABEL_ABUSIVE_HI_RCL_FLAG, - TimelinesSharedFeatures.LABEL_DUP_CONTENT_FLAG, - TimelinesSharedFeatures.LABEL_NSFW_HI_PRC_FLAG, - TimelinesSharedFeatures.LABEL_NSFW_HI_RCL_FLAG, - TimelinesSharedFeatures.LABEL_SPAM_FLAG, - TimelinesSharedFeatures.LABEL_SPAM_HI_RCL_FLAG, - TimelinesSharedFeatures.PERISCOPE_EXISTS, - TimelinesSharedFeatures.PERISCOPE_IS_LIVE, - TimelinesSharedFeatures.PERISCOPE_HAS_BEEN_FEATURED, - TimelinesSharedFeatures.PERISCOPE_IS_CURRENTLY_FEATURED, - TimelinesSharedFeatures.PERISCOPE_IS_FROM_QUALITY_SOURCE, - TimelinesSharedFeatures.HAS_QUOTE - ) - - val UserAuthorFeaturesV5: Set[Feature[_]] = Set( - TimelinesSharedFeatures.HAS_QUOTE, - TimelinesSharedFeatures.LABEL_ABUSIVE_FLAG, - TimelinesSharedFeatures.LABEL_ABUSIVE_HI_RCL_FLAG, - TimelinesSharedFeatures.LABEL_DUP_CONTENT_FLAG, - TimelinesSharedFeatures.LABEL_NSFW_HI_PRC_FLAG, - TimelinesSharedFeatures.LABEL_NSFW_HI_RCL_FLAG, - TimelinesSharedFeatures.LABEL_SPAM_FLAG, - TimelinesSharedFeatures.LABEL_SPAM_HI_RCL_FLAG - ) - - val UserTweetSourceFeaturesV1Continuous: Set[Feature[_]] = Set( - TimelinesSharedFeatures.NUM_CAPS, - TimelinesSharedFeatures.NUM_WHITESPACES, - TimelinesSharedFeatures.TWEET_LENGTH, - TimelinesSharedFeatures.ASPECT_RATIO_DEN, - TimelinesSharedFeatures.ASPECT_RATIO_NUM, - TimelinesSharedFeatures.BIT_RATE, - TimelinesSharedFeatures.HEIGHT_1, - TimelinesSharedFeatures.HEIGHT_2, - TimelinesSharedFeatures.HEIGHT_3, - TimelinesSharedFeatures.HEIGHT_4, - TimelinesSharedFeatures.VIDEO_DURATION, - TimelinesSharedFeatures.WIDTH_1, - TimelinesSharedFeatures.WIDTH_2, - TimelinesSharedFeatures.WIDTH_3, - TimelinesSharedFeatures.WIDTH_4, - TimelinesSharedFeatures.NUM_MEDIA_TAGS - ) - - val UserTweetSourceFeaturesV1Boolean: Set[Feature[_]] = Set( - TimelinesSharedFeatures.HAS_QUESTION, - TimelinesSharedFeatures.RESIZE_METHOD_1, - TimelinesSharedFeatures.RESIZE_METHOD_2, - TimelinesSharedFeatures.RESIZE_METHOD_3, - TimelinesSharedFeatures.RESIZE_METHOD_4 - ) - - val UserTweetSourceFeaturesV2Continuous: Set[Feature[_]] = Set( - TimelinesSharedFeatures.NUM_EMOJIS, - TimelinesSharedFeatures.NUM_EMOTICONS, - TimelinesSharedFeatures.NUM_NEWLINES, - TimelinesSharedFeatures.NUM_STICKERS, - TimelinesSharedFeatures.NUM_FACES, - TimelinesSharedFeatures.NUM_COLOR_PALLETTE_ITEMS, - TimelinesSharedFeatures.VIEW_COUNT, - TimelinesSharedFeatures.TWEET_LENGTH_TYPE - ) - - val UserTweetSourceFeaturesV2Boolean: Set[Feature[_]] = Set( - TimelinesSharedFeatures.IS_360, - TimelinesSharedFeatures.IS_MANAGED, - TimelinesSharedFeatures.IS_MONETIZABLE, - TimelinesSharedFeatures.IS_EMBEDDABLE, - TimelinesSharedFeatures.HAS_SELECTED_PREVIEW_IMAGE, - TimelinesSharedFeatures.HAS_TITLE, - TimelinesSharedFeatures.HAS_DESCRIPTION, - TimelinesSharedFeatures.HAS_VISIT_SITE_CALL_TO_ACTION, - TimelinesSharedFeatures.HAS_WATCH_NOW_CALL_TO_ACTION - ) - - val UserAuthorTweetSourceFeaturesV1: Set[Feature[_]] = Set( - TimelinesSharedFeatures.HAS_QUESTION, - TimelinesSharedFeatures.TWEET_LENGTH, - TimelinesSharedFeatures.VIDEO_DURATION, - TimelinesSharedFeatures.NUM_MEDIA_TAGS - ) - - val UserAuthorTweetSourceFeaturesV2: Set[Feature[_]] = Set( - TimelinesSharedFeatures.NUM_CAPS, - TimelinesSharedFeatures.NUM_WHITESPACES, - TimelinesSharedFeatures.ASPECT_RATIO_DEN, - TimelinesSharedFeatures.ASPECT_RATIO_NUM, - TimelinesSharedFeatures.BIT_RATE, - TimelinesSharedFeatures.TWEET_LENGTH_TYPE, - TimelinesSharedFeatures.NUM_EMOJIS, - TimelinesSharedFeatures.NUM_EMOTICONS, - TimelinesSharedFeatures.NUM_NEWLINES, - TimelinesSharedFeatures.NUM_STICKERS, - TimelinesSharedFeatures.NUM_FACES, - TimelinesSharedFeatures.IS_360, - TimelinesSharedFeatures.IS_MANAGED, - TimelinesSharedFeatures.IS_MONETIZABLE, - TimelinesSharedFeatures.HAS_SELECTED_PREVIEW_IMAGE, - TimelinesSharedFeatures.HAS_TITLE, - TimelinesSharedFeatures.HAS_DESCRIPTION, - TimelinesSharedFeatures.HAS_VISIT_SITE_CALL_TO_ACTION, - TimelinesSharedFeatures.HAS_WATCH_NOW_CALL_TO_ACTION - ) - - val UserAuthorTweetSourceFeaturesV2Count: Set[Feature[_]] = Set( - TimelinesSharedFeatures.NUM_CAPS, - TimelinesSharedFeatures.ASPECT_RATIO_DEN, - TimelinesSharedFeatures.NUM_NEWLINES, - TimelinesSharedFeatures.IS_360, - TimelinesSharedFeatures.IS_MANAGED, - TimelinesSharedFeatures.IS_MONETIZABLE, - TimelinesSharedFeatures.HAS_SELECTED_PREVIEW_IMAGE, - TimelinesSharedFeatures.HAS_TITLE, - TimelinesSharedFeatures.HAS_DESCRIPTION, - TimelinesSharedFeatures.HAS_VISIT_SITE_CALL_TO_ACTION, - TimelinesSharedFeatures.HAS_WATCH_NOW_CALL_TO_ACTION - ) - - val LabelsV2: Set[Feature.Binary] = RecapLabelsForAggregation ++ Set( - RecapFeatures.IS_REPLIED, - RecapFeatures.IS_PHOTO_EXPANDED, - RecapFeatures.IS_VIDEO_PLAYBACK_50 - ) - - val TwitterWideFeatures: Set[Feature[_]] = Set( - RecapFeatures.IS_REPLY, - TimelinesSharedFeatures.HAS_QUOTE, - RecapFeatures.HAS_MENTION, - RecapFeatures.HAS_HASHTAG, - RecapFeatures.HAS_LINK, - RecapFeatures.HAS_CARD, - RecapFeatures.CONTAINS_MEDIA - ) - - val TwitterWideLabels: Set[Feature.Binary] = Set( - RecapFeatures.IS_FAVORITED, - RecapFeatures.IS_RETWEETED, - RecapFeatures.IS_REPLIED - ) - - val ReciprocalLabels: Set[Feature.Binary] = Set( - RecapFeatures.IS_REPLIED_REPLY_IMPRESSED_BY_AUTHOR, - RecapFeatures.IS_REPLIED_REPLY_REPLIED_BY_AUTHOR, - RecapFeatures.IS_REPLIED_REPLY_FAVORITED_BY_AUTHOR - ) - - val NegativeEngagementLabels: Set[Feature.Binary] = Set( - RecapFeatures.IS_REPORT_TWEET_CLICKED, - RecapFeatures.IS_BLOCK_CLICKED, - RecapFeatures.IS_MUTE_CLICKED, - RecapFeatures.IS_DONT_LIKE - ) - - val GoodClickLabels: Set[Feature.Binary] = Set( - RecapFeatures.IS_GOOD_CLICKED_CONVO_DESC_V1, - RecapFeatures.IS_GOOD_CLICKED_CONVO_DESC_V2, - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/RectweetUserFeatureAggregation.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/RectweetUserFeatureAggregation.docx new file mode 100644 index 0000000000000000000000000000000000000000..9e9299e6a3c0a31418ceead545cb0b359f5a2a0c GIT binary patch literal 37265 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

    E{naeO!vNeKwsGN>kk9v93HyqyGwM|k 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 PaaBn}To%`6^5WJ14Lzh^ literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfig.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfig.scala deleted file mode 100644 index e6581e32e..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfig.scala +++ /dev/null @@ -1,80 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates - -import com.twitter.dal.client.dataset.KeyValDALDataset -import com.twitter.ml.api.DataRecord -import com.twitter.ml.api.FeatureContext -import com.twitter.scalding_internal.multiformat.format.keyval -import com.twitter.summingbird.batch.BatchID -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.conversion.CombineCountsPolicy -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregateStore -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.AggregationKey -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.OfflineAggregateDataRecordStore -import scala.collection.JavaConverters._ - -object TimelinesAggregationConfig extends TimelinesAggregationConfigTrait { - override def outputHdfsPath: String = "/user/timelines/processed/aggregates_v2" - - def storeToDatasetMap: Map[String, KeyValDALDataset[ - keyval.KeyVal[AggregationKey, (BatchID, DataRecord)] - ]] = Map( - AuthorTopicAggregateStore -> AuthorTopicAggregatesScalaDataset, - UserTopicAggregateStore -> UserTopicAggregatesScalaDataset, - UserInferredTopicAggregateStore -> UserInferredTopicAggregatesScalaDataset, - UserAggregateStore -> UserAggregatesScalaDataset, - UserAuthorAggregateStore -> UserAuthorAggregatesScalaDataset, - UserOriginalAuthorAggregateStore -> UserOriginalAuthorAggregatesScalaDataset, - OriginalAuthorAggregateStore -> OriginalAuthorAggregatesScalaDataset, - UserEngagerAggregateStore -> UserEngagerAggregatesScalaDataset, - UserMentionAggregateStore -> UserMentionAggregatesScalaDataset, - TwitterWideUserAggregateStore -> TwitterWideUserAggregatesScalaDataset, - TwitterWideUserAuthorAggregateStore -> TwitterWideUserAuthorAggregatesScalaDataset, - UserRequestHourAggregateStore -> UserRequestHourAggregatesScalaDataset, - UserRequestDowAggregateStore -> UserRequestDowAggregatesScalaDataset, - UserListAggregateStore -> UserListAggregatesScalaDataset, - UserMediaUnderstandingAnnotationAggregateStore -> UserMediaUnderstandingAnnotationAggregatesScalaDataset, - ) - - override def mkPhysicalStore(store: AggregateStore): AggregateStore = store match { - case s: OfflineAggregateDataRecordStore => - s.toOfflineAggregateDataRecordStoreWithDAL(storeToDatasetMap(s.name)) - case _ => throw new IllegalArgumentException("Unsupported logical dataset type.") - } - - object CombineCountPolicies { - val EngagerCountsPolicy: CombineCountsPolicy = mkCountsPolicy("user_engager_aggregate") - val EngagerGoodClickCountsPolicy: CombineCountsPolicy = mkCountsPolicy( - "user_engager_good_click_aggregate") - val RectweetEngagerCountsPolicy: CombineCountsPolicy = - mkCountsPolicy("rectweet_user_engager_aggregate") - val MentionCountsPolicy: CombineCountsPolicy = mkCountsPolicy("user_mention_aggregate") - val RectweetSimclustersTweetCountsPolicy: CombineCountsPolicy = - mkCountsPolicy("rectweet_user_simcluster_tweet_aggregate") - val UserInferredTopicCountsPolicy: CombineCountsPolicy = - mkCountsPolicy("user_inferred_topic_aggregate") - val UserInferredTopicV2CountsPolicy: CombineCountsPolicy = - mkCountsPolicy("user_inferred_topic_aggregate_v2") - val UserMediaUnderstandingAnnotationCountsPolicy: CombineCountsPolicy = - mkCountsPolicy("user_media_annotation_aggregate") - - private[this] def mkCountsPolicy(prefix: String): CombineCountsPolicy = { - val features = TimelinesAggregationConfig.aggregatesToCompute - .filter(_.aggregatePrefix == prefix) - .flatMap(_.allOutputFeatures) - CombineCountsPolicy( - topK = 2, - aggregateContextToPrecompute = new FeatureContext(features.asJava), - hardLimit = Some(20) - ) - } - } -} - -object TimelinesAggregationCanaryConfig extends TimelinesAggregationConfigTrait { - override def outputHdfsPath: String = "/user/timelines/canaries/processed/aggregates_v2" - - override def mkPhysicalStore(store: AggregateStore): AggregateStore = store match { - case s: OfflineAggregateDataRecordStore => - s.toOfflineAggregateDataRecordStoreWithDAL(dalDataset = AggregatesCanaryScalaDataset) - case _ => throw new IllegalArgumentException("Unsupported logical dataset type.") - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigDetails.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigDetails.docx new file mode 100644 index 0000000000000000000000000000000000000000..1e37e61cf46649ddd92f4c1f47e478c3ee849238 GIT binary patch literal 40199 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 VA_Hd7&ne9SvIV9`Qr6G2{{gEKQ|kZ# literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigDetails.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigDetails.scala deleted file mode 100644 index aa439deda..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigDetails.scala +++ /dev/null @@ -1,579 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates - -import com.twitter.conversions.DurationOps._ -import com.twitter.ml.api.constant.SharedFeatures.AUTHOR_ID -import com.twitter.ml.api.constant.SharedFeatures.USER_ID -import com.twitter.timelines.data_processing.ml_util.aggregation_framework._ -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.metrics._ -import com.twitter.timelines.data_processing.ml_util.transforms.DownsampleTransform -import com.twitter.timelines.data_processing.ml_util.transforms.RichRemoveAuthorIdZero -import com.twitter.timelines.data_processing.ml_util.transforms.RichRemoveUserIdZero -import com.twitter.timelines.prediction.features.common.TimelinesSharedFeatures -import com.twitter.timelines.prediction.features.engagement_features.EngagementDataRecordFeatures -import com.twitter.timelines.prediction.features.engagement_features.EngagementDataRecordFeatures.RichUnifyPublicEngagersTransform -import com.twitter.timelines.prediction.features.list_features.ListFeatures -import com.twitter.timelines.prediction.features.recap.RecapFeatures -import com.twitter.timelines.prediction.features.request_context.RequestContextFeatures -import com.twitter.timelines.prediction.features.semantic_core_features.SemanticCoreFeatures -import com.twitter.timelines.prediction.transform.filter.FilterInNetworkTransform -import com.twitter.timelines.prediction.transform.filter.FilterImageTweetTransform -import com.twitter.timelines.prediction.transform.filter.FilterVideoTweetTransform -import com.twitter.timelines.prediction.transform.filter.FilterOutImageVideoTweetTransform -import com.twitter.util.Duration - -trait TimelinesAggregationConfigDetails extends Serializable { - - import TimelinesAggregationSources._ - - def outputHdfsPath: String - - /** - * Converts the given logical store to a physical store. The reason we do not specify the - * physical store directly with the [[AggregateGroup]] is because of a cyclic dependency when - * create physical stores that are DalDataset with PersonalDataType annotations derived from - * the [[AggregateGroup]]. - * - */ - def mkPhysicalStore(store: AggregateStore): AggregateStore - - def defaultMaxKvSourceFailures: Int = 100 - - val timelinesOfflineAggregateSink = new OfflineStoreCommonConfig { - override def apply(startDate: String) = OfflineAggregateStoreCommonConfig( - outputHdfsPathPrefix = outputHdfsPath, - dummyAppId = "timelines_aggregates_v2_ro", - dummyDatasetPrefix = "timelines_aggregates_v2_ro", - startDate = startDate - ) - } - - val UserAggregateStore = "user_aggregates" - val UserAuthorAggregateStore = "user_author_aggregates" - val UserOriginalAuthorAggregateStore = "user_original_author_aggregates" - val OriginalAuthorAggregateStore = "original_author_aggregates" - val UserEngagerAggregateStore = "user_engager_aggregates" - val UserMentionAggregateStore = "user_mention_aggregates" - val TwitterWideUserAggregateStore = "twitter_wide_user_aggregates" - val TwitterWideUserAuthorAggregateStore = "twitter_wide_user_author_aggregates" - val UserRequestHourAggregateStore = "user_request_hour_aggregates" - val UserRequestDowAggregateStore = "user_request_dow_aggregates" - val UserListAggregateStore = "user_list_aggregates" - val AuthorTopicAggregateStore = "author_topic_aggregates" - val UserTopicAggregateStore = "user_topic_aggregates" - val UserInferredTopicAggregateStore = "user_inferred_topic_aggregates" - val UserMediaUnderstandingAnnotationAggregateStore = - "user_media_understanding_annotation_aggregates" - val AuthorCountryCodeAggregateStore = "author_country_code_aggregates" - val OriginalAuthorCountryCodeAggregateStore = "original_author_country_code_aggregates" - - /** - * Step 3: Configure all aggregates to compute. - * Note that different subsets of aggregates in this list - * can be launched by different summingbird job instances. - * Any given job can be responsible for a set of AggregateGroup - * configs whose outputStores share the same exact startDate. - * AggregateGroups that do not share the same inputSource, - * outputStore or startDate MUST be launched using different - * summingbird jobs and passed in a different --start-time argument - * See science/scalding/mesos/timelines/prod.yaml for an example - * of how to configure your own job. - */ - val negativeDownsampleTransform = - DownsampleTransform( - negativeSamplingRate = 0.03, - keepLabels = RecapUserFeatureAggregation.LabelsV2) - val negativeRecTweetDownsampleTransform = DownsampleTransform( - negativeSamplingRate = 0.03, - keepLabels = RectweetUserFeatureAggregation.RectweetLabelsForAggregation - ) - - val userAggregatesV2: AggregateGroup = - AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_aggregate_v2", - preTransforms = Seq(RichRemoveUserIdZero), /* Eliminates reducer skew */ - keys = Set(USER_ID), - features = RecapUserFeatureAggregation.UserFeaturesV2, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric, SumMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userAuthorAggregatesV2: Set[AggregateGroup] = { - - /** - * NOTE: We need to remove records from out-of-network authors from the recap input - * records (which now include out-of-network records as well after merging recap and - * rectweet models) that are used to compute user-author aggregates. This is necessary - * to limit the growth rate of user-author aggregates. - */ - val allFeatureAggregates = Set( - AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_author_aggregate_v2", - preTransforms = Seq(FilterInNetworkTransform, RichRemoveUserIdZero), - keys = Set(USER_ID, AUTHOR_ID), - features = RecapUserFeatureAggregation.UserAuthorFeaturesV2, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(SumMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAuthorAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - ) - - val countAggregates: Set[AggregateGroup] = Set( - AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_author_aggregate_v2", - preTransforms = Seq(FilterInNetworkTransform, RichRemoveUserIdZero), - keys = Set(USER_ID, AUTHOR_ID), - features = RecapUserFeatureAggregation.UserAuthorFeaturesV2Count, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAuthorAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - ) - - allFeatureAggregates ++ countAggregates - } - - val userAggregatesV5Continuous: AggregateGroup = - AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_aggregate_v5.continuous", - preTransforms = Seq(RichRemoveUserIdZero), - keys = Set(USER_ID), - features = RecapUserFeatureAggregation.UserFeaturesV5Continuous, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric, SumMetric, SumSqMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userAuthorAggregatesV5: AggregateGroup = - AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_author_aggregate_v5", - preTransforms = Seq(FilterInNetworkTransform, RichRemoveUserIdZero), - keys = Set(USER_ID, AUTHOR_ID), - features = RecapUserFeatureAggregation.UserAuthorFeaturesV5, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAuthorAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val tweetSourceUserAuthorAggregatesV1: AggregateGroup = - AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_author_aggregate_tweetsource_v1", - preTransforms = Seq(FilterInNetworkTransform, RichRemoveUserIdZero), - keys = Set(USER_ID, AUTHOR_ID), - features = RecapUserFeatureAggregation.UserAuthorTweetSourceFeaturesV1, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric, SumMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAuthorAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userEngagerAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_engager_aggregate", - keys = Set(USER_ID, EngagementDataRecordFeatures.PublicEngagementUserIds), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserEngagerAggregateStore, - startDate = "2016-09-02 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - preTransforms = Seq( - RichRemoveUserIdZero, - RichUnifyPublicEngagersTransform - ) - ) - - val userMentionAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - preTransforms = Seq(RichRemoveUserIdZero), /* Eliminates reducer skew */ - aggregatePrefix = "user_mention_aggregate", - keys = Set(USER_ID, RecapFeatures.MENTIONED_SCREEN_NAMES), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserMentionAggregateStore, - startDate = "2017-03-01 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - includeAnyLabel = false - ) - - val twitterWideUserAggregates = AggregateGroup( - inputSource = timelinesDailyTwitterWideSource, - preTransforms = Seq(RichRemoveUserIdZero), /* Eliminates reducer skew */ - aggregatePrefix = "twitter_wide_user_aggregate", - keys = Set(USER_ID), - features = RecapUserFeatureAggregation.TwitterWideFeatures, - labels = RecapUserFeatureAggregation.TwitterWideLabels, - metrics = Set(CountMetric, SumMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = TwitterWideUserAggregateStore, - startDate = "2016-12-28 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val twitterWideUserAuthorAggregates = AggregateGroup( - inputSource = timelinesDailyTwitterWideSource, - preTransforms = Seq(RichRemoveUserIdZero), /* Eliminates reducer skew */ - aggregatePrefix = "twitter_wide_user_author_aggregate", - keys = Set(USER_ID, AUTHOR_ID), - features = RecapUserFeatureAggregation.TwitterWideFeatures, - labels = RecapUserFeatureAggregation.TwitterWideLabels, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = TwitterWideUserAuthorAggregateStore, - startDate = "2016-12-28 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - includeAnyLabel = false - ) - - /** - * User-HourOfDay and User-DayOfWeek aggregations, both for recap and rectweet - */ - val userRequestHourAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_request_context_aggregate.hour", - preTransforms = Seq(RichRemoveUserIdZero, negativeDownsampleTransform), - keys = Set(USER_ID, RequestContextFeatures.TIMESTAMP_GMT_HOUR), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserRequestHourAggregateStore, - startDate = "2017-08-01 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userRequestDowAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_request_context_aggregate.dow", - preTransforms = Seq(RichRemoveUserIdZero, negativeDownsampleTransform), - keys = Set(USER_ID, RequestContextFeatures.TIMESTAMP_GMT_DOW), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserRequestDowAggregateStore, - startDate = "2017-08-01 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val authorTopicAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "author_topic_aggregate", - preTransforms = Seq(RichRemoveUserIdZero), - keys = Set(AUTHOR_ID, TimelinesSharedFeatures.TOPIC_ID), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = AuthorTopicAggregateStore, - startDate = "2020-05-19 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userTopicAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_topic_aggregate", - preTransforms = Seq(RichRemoveUserIdZero), - keys = Set(USER_ID, TimelinesSharedFeatures.TOPIC_ID), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserTopicAggregateStore, - startDate = "2020-05-23 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userTopicAggregatesV2 = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_topic_aggregate_v2", - preTransforms = Seq(RichRemoveUserIdZero), - keys = Set(USER_ID, TimelinesSharedFeatures.TOPIC_ID), - features = RecapUserFeatureAggregation.UserTopicFeaturesV2Count, - labels = RecapUserFeatureAggregation.LabelsV2, - includeAnyFeature = false, - includeAnyLabel = false, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserTopicAggregateStore, - startDate = "2020-05-23 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userInferredTopicAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_inferred_topic_aggregate", - preTransforms = Seq(RichRemoveUserIdZero), - keys = Set(USER_ID, TimelinesSharedFeatures.INFERRED_TOPIC_IDS), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserInferredTopicAggregateStore, - startDate = "2020-09-09 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userInferredTopicAggregatesV2 = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_inferred_topic_aggregate_v2", - preTransforms = Seq(RichRemoveUserIdZero), - keys = Set(USER_ID, TimelinesSharedFeatures.INFERRED_TOPIC_IDS), - features = RecapUserFeatureAggregation.UserTopicFeaturesV2Count, - labels = RecapUserFeatureAggregation.LabelsV2, - includeAnyFeature = false, - includeAnyLabel = false, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserInferredTopicAggregateStore, - startDate = "2020-09-09 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userReciprocalEngagementAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_aggregate_v6", - preTransforms = Seq(RichRemoveUserIdZero), - keys = Set(USER_ID), - features = Set.empty, - labels = RecapUserFeatureAggregation.ReciprocalLabels, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - includeAnyLabel = false - ) - - val userOriginalAuthorReciprocalEngagementAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_original_author_aggregate_v1", - preTransforms = Seq(RichRemoveUserIdZero, RichRemoveAuthorIdZero), - keys = Set(USER_ID, TimelinesSharedFeatures.ORIGINAL_AUTHOR_ID), - features = Set.empty, - labels = RecapUserFeatureAggregation.ReciprocalLabels, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserOriginalAuthorAggregateStore, - startDate = "2018-12-26 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - includeAnyLabel = false - ) - - val originalAuthorReciprocalEngagementAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "original_author_aggregate_v1", - preTransforms = Seq(RichRemoveUserIdZero, RichRemoveAuthorIdZero), - keys = Set(TimelinesSharedFeatures.ORIGINAL_AUTHOR_ID), - features = Set.empty, - labels = RecapUserFeatureAggregation.ReciprocalLabels, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = OriginalAuthorAggregateStore, - startDate = "2023-02-25 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - includeAnyLabel = false - ) - - val originalAuthorNegativeEngagementAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "original_author_aggregate_v2", - preTransforms = Seq(RichRemoveUserIdZero, RichRemoveAuthorIdZero), - keys = Set(TimelinesSharedFeatures.ORIGINAL_AUTHOR_ID), - features = Set.empty, - labels = RecapUserFeatureAggregation.NegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = OriginalAuthorAggregateStore, - startDate = "2023-02-25 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - includeAnyLabel = false - ) - - val userListAggregates: AggregateGroup = - AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_list_aggregate", - keys = Set(USER_ID, ListFeatures.LIST_ID), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserListAggregateStore, - startDate = "2020-05-28 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - preTransforms = Seq(RichRemoveUserIdZero) - ) - - val userMediaUnderstandingAnnotationAggregates: AggregateGroup = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_media_annotation_aggregate", - preTransforms = Seq(RichRemoveUserIdZero), - keys = - Set(USER_ID, SemanticCoreFeatures.mediaUnderstandingHighRecallNonSensitiveEntityIdsFeature), - features = Set.empty, - labels = RecapUserFeatureAggregation.LabelsV2, - metrics = Set(CountMetric), - halfLives = Set(50.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserMediaUnderstandingAnnotationAggregateStore, - startDate = "2021-03-20 00:00", - commonConfig = timelinesOfflineAggregateSink - )) - ) - - val userAuthorGoodClickAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_author_good_click_aggregate", - preTransforms = Seq(FilterInNetworkTransform, RichRemoveUserIdZero), - keys = Set(USER_ID, AUTHOR_ID), - features = RecapUserFeatureAggregation.UserAuthorFeaturesV2, - labels = RecapUserFeatureAggregation.GoodClickLabels, - metrics = Set(SumMetric), - halfLives = Set(14.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserAuthorAggregateStore, - startDate = "2016-07-15 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )) - ) - - val userEngagerGoodClickAggregates = AggregateGroup( - inputSource = timelinesDailyRecapMinimalSource, - aggregatePrefix = "user_engager_good_click_aggregate", - keys = Set(USER_ID, EngagementDataRecordFeatures.PublicEngagementUserIds), - features = Set.empty, - labels = RecapUserFeatureAggregation.GoodClickLabels, - metrics = Set(CountMetric), - halfLives = Set(14.days), - outputStore = mkPhysicalStore( - OfflineAggregateDataRecordStore( - name = UserEngagerAggregateStore, - startDate = "2016-09-02 00:00", - commonConfig = timelinesOfflineAggregateSink, - maxKvSourceFailures = defaultMaxKvSourceFailures - )), - preTransforms = Seq( - RichRemoveUserIdZero, - RichUnifyPublicEngagersTransform - ) - ) - -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigTrait.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationConfigTrait.docx new file mode 100644 index 0000000000000000000000000000000000000000..1389d8c2059f746469207d92d2b07e4e74d31866 GIT binary patch literal 37431 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 storeNames.contains(aggregateGroup.outputStore.name)) - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationKeyValInjections.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationKeyValInjections.docx new file mode 100644 index 0000000000000000000000000000000000000000..5960168d4aee11bb9bbffad03c6f934668eee699 GIT binary patch literal 37447 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
    ^)noczI z)xv`T!7Aqm3Q)ai(vT@Ss@-5FC~1yj+Gz=nV&Bu^9mO)!5*>#TVPtr+p-A>z3nQZv z&|=X?Sov{=&zb)?#U$#`ZUUq)6%f4WawAs661$emmV~THvbUxp8KpY7M|E(Ah9tD3 z0c{Rnw1y8GR&l=S>BIB;k*aa%#;Ezng2CImj`TS>Sz#^ zizE|1Y!-wf8=$Jet~3}ixE5Eo`34Cz>zmmr;+JXCJrLS>M=zvYM=aoT-e;j1;vFw5 z9Hg`0!_uOsWO-hF@<^}&_kV{as}R*n!1yaHU&cYjj}!(v-vCyrWMxcCy-Mdw;ooc_ z%8;39RZ(=d!p#VDd7x4}Ipto~g~8~O4H{@ArvG1``8@_L@ft-jcxBPGMM7s($-OFF#Xr z2Qd<$WmzKEz-dC`<4!nV})P$l!tL|p@)f4{PH;he+7Zw zhS4Bx#lMjfR+S6vBkx*-3pLBt9tX|$oBZBE5{j!_2xqZC_3O`WvG_*z?*A(Ykw^R$ z^cH%NHS!lQ%KPTpt*wAb+7Hu?t#Bb=Afdkl2}GoRyM;E@{S16>82>PFC!XI;5zVxQ z9uM=<^8#tOkbfTOyCFnJCX@(^u|)`_6iC!B@O|X;CifYwKiuj;%ff|7-VOOAQ2jtk z=7>MT4>^u9=?*)00spQ=^2z+#pD0yKmWXYuH=^}PFRxVplEH{8~_T3r(Fl@|^5(62kYP2JyFJI3l&(hFp0~LQI6W_vLgkFfLfP z(9>Gp#|(dnt@*3`k;Fn+1eC3OTKB;MCyB}*Jo-;9J^{ai;{Ky#{+B4Q=p~)cGkXIR zEF}6m0OO1q_h$*$_tlq3tpwHR&uH-4%>I#c3ytpx9F2YCQWKyYMYuNnzdl zn`RH)g?R1M8?*6;Izn+f%O+$vP*4n<@5=Djh&@ zT7ADBl(*|gg#`QJzqm2((hMoJ4l6zFPp}wjREJg}XyDd1GB{Rmg%Qrie0}mxb4yQP9O~73_7lza|*f8}yVvpm?nibJ+m9d=r|1;PpKpF4F z{Ge6nqHW0Hw2C73zv!$-Y^@Q-uKn=wtj@s!xP;{#D_zQuvHP<0TV2;KZbD)0a(uBO z+2hz?kB7=(jkn1c~$?pqv5A{Ww{52%ecY=gh6W;Vh_EL!d~# zvJONBAlicPpjE2{31-f5;(0bVfL+84z%%2RndO%0DU;R@B!*Dd!OVZ_dKm+4Mh}*K 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationSources.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationSources.scala deleted file mode 100644 index c799f22fa..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/TimelinesAggregationSources.scala +++ /dev/null @@ -1,45 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates - -import com.twitter.ml.api.constant.SharedFeatures.TIMESTAMP -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.OfflineAggregateSource -import com.twitter.timelines.prediction.features.p_home_latest.HomeLatestUserAggregatesFeatures -import timelines.data_processing.ad_hoc.recap.data_record_preparation.RecapDataRecordsAggMinimalJavaDataset - -/** - * Any update here should be in sync with [[TimelinesFeatureGroups]] and [[AggMinimalDataRecordGeneratorJob]]. - */ -object TimelinesAggregationSources { - - /** - * This is the recap data records after post-processing in [[GenerateRecapAggMinimalDataRecordsJob]] - */ - val timelinesDailyRecapMinimalSource = OfflineAggregateSource( - name = "timelines_daily_recap", - timestampFeature = TIMESTAMP, - dalDataSet = Some(RecapDataRecordsAggMinimalJavaDataset), - scaldingSuffixType = Some("dal"), - withValidation = true - ) - val timelinesDailyTwitterWideSource = OfflineAggregateSource( - name = "timelines_daily_twitter_wide", - timestampFeature = TIMESTAMP, - scaldingHdfsPath = Some("/user/timelines/processed/suggests/recap/twitter_wide_data_records"), - scaldingSuffixType = Some("daily"), - withValidation = true - ) - - val timelinesDailyListTimelineSource = OfflineAggregateSource( - name = "timelines_daily_list_timeline", - timestampFeature = TIMESTAMP, - scaldingHdfsPath = Some("/user/timelines/processed/suggests/recap/all_features/list"), - scaldingSuffixType = Some("hourly"), - withValidation = true - ) - - val timelinesDailyHomeLatestSource = OfflineAggregateSource( - name = "timelines_daily_home_latest", - timestampFeature = HomeLatestUserAggregatesFeatures.AGGREGATE_TIMESTAMP_MS, - scaldingHdfsPath = Some("/user/timelines/processed/p_home_latest/user_aggregates"), - scaldingSuffixType = Some("daily") - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/AuthorFeaturesAdapter.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/AuthorFeaturesAdapter.docx new file mode 100644 index 0000000000000000000000000000000000000000..f50b427be8ea6892a6e05555718d96be9fc58570 GIT binary patch literal 37683 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

    *S0Y!r`$ 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 FSDiscrete} -import com.twitter.timelines.prediction.common.adapters.TimelinesAdapterBase -import java.lang.{Boolean => JBoolean} -import java.util -import scala.collection.JavaConverters._ - -object AuthorFeaturesAdapter extends TimelinesAdapterBase[PredictionRecord] { - val UserStateBoundFeature: BoundFeature[UserId, FSDiscrete] = UserActivity.UserState.bind(Author) - val UserFeaturesSet: BoundFeatureSet = BoundFeatureSet(UserStateBoundFeature) - - /** - * Boolean features about viewer's user state. - * enum UserState { - * NEW = 0, - * NEAR_ZERO = 1, - * VERY_LIGHT = 2, - * LIGHT = 3, - * MEDIUM_TWEETER = 4, - * MEDIUM_NON_TWEETER = 5, - * HEAVY_NON_TWEETER = 6, - * HEAVY_TWEETER = 7 - * }(persisted='true') - */ - val IS_USER_NEW = new Binary("timelines.author.user_state.is_user_new", Set(UserState).asJava) - val IS_USER_LIGHT = new Binary("timelines.author.user_state.is_user_light", Set(UserState).asJava) - val IS_USER_MEDIUM_TWEETER = - new Binary("timelines.author.user_state.is_user_medium_tweeter", Set(UserState).asJava) - val IS_USER_MEDIUM_NON_TWEETER = - new Binary("timelines.author.user_state.is_user_medium_non_tweeter", Set(UserState).asJava) - val IS_USER_HEAVY_NON_TWEETER = - new Binary("timelines.author.user_state.is_user_heavy_non_tweeter", Set(UserState).asJava) - val IS_USER_HEAVY_TWEETER = - new Binary("timelines.author.user_state.is_user_heavy_tweeter", Set(UserState).asJava) - val userStateToFeatureMap: Map[Long, Binary] = Map( - 0L -> IS_USER_NEW, - 1L -> IS_USER_LIGHT, - 2L -> IS_USER_LIGHT, - 3L -> IS_USER_LIGHT, - 4L -> IS_USER_MEDIUM_TWEETER, - 5L -> IS_USER_MEDIUM_NON_TWEETER, - 6L -> IS_USER_HEAVY_NON_TWEETER, - 7L -> IS_USER_HEAVY_TWEETER - ) - - val UserStateBooleanFeatures: Set[Feature[_]] = userStateToFeatureMap.values.toSet - - private val allFeatures: Seq[Feature[_]] = UserStateBooleanFeatures.toSeq - override def getFeatureContext: FeatureContext = new FeatureContext(allFeatures: _*) - override def commonFeatures: Set[Feature[_]] = Set.empty - - override def adaptToDataRecords(record: PredictionRecord): util.List[DataRecord] = { - val newRecord = new RichDataRecord(new DataRecord) - record - .getFeatureValue(UserStateBoundFeature) - .flatMap { userState => userStateToFeatureMap.get(userState.value) }.foreach { - booleanFeature => newRecord.setFeatureValue[JBoolean](booleanFeature, true) - } - - List(newRecord.getRecord).asJava - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/BUILD b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/BUILD deleted file mode 100644 index 93f39405d..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/BUILD +++ /dev/null @@ -1,199 +0,0 @@ -heron_binary( - name = "heron-without-jass", - main = "com.twitter.timelines.prediction.common.aggregates.real_time.TypeSafeRunner", - oss = True, - platform = "java8", - runtime_platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - ":real_time", - "3rdparty/jvm/org/slf4j:slf4j-jdk14", - ], -) - -jvm_app( - name = "rta_heron", - binary = ":heron-without-jass", - bundles = [ - bundle( - fileset = ["resources/jaas.conf"], - ), - ], - tags = [ - "bazel-compatible", - "bazel-only", - ], -) - -scala_library( - sources = ["*.scala"], - platform = "java8", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - ":online-configs", - "3rdparty/src/jvm/com/twitter/summingbird:storm", - "src/java/com/twitter/heron/util", - "src/java/com/twitter/ml/api:api-base", - "src/java/com/twitter/ml/api/constant", - "src/scala/com/twitter/frigate/data_pipeline/features_aggregated/core:core-features", - "src/scala/com/twitter/ml/api/util", - "src/scala/com/twitter/storehaus_internal/memcache", - "src/scala/com/twitter/storehaus_internal/util", - "src/scala/com/twitter/summingbird_internal/bijection:bijection-implicits", - "src/scala/com/twitter/summingbird_internal/runner/store_config", - "src/scala/com/twitter/summingbird_internal/runner/storm", - "src/scala/com/twitter/summingbird_internal/sources/storm/remote:ClientEventSourceScrooge2", - "src/scala/com/twitter/timelines/prediction/adapters/client_log_event", - "src/scala/com/twitter/timelines/prediction/adapters/client_log_event_mr", - "src/scala/com/twitter/timelines/prediction/features/client_log_event", - "src/scala/com/twitter/timelines/prediction/features/common", - "src/scala/com/twitter/timelines/prediction/features/list_features", - "src/scala/com/twitter/timelines/prediction/features/recap", - "src/scala/com/twitter/timelines/prediction/features/user_health", - "src/thrift/com/twitter/ml/api:data-java", - "src/thrift/com/twitter/timelines/suggests/common:record-scala", - "timelinemixer/common/src/main/scala/com/twitter/timelinemixer/clients/served_features_cache", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - "timelines/data_processing/ml_util/aggregation_framework/heron", - "timelines/data_processing/ml_util/aggregation_framework/job", - "timelines/data_processing/ml_util/aggregation_framework/metrics", - "timelines/data_processing/ml_util/transforms", - "timelines/src/main/scala/com/twitter/timelines/clients/memcache_common", - "util/util-core:scala", - ], -) - -scala_library( - name = "online-configs", - sources = [ - "AuthorFeaturesAdapter.scala", - "Event.scala", - "FeatureStoreUtils.scala", - "StormAggregateSourceUtils.scala", - "TimelinesOnlineAggregationConfig.scala", - "TimelinesOnlineAggregationConfigBase.scala", - "TimelinesOnlineAggregationSources.scala", - "TimelinesStormAggregateSource.scala", - "TweetFeaturesReadableStore.scala", - "UserFeaturesAdapter.scala", - "UserFeaturesReadableStore.scala", - ], - platform = "java8", - strict_deps = True, - tags = ["bazel-compatible"], - dependencies = [ - ":base-config", - "3rdparty/src/jvm/com/twitter/scalding:db", - "3rdparty/src/jvm/com/twitter/storehaus:core", - "3rdparty/src/jvm/com/twitter/summingbird:core", - "3rdparty/src/jvm/com/twitter/summingbird:online", - "3rdparty/src/jvm/com/twitter/summingbird:storm", - "abuse/detection/src/main/thrift/com/twitter/abuse/detection/mention_interactions:thrift-scala", - "snowflake/src/main/scala/com/twitter/snowflake/id", - "snowflake/src/main/thrift:thrift-scala", - "src/java/com/twitter/ml/api:api-base", - "src/java/com/twitter/ml/api/constant", - "src/scala/com/twitter/frigate/data_pipeline/features_aggregated/core:core-features", - "src/scala/com/twitter/ml/api/util:datarecord", - "src/scala/com/twitter/ml/featurestore/catalog/datasets/geo:geo-user-location", - "src/scala/com/twitter/ml/featurestore/catalog/datasets/magicrecs:user-features", - "src/scala/com/twitter/ml/featurestore/catalog/entities/core", - "src/scala/com/twitter/ml/featurestore/catalog/features/core:user", - "src/scala/com/twitter/ml/featurestore/catalog/features/geo", - "src/scala/com/twitter/ml/featurestore/catalog/features/magicrecs:user-activity", - "src/scala/com/twitter/ml/featurestore/catalog/features/magicrecs:user-info", - "src/scala/com/twitter/ml/featurestore/catalog/features/trends:tweet_trends_scores", - "src/scala/com/twitter/ml/featurestore/lib/data", - "src/scala/com/twitter/ml/featurestore/lib/dataset/offline", - "src/scala/com/twitter/ml/featurestore/lib/export/strato:app-names", - "src/scala/com/twitter/ml/featurestore/lib/feature", - "src/scala/com/twitter/ml/featurestore/lib/online", - "src/scala/com/twitter/ml/featurestore/lib/params", - "src/scala/com/twitter/storehaus_internal/util", - "src/scala/com/twitter/summingbird_internal/bijection:bijection-implicits", - "src/scala/com/twitter/summingbird_internal/runner/store_config", - "src/scala/com/twitter/summingbird_internal/runner/storm", - "src/scala/com/twitter/summingbird_internal/sources/common", - "src/scala/com/twitter/summingbird_internal/sources/common/remote:ClientEventSourceScrooge", - "src/scala/com/twitter/summingbird_internal/sources/storm/remote:ClientEventSourceScrooge2", - "src/scala/com/twitter/timelines/prediction/adapters/client_log_event", - "src/scala/com/twitter/timelines/prediction/adapters/client_log_event_mr", - "src/scala/com/twitter/timelines/prediction/common/adapters:base", - "src/scala/com/twitter/timelines/prediction/common/adapters:engagement-converter", - "src/scala/com/twitter/timelines/prediction/common/aggregates", - "src/scala/com/twitter/timelines/prediction/features/client_log_event", - "src/scala/com/twitter/timelines/prediction/features/common", - "src/scala/com/twitter/timelines/prediction/features/list_features", - "src/scala/com/twitter/timelines/prediction/features/recap", - "src/scala/com/twitter/timelines/prediction/features/user_health", - "src/thrift/com/twitter/clientapp/gen:clientapp-scala", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/ml/api:data-java", - "src/thrift/com/twitter/timelines/suggests/common:engagement-java", - "src/thrift/com/twitter/timelines/suggests/common:engagement-scala", - "src/thrift/com/twitter/timelines/suggests/common:record-scala", - "src/thrift/com/twitter/timelineservice/injection:thrift-scala", - "src/thrift/com/twitter/timelineservice/server/suggests/logging:thrift-scala", - "strato/src/main/scala/com/twitter/strato/client", - "timelinemixer/common/src/main/scala/com/twitter/timelinemixer/clients/served_features_cache", - "timelines/data_processing/ad_hoc/suggests/common:raw_training_data_creator", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - "timelines/data_processing/ml_util/aggregation_framework/heron:configs", - "timelines/data_processing/ml_util/aggregation_framework/metrics", - "timelines/data_processing/ml_util/transforms", - "timelines/data_processing/util:rich-request", - "tweetsource/common/src/main/thrift:thrift-scala", - "twitter-server-internal/src/main/scala", - "unified_user_actions/client/src/main/scala/com/twitter/unified_user_actions/client/config", - "unified_user_actions/client/src/main/scala/com/twitter/unified_user_actions/client/summingbird", - "unified_user_actions/thrift/src/main/thrift/com/twitter/unified_user_actions:unified_user_actions-scala", - "util/util-core:scala", - "util/util-stats/src/main/scala/com/twitter/finagle/stats", - ], -) - -scala_library( - name = "base-config", - sources = [ - "AuthorFeaturesAdapter.scala", - "TimelinesOnlineAggregationConfigBase.scala", - "TweetFeaturesAdapter.scala", - "UserFeaturesAdapter.scala", - ], - platform = "java8", - strict_deps = True, - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/java/com/twitter/ml/api/constant", - "src/resources/com/twitter/timelines/prediction/common/aggregates/real_time", - "src/scala/com/twitter/ml/api/util:datarecord", - "src/scala/com/twitter/ml/featurestore/catalog/datasets/magicrecs:user-features", - "src/scala/com/twitter/ml/featurestore/catalog/entities/core", - "src/scala/com/twitter/ml/featurestore/catalog/features/core:user", - "src/scala/com/twitter/ml/featurestore/catalog/features/geo", - "src/scala/com/twitter/ml/featurestore/catalog/features/magicrecs:user-activity", - "src/scala/com/twitter/ml/featurestore/catalog/features/magicrecs:user-info", - "src/scala/com/twitter/ml/featurestore/catalog/features/trends:tweet_trends_scores", - "src/scala/com/twitter/ml/featurestore/lib/data", - "src/scala/com/twitter/ml/featurestore/lib/feature", - "src/scala/com/twitter/timelines/prediction/common/adapters:base", - "src/scala/com/twitter/timelines/prediction/common/adapters:engagement-converter", - "src/scala/com/twitter/timelines/prediction/common/aggregates", - "src/scala/com/twitter/timelines/prediction/features/client_log_event", - "src/scala/com/twitter/timelines/prediction/features/common", - "src/scala/com/twitter/timelines/prediction/features/list_features", - "src/scala/com/twitter/timelines/prediction/features/recap", - "src/scala/com/twitter/timelines/prediction/features/user_health", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/ml/api:feature_context-java", - "src/thrift/com/twitter/timelines/suggests/common:engagement-scala", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - "timelines/data_processing/ml_util/aggregation_framework/heron:base-config", - "timelines/data_processing/ml_util/aggregation_framework/metrics", - "timelines/data_processing/ml_util/transforms", - "util/util-core:scala", - "util/util-core:util-core-util", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/BUILD.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..3ebae7619ced9ba6eb84a5f1393a51db9b230b53 GIT binary patch literal 38259 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 - DatasetParams( - stratoSuffix = Some(FeatureStoreAppNames.Timelines), - attributions = Seq(ManhattanAppId("athena", "timelines_aggregates_v2_features_by_user")) - ), - GeoUserLocationDataset.id -> - DatasetParams( - attributions = Seq(ManhattanAppId("starbuck", "timelines_geo_features_by_user")) - ) - ) - ) - - def mkFeatureStoreClient( - serviceIdentifier: ServiceIdentifier, - statsReceiver: StatsReceiver - ): FeatureStoreClient = { - com.twitter.server.Init() // necessary in order to use WilyNS path - - val stratoClient: Client = mkStratoClient(serviceIdentifier) - val featureStoreClient: FeatureStoreClient = FeatureStoreClient( - featureSet = - UserFeaturesAdapter.UserFeaturesSet ++ AuthorFeaturesAdapter.UserFeaturesSet ++ TweetFeaturesAdapter.TweetFeaturesSet, - client = stratoClient, - statsReceiver = statsReceiver, - featureStoreParams = featureStoreParams - ) - featureStoreClient - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/LocallyReplicatedStore.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/LocallyReplicatedStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..09768903cec5fb51b5f02b17ae82001322d410ec GIT binary patch literal 37851 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[iOxkIy2YiD`fex_Z~a@8)ahw z5|y^Llv;!LJJs#lcggf98@_0+uz`n^eT|!>+C$r^@@aKCd@`@u;RQE>T@&^2T^4EO zVYXl!XywYh!dF&KxP!X|*DQrCV>QRF+AylH^4*9}aK#-M*1^cN8;9bKlnVQhlp2KW z>I(ChBP(ikiv5nt%lRy1s(ls`Qt49{PWN9T^F_mCBBn^#2<>T%Sm|al!^#49WVpC_ z&R3G;Ah{@{u0rHFJLUa$W**Z0yg2Y-nP_~|1F6U9YRw^LAY&{d;2fo3?N{mPc)tC5 znl9qO___ty5QN;Jl;GTqxeD)A)2TpvMO5FLKU-OF8|Jq+C_qGxmXNm|fz&}(jaTX_ z&6T{+Yo=KKP-c>A!-MCh72Z^vhq!wB#5SqiD!6`aiuW4h#5i zSiRQ*ci>u3+@Bq0j=?GYrXOLIs5UIW2%;MnKIP`!5im0_tT&Gy&iM`CcG39|iM;yVY;@u9)2NfO{v>)hhR`1mzFSJdh-&su zs3N&{S0%NkN6LNmVF1>;dv5Q#`$kqzG`jod%MNtEuDb5XVX&7N6O>&x2JiQ7w4VNO zWOg?&_&$?!IjyF=;S^-@S=zVzAHMG&h)qP{Mq%8EUSSkJ3<{R zvR|AEWq5zy!RfqhRyBWxsX>&j35nLt=1J`PHuZZAL*HH9dxzi~?@2|B+egnQIdOPA zygfu{Pz61mpYFQ1F3op)g1ox)Y>Cwe35mdESFu3)r4e{k*&)eDvx9^BMj_@Sw1((Zq? zb>>k`Tu~Swb_7YlfXE_ZW3V8~sv_1v)mkf3P^2Q1ofr%eDTGQAmKczolCX<36zfum zBvuP4h?Xrag0hJqAW<+#Ai)4?gr-6ViVc}V{+OJ3XTIN?_s)4U_q+F;c~z_k2j&rx z-YxYTuG{S{LrN z>DdAs`3QUp0%j`27G#YPodZlMocGF8AYeQFIxSP^Lh(Vy<{)azqr5(5UD1qVzLlr_ z&abyc7H2d}MiFV8&86QIhOpg6aIn^vPxYu&!THOfR>nasLb&=@utbivC&xu*+^rYDeTr@O zg;thL;kx|Axvs?1Z}1*E@fFIs`veS|M|=(CqvQNm^ABuAG(i$HaBMs@NEGQoRA=UL)yVAh>0IhD0IKd`pGF)$5 z>B@-l8{e(?El)dZe#jupk4K$$Qxw4tN}a2#X72%-`rRIzj#I4r>mT>WbOaxQPpvak zgGaQUqEyA3+K@5$$=grQ>Gi{Qu>u%^7b7K}SGy1a*A`5|!#YhlMu};!Rf9D$%p)^( zypT->mjosoGHPZjOy>hJUO!AZ#~%#OG%TCGvmB0L1e|%OBv1?Dr)0Hl@7D6? zcW3+O(>bS`UgfPRm>fcuq_n#}WFrPsuAV-fWt_k7%uHU%-Rtdjrw^jGCjWQFdq_9m$2=cD*B&b!djA2N;E*sp!v4ee z?+@8d3s<6T>b3IFp}tR*lTk@XlDB@-E{_ZJsh5$_P3h~$eVNJG9X`1^f&I6L4Y^3>@k`3yys?c{s&roh{gT8`zbxT<0vUW%++2UkO=t7P6S@_hwiDfS;!d0GA^ff~QM2 z5=9{5F-zr2=o~;lDEU!OQRqg?i6NhtgmR#DQW@s};Ui~75d|uT7G7j>o0w%eqznTk zKnoEvLNIZeAXk=v>Y-U Future.value(Some(v)) - case _ => { - localFailsCounter.incr() - val replicatedOptFu = remoteStore.get(k) - // async write if result is not empty - replicatedOptFu.onSuccess { - case Some(v) => { - localWritesCounter.incr() - localStore.put((k, Some(v))) - } - case _ => { - remoteFailsCounter.incr() - Unit - } - } - replicatedOptFu - } - } - } { _: Throwable => Future.None } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/StormAggregateSourceUtils.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/StormAggregateSourceUtils.docx new file mode 100644 index 0000000000000000000000000000000000000000..cf9cd7b7fb962f322f8a7e42356cab6a5487956a GIT binary patch literal 39164 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 JLong} - -import com.twitter.unified_user_actions.thriftscala.ActionType -import com.twitter.unified_user_actions.thriftscala.UnifiedUserAction - -private[real_time] object StormAggregateSourceUtils { - type UserId = Long - type AuthorId = Long - type TweetId = Long - - /** - * Attaches a [[FeatureStoreClient]] to the underyling [[Producer]]. The FeatureStoreClient - * hydrates additional user features. - * - * @param underlyingProducer converts a stream of [[com.twitter.clientapp.thriftscala.LogEvent]] - * to a stream of [[DataRecord]]. - */ - def wrapByFeatureStoreClient( - underlyingProducer: Producer[Storm, Event[DataRecord]], - jobConfig: RealTimeAggregatesJobConfig, - scopedStatsReceiver: StatsReceiver - ): Producer[Storm, Event[DataRecord]] = { - lazy val keyDataRecordCounter = scopedStatsReceiver.counter("keyDataRecord") - lazy val keyFeatureCounter = scopedStatsReceiver.counter("keyFeature") - lazy val leftDataRecordCounter = scopedStatsReceiver.counter("leftDataRecord") - lazy val rightDataRecordCounter = scopedStatsReceiver.counter("rightDataRecord") - lazy val mergeNumFeaturesCounter = scopedStatsReceiver.counter("mergeNumFeatures") - lazy val authorKeyDataRecordCounter = scopedStatsReceiver.counter("authorKeyDataRecord") - lazy val authorKeyFeatureCounter = scopedStatsReceiver.counter("authorKeyFeature") - lazy val authorLeftDataRecordCounter = scopedStatsReceiver.counter("authorLeftDataRecord") - lazy val authorRightDataRecordCounter = scopedStatsReceiver.counter("authorRightDataRecord") - lazy val authorMergeNumFeaturesCounter = scopedStatsReceiver.counter("authorMergeNumFeatures") - lazy val tweetKeyDataRecordCounter = - scopedStatsReceiver.counter("tweetKeyDataRecord") - lazy val tweetKeyFeatureCounter = scopedStatsReceiver.counter("tweetKeyFeature") - lazy val tweetLeftDataRecordCounter = - scopedStatsReceiver.counter("tweetLeftDataRecord") - lazy val tweetRightDataRecordCounter = - scopedStatsReceiver.counter("tweetRightDataRecord") - lazy val tweetMergeNumFeaturesCounter = - scopedStatsReceiver.counter("tweetMergeNumFeatures") - - @transient lazy val featureStoreClient: FeatureStoreClient = - FeatureStoreUtils.mkFeatureStoreClient( - serviceIdentifier = jobConfig.serviceIdentifier, - statsReceiver = scopedStatsReceiver - ) - - lazy val joinUserFeaturesDataRecordProducer = - if (jobConfig.keyedByUserEnabled) { - lazy val keyedByUserFeaturesStormService: Storm#Service[Set[UserId], DataRecord] = - Storm.service( - new UserFeaturesReadableStore( - featureStoreClient = featureStoreClient, - userEntity = User, - userFeaturesAdapter = UserFeaturesAdapter - ) - ) - - leftJoinDataRecordProducer( - keyFeature = SharedFeatures.USER_ID, - leftDataRecordProducer = underlyingProducer, - rightStormService = keyedByUserFeaturesStormService, - keyDataRecordCounter = keyDataRecordCounter, - keyFeatureCounter = keyFeatureCounter, - leftDataRecordCounter = leftDataRecordCounter, - rightDataRecordCounter = rightDataRecordCounter, - mergeNumFeaturesCounter = mergeNumFeaturesCounter - ) - } else { - underlyingProducer - } - - lazy val joinAuthorFeaturesDataRecordProducer = - if (jobConfig.keyedByAuthorEnabled) { - lazy val keyedByAuthorFeaturesStormService: Storm#Service[Set[AuthorId], DataRecord] = - Storm.service( - new UserFeaturesReadableStore( - featureStoreClient = featureStoreClient, - userEntity = Author, - userFeaturesAdapter = AuthorFeaturesAdapter - ) - ) - - leftJoinDataRecordProducer( - keyFeature = TimelinesSharedFeatures.SOURCE_AUTHOR_ID, - leftDataRecordProducer = joinUserFeaturesDataRecordProducer, - rightStormService = keyedByAuthorFeaturesStormService, - keyDataRecordCounter = authorKeyDataRecordCounter, - keyFeatureCounter = authorKeyFeatureCounter, - leftDataRecordCounter = authorLeftDataRecordCounter, - rightDataRecordCounter = authorRightDataRecordCounter, - mergeNumFeaturesCounter = authorMergeNumFeaturesCounter - ) - } else { - joinUserFeaturesDataRecordProducer - } - - lazy val joinTweetFeaturesDataRecordProducer = { - if (jobConfig.keyedByTweetEnabled) { - lazy val keyedByTweetFeaturesStormService: Storm#Service[Set[TweetId], DataRecord] = - Storm.service( - new TweetFeaturesReadableStore( - featureStoreClient = featureStoreClient, - tweetEntity = Tweet, - tweetFeaturesAdapter = TweetFeaturesAdapter - ) - ) - - leftJoinDataRecordProducer( - keyFeature = TimelinesSharedFeatures.SOURCE_TWEET_ID, - leftDataRecordProducer = joinAuthorFeaturesDataRecordProducer, - rightStormService = keyedByTweetFeaturesStormService, - keyDataRecordCounter = tweetKeyDataRecordCounter, - keyFeatureCounter = tweetKeyFeatureCounter, - leftDataRecordCounter = tweetLeftDataRecordCounter, - rightDataRecordCounter = tweetRightDataRecordCounter, - mergeNumFeaturesCounter = tweetMergeNumFeaturesCounter - ) - } else { - joinAuthorFeaturesDataRecordProducer - } - } - - joinTweetFeaturesDataRecordProducer - } - - private[this] lazy val DataRecordMerger = new DataRecordMerger - - /** - * Make join key from the client event data record and return both. - * @param keyFeature Feature to extract join key value: USER_ID, SOURCE_TWEET_ID, etc. - * @param record DataRecord containing client engagement and basic tweet-side features - * @return The return type is a tuple of this key and original data record which will be used - * in the subsequent leftJoin operation. - */ - private[this] def mkKey( - keyFeature: Feature[JLong], - record: DataRecord, - keyDataRecordCounter: Counter, - keyFeatureCounter: Counter - ): Set[Long] = { - keyDataRecordCounter.incr() - val richRecord = new RichDataRecord(record) - if (richRecord.hasFeature(keyFeature)) { - keyFeatureCounter.incr() - val key: Long = richRecord.getFeatureValue(keyFeature).toLong - Set(key) - } else { - Set.empty[Long] - } - } - - /** - * After the leftJoin, merge the client event data record and the joined data record - * into a single data record used for further aggregation. - */ - private[this] def mergeDataRecord( - leftRecord: Event[DataRecord], - rightRecordOpt: Option[DataRecord], - leftDataRecordCounter: Counter, - rightDataRecordCounter: Counter, - mergeNumFeaturesCounter: Counter - ): Event[DataRecord] = { - leftDataRecordCounter.incr() - rightRecordOpt.foreach { rightRecord => - rightDataRecordCounter.incr() - DataRecordMerger.merge(leftRecord.event, rightRecord) - mergeNumFeaturesCounter.incr(new RichDataRecord(leftRecord.event).numFeatures()) - } - leftRecord - } - - private[this] def leftJoinDataRecordProducer( - keyFeature: Feature[JLong], - leftDataRecordProducer: Producer[Storm, Event[DataRecord]], - rightStormService: Storm#Service[Set[Long], DataRecord], - keyDataRecordCounter: => Counter, - keyFeatureCounter: => Counter, - leftDataRecordCounter: => Counter, - rightDataRecordCounter: => Counter, - mergeNumFeaturesCounter: => Counter - ): Producer[Storm, Event[DataRecord]] = { - val keyedLeftDataRecordProducer: Producer[Storm, (Set[Long], Event[DataRecord])] = - leftDataRecordProducer.map { - case dataRecord: HomeEvent[DataRecord] => - val key = mkKey( - keyFeature = keyFeature, - record = dataRecord.event, - keyDataRecordCounter = keyDataRecordCounter, - keyFeatureCounter = keyFeatureCounter - ) - (key, dataRecord) - case dataRecord: ProfileEvent[DataRecord] => - val key = Set.empty[Long] - (key, dataRecord) - case dataRecord: SearchEvent[DataRecord] => - val key = Set.empty[Long] - (key, dataRecord) - case dataRecord: UuaEvent[DataRecord] => - val key = Set.empty[Long] - (key, dataRecord) - } - - keyedLeftDataRecordProducer - .leftJoin(rightStormService) - .map { - case (_, (leftRecord, rightRecordOpt)) => - mergeDataRecord( - leftRecord = leftRecord, - rightRecordOpt = rightRecordOpt, - leftDataRecordCounter = leftDataRecordCounter, - rightDataRecordCounter = rightDataRecordCounter, - mergeNumFeaturesCounter = mergeNumFeaturesCounter - ) - } - } - - /** - * Filter Unified User Actions events to include only actions that has home timeline visit prior to landing on the page - */ - def isUuaBCEEventsFromHome(event: UnifiedUserAction): Boolean = { - def breadcrumbViewsContain(view: String): Boolean = - event.eventMetadata.breadcrumbViews.map(_.contains(view)).getOrElse(false) - - (event.actionType) match { - case ActionType.ClientTweetV2Impression if breadcrumbViewsContain("home") => - true - case ActionType.ClientTweetVideoFullscreenV2Impression - if (breadcrumbViewsContain("home") & breadcrumbViewsContain("video")) => - true - case ActionType.ClientProfileV2Impression if breadcrumbViewsContain("home") => - true - case _ => false - } - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationConfig.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationConfig.docx new file mode 100644 index 0000000000000000000000000000000000000000..6cde9194df3de5a63661b02cf544a702d76d5227 GIT binary patch literal 37091 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 q*USv# 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�JW#+VvyoV{67gZ!gJ}-!%j=Hp>?U)ct5J>JWUbI#Rc8 z&ddf@B!EcrG#2dfrs+1uOt8maqAgILxXP=gzawH`%KZ3=PFbEL%ey;W)lV=sE*sOB zKPjq=fyF!>{e*n*MZqEprg{`3+k?k6e{W z*={f^SaM59WLeD8w3vS4sf^B|1C`$Hos*Yjdd@Lq{$$>>V3QM!$WUhm1n1nS2)XOu zOGoYBfJ}FtFHGAQ>NbJk7|OR~=p71jri|k!66MKVUtgqFcPexuZ8%?a3VTp6NoHy;C1#yVDr6#MejD>QPyq91E*lqjkDaI9{S(i zV>UdBFbx+E4mEQ?M?wt|TSqh_do;c0N}4mw#87cpStP0YS? z^!{ewQd65}W@TJWLO9+1n0K!l@%&)m9A{&;`(U(I5`&Gaubp(R8{N&$IG+U3)>xW% zR5)aw@jid)9_{ZDt6*@(ssjN42&Mu6h@c}Dv~c&YVG8PbLG{zo#KxY(*4e^pU(3!J zPZM9P%}0>gVGNsz9UrN;jiavZ@g^#8B=*xW#?HF_v1TY|Y4brxd#Ww+t zU|#Da!MIyZ7*4Q-#qS5lQCMtrWaJEz%@ZH&aRa!_)cpkH|QS!gW~yAlXqlk?UGH#G6ajR%3F(cqCKDa01B zgGY>E8IuALxY236+rNeZbm7lXt&e$MOTaB4&I;p0OQA-3Tf7p_23DX~t7{99eF~N* z-s-wi&ErkwJ)Upe!0Q1f_ycVczOZH2)cgGnVSPS%ycuhe!0g$2nRWT&Irp(<9v9)vP?0rbzQ9*VX z`}TFsG+9lGH{vb`022h}THxwYvnRGoGcT3@z-vz8ieVATyhZZlXenV&;SDp9pp%y9+bRS*O=`hM8kG zOELpHrF<8v7d#HgUQp4MCG2KZ?}@Z(Z|^aH8Q((d6!Sc>uF5~MoisX3RQ9qwwb#IT zQx2c_WGjbzYz-A&DN>OqB9JazInWAm;xNzqsgXO&vLM5$L@xs;eA*3K&Pyb`#&w*4 zS^9v=bQC?zoCsP&_^pifm~iDf-dvMTKwSHk*G`Q)T8?r_!DN)D;kF>G{t`CuZjl6N zxD=eU_H))6iP5|;Du%K*?DDsCSO`~CVk zCxUrQfokKNt*@(DnuU{i#zps(j&>7NO=Lk42Z&~GYhl0<_9+abwW(O6J58 ztgw&DqcwPtutG~qAbIi=o0Fuhw&IWNJ~MlPy*`!T#)K&zA1@E({Z;x)??uWUy~ER* zq&0aBw~?KhFv>S;lb~HnAK!1qB{^?4<~MWv^W8>fQVri&Kq_iFu4W*jOI}TOo7J&m zOQ%CiemCN`dn0{D-^qo&D=$2kx1B!v-Yj0+TKNn4udLQ|8C>7Sir*J_aCc)QiCG)W z!H3cZ(|YR?^$BRajX(P4>d_ZTxNT4o8au9+m|!wr>*aG1hjR7NjdtgQbXhu{)w!~W zs-gx<8>n~TUc&+|gnmZ^bDP{zh}J6j%6a`6rh6?`aUde8b>7?m+}-nrpZAKZDZ;?w z!~G18BLgHe1a+#O7sV$-E!1IX%?J&1N)%yG-yY> zc5*f6gi?4oKxO|gxMKhrE)TTv5olB7e>Ltw^$-02CI2_cfA#{ff>1Py696#OL;zs@ z#k4~GJ7MYWWpD8-UHPyN9)3{rH$DI+UHvccgU?Go#^nF>#vc+q zbaej^#H9S2;J@77hg=VR$3I+QssHBs+mn3A^3c`#!;+KsPp|ytcs;~Fv JBoolean} -import java.lang.{Long => JLong} -import scala.io.Source - -object TimelinesOnlineAggregationUtils { - val TweetLabels: Set[Feature[JBoolean]] = CombinedFeatures.EngagementsRealTime - val TweetCoreLabels: Set[Feature[JBoolean]] = CombinedFeatures.CoreEngagements - val TweetDwellLabels: Set[Feature[JBoolean]] = CombinedFeatures.DwellEngagements - val TweetCoreAndDwellLabels: Set[Feature[JBoolean]] = TweetCoreLabels ++ TweetDwellLabels - val PrivateEngagementLabelsV2: Set[Feature[JBoolean]] = CombinedFeatures.PrivateEngagementsV2 - val ProfileCoreLabels: Set[Feature[JBoolean]] = ProfileLabelFeatures.CoreEngagements - val ProfileNegativeEngagementLabels: Set[Feature[JBoolean]] = - ProfileLabelFeatures.NegativeEngagements - val ProfileNegativeEngagementUnionLabels: Set[Feature[JBoolean]] = Set( - ProfileLabelFeatures.IS_NEGATIVE_FEEDBACK_UNION) - val SearchCoreLabels: Set[Feature[JBoolean]] = SearchLabelFeatures.CoreEngagements - val TweetNegativeEngagementLabels: Set[Feature[JBoolean]] = - CombinedFeatures.NegativeEngagementsRealTime - val TweetNegativeEngagementDontLikeLabels: Set[Feature[JBoolean]] = - CombinedFeatures.NegativeEngagementsRealTimeDontLike - val TweetNegativeEngagementSecondaryLabels: Set[Feature[JBoolean]] = - CombinedFeatures.NegativeEngagementsSecondary - val AllTweetNegativeEngagementLabels: Set[Feature[JBoolean]] = - TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels ++ TweetNegativeEngagementSecondaryLabels - val UserAuthorEngagementLabels: Set[Feature[JBoolean]] = CombinedFeatures.UserAuthorEngagements - val ShareEngagementLabels: Set[Feature[JBoolean]] = CombinedFeatures.ShareEngagements - val BookmarkEngagementLabels: Set[Feature[JBoolean]] = CombinedFeatures.BookmarkEngagements - val AllBCEDwellLabels: Set[Feature[JBoolean]] = - CombinedFeatures.TweetDetailDwellEngagements ++ CombinedFeatures.ProfileDwellEngagements ++ CombinedFeatures.FullscreenVideoDwellEngagements - val AllTweetUnionLabels: Set[Feature[JBoolean]] = Set( - CombinedFeatures.IS_IMPLICIT_POSITIVE_FEEDBACK_UNION, - CombinedFeatures.IS_EXPLICIT_POSITIVE_FEEDBACK_UNION, - CombinedFeatures.IS_ALL_NEGATIVE_FEEDBACK_UNION - ) - val AllTweetLabels: Set[Feature[JBoolean]] = - TweetLabels ++ TweetCoreAndDwellLabels ++ AllTweetNegativeEngagementLabels ++ ProfileCoreLabels ++ ProfileNegativeEngagementLabels ++ ProfileNegativeEngagementUnionLabels ++ UserAuthorEngagementLabels ++ SearchCoreLabels ++ ShareEngagementLabels ++ BookmarkEngagementLabels ++ PrivateEngagementLabelsV2 ++ AllBCEDwellLabels ++ AllTweetUnionLabels - - def addFeatureFilterFromResource( - prodGroup: AggregateGroup, - aggRemovalPath: String - ): AggregateGroup = { - val resource = Some(Source.fromResource(aggRemovalPath)) - val lines = resource.map(_.getLines.toSeq) - lines match { - case Some(value) => prodGroup.copy(aggExclusionRegex = value) - case _ => prodGroup - } - } -} - -trait TimelinesOnlineAggregationDefinitionsTrait extends OnlineAggregationConfigTrait { - import TimelinesOnlineAggregationUtils._ - - def inputSource: AggregateSource - def ProductionStore: AggregateStore - def StagingStore: AggregateStore - - val TweetFeatures: Set[Feature[_]] = Set( - ClientLogEventDataRecordFeatures.HasConsumerVideo, - ClientLogEventDataRecordFeatures.PhotoCount - ) - val CandidateTweetSourceFeatures: Set[Feature[_]] = Set( - ClientLogEventDataRecordFeatures.FromRecap, - ClientLogEventDataRecordFeatures.FromRecycled, - ClientLogEventDataRecordFeatures.FromActivity, - ClientLogEventDataRecordFeatures.FromSimcluster, - ClientLogEventDataRecordFeatures.FromErg, - ClientLogEventDataRecordFeatures.FromCroon, - ClientLogEventDataRecordFeatures.FromList, - ClientLogEventDataRecordFeatures.FromRecTopic - ) - - def createStagingGroup(prodGroup: AggregateGroup): AggregateGroup = - prodGroup.copy( - outputStore = StagingStore - ) - - // Aggregate user engagements/features by tweet Id. - val tweetEngagement30MinuteCountsProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = TweetLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate user engagements/features by tweet Id. - val tweetVerifiedDontLikeEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v6", - preTransforms = Seq(RichRemoveUnverifiedUserTransform), - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val tweetNegativeEngagement6HourCounts = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v2", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = TweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val tweetVerifiedNegativeEngagementCounts = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v7", - preTransforms = Seq(RichRemoveUnverifiedUserTransform), - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = TweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val promotedTweetEngagementRealTimeCounts = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v3.is_promoted", - preTransforms = Seq( - DownsampleTransform( - negativeSamplingRate = 0.0, - keepLabels = Set(ClientLogEventDataRecordFeatures.IsPromoted))), - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = TweetCoreAndDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(2.hours, 24.hours), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate total engagement counts by tweet Id for non-public - * engagements. Similar to EB's public engagement counts. - */ - val tweetEngagementTotalCountsProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = TweetLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val tweetNegativeEngagementTotalCounts = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v2", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = TweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by viewer's user id. - */ - val userEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_aggregates_v1", - keys = Set(SharedFeatures.USER_ID), - features = TweetFeatures, - labels = TweetLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by viewer's user id. - */ - val userEngagementRealTimeAggregatesV2 = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_aggregates_v2", - keys = Set(SharedFeatures.USER_ID), - features = ClientLogEventDataRecordFeatures.TweetFeaturesV2, - labels = TweetCoreAndDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate author's user state features grouped by viewer's user id. - */ - val userEngagementAuthorUserStateRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_aggregates_v3", - preTransforms = Seq.empty, - keys = Set(SharedFeatures.USER_ID), - features = AuthorFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetCoreAndDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate author's user state features grouped by viewer's user id. - */ - val userNegativeEngagementAuthorUserStateRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_aggregates_v4", - preTransforms = Seq.empty, - keys = Set(SharedFeatures.USER_ID), - features = AuthorFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by viewer's user id, with 48 hour halfLife. - */ - val userEngagement48HourRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_aggregates_v5", - keys = Set(SharedFeatures.USER_ID), - features = TweetFeatures, - labels = TweetLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(48.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate author's user state features grouped by viewer's user id. - */ - val userNegativeEngagementAuthorUserState72HourRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_aggregates_v6", - preTransforms = Seq.empty, - keys = Set(SharedFeatures.USER_ID), - features = AuthorFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(72.hours), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate features grouped by source author id: for each author, aggregate features are created - * to quantify engagements (fav, reply, etc.) which tweets of the author has received. - */ - val authorEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_author_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = TweetLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate features grouped by source author id: for each author, aggregate features are created - * to quantify negative engagements (mute, block, etc.) which tweets of the author has received. - * - * This aggregate group is not used in Home, but it is used in Follow Recommendation Service so need to keep it for now. - * - */ - val authorNegativeEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_author_aggregates_v2", - keys = Set(TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = TweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate features grouped by source author id: for each author, aggregate features are created - * to quantify negative engagements (don't like) which tweets of the author has received from - * verified users. - */ - val authorVerifiedNegativeEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_author_aggregates_v3", - preTransforms = Seq(RichRemoveUnverifiedUserTransform), - keys = Set(TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by topic id. - */ - val topicEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_topic_aggregates_v1", - keys = Set(TimelinesSharedFeatures.TOPIC_ID), - features = Set.empty, - labels = TweetLabels ++ AllTweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate user engagements / user state by topic id. - */ - val topicEngagementUserStateRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_topic_aggregates_v2", - keys = Set(TimelinesSharedFeatures.TOPIC_ID), - features = UserFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetCoreAndDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate user negative engagements / user state by topic id. - */ - val topicNegativeEngagementUserStateRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_topic_aggregates_v3", - keys = Set(TimelinesSharedFeatures.TOPIC_ID), - features = UserFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by topic id like real_time_topic_aggregates_v1 but 24hour halfLife - */ - val topicEngagement24HourRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_topic_aggregates_v4", - keys = Set(TimelinesSharedFeatures.TOPIC_ID), - features = Set.empty, - labels = TweetLabels ++ AllTweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate user engagements / user state by tweet Id. - val tweetEngagementUserStateRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v3", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = UserFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetCoreAndDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate user engagements / user gender by tweet Id. - val tweetEngagementGenderRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v4", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = UserFeaturesAdapter.GenderBooleanFeatures, - labels = - TweetCoreAndDwellLabels ++ TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate user negative engagements / user state by tweet Id. - val tweetNegativeEngagementUserStateRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v5", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = UserFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate user negative engagements / user state by tweet Id. - val tweetVerifiedNegativeEngagementUserStateRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_aggregates_v8", - preTransforms = Seq(RichRemoveUnverifiedUserTransform), - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = UserFeaturesAdapter.UserStateBooleanFeatures, - labels = TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet engagement labels and candidate tweet source features grouped by user id. - */ - val userCandidateTweetSourceEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_candidate_tweet_source_aggregates_v1", - keys = Set(SharedFeatures.USER_ID), - features = CandidateTweetSourceFeatures, - labels = TweetCoreAndDwellLabels ++ NegativeEngagementsRealTimeDontLike, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet engagement labels and candidate tweet source features grouped by user id. - */ - val userCandidateTweetSourceEngagement48HourRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_candidate_tweet_source_aggregates_v2", - keys = Set(SharedFeatures.USER_ID), - features = CandidateTweetSourceFeatures, - labels = TweetCoreAndDwellLabels ++ NegativeEngagementsRealTimeDontLike, - metrics = Set(CountMetric), - halfLives = Set(48.hours), - outputStore = ProductionStore, - includeAnyFeature = false, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by viewer's user id on Profile engagements - */ - val userProfileEngagementRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "profile_real_time_user_aggregates_v1", - preTransforms = Seq(IsNewUserTransform), - keys = Set(SharedFeatures.USER_ID), - features = TweetFeatures, - labels = ProfileCoreLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val NegativeEngagementsUnionTransform = RichITransform( - BinaryUnion( - featuresToUnify = ProfileNegativeEngagementLabels, - outputFeature = ProfileLabelFeatures.IS_NEGATIVE_FEEDBACK_UNION - )) - - /** - * Aggregate tweet features grouped by viewer's user id on Profile negative engagements. - */ - val userProfileNegativeEngagementRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "profile_negative_engagement_real_time_user_aggregates_v1", - preTransforms = Seq(NegativeEngagementsUnionTransform), - keys = Set(SharedFeatures.USER_ID), - features = Set.empty, - labels = ProfileNegativeEngagementLabels ++ ProfileNegativeEngagementUnionLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 72.hours, 14.day), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by viewer's and author's user ids and on Profile engagements - */ - val userAuthorProfileEngagementRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "user_author_profile_real_time_aggregates_v1", - keys = Set(SharedFeatures.USER_ID, TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = ProfileCoreLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours, 72.hours), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate tweet features grouped by viewer's and author's user ids and on negative Profile engagements - */ - val userAuthorProfileNegativeEngagementRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "user_author_profile_negative_engagement_real_time_aggregates_v1", - preTransforms = Seq(NegativeEngagementsUnionTransform), - keys = Set(SharedFeatures.USER_ID, TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = ProfileNegativeEngagementUnionLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 72.hours, 14.day), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val newUserAuthorEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_new_user_author_aggregates_v1", - preTransforms = Seq(IsNewUserTransform), - keys = Set(SharedFeatures.USER_ID, TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = TweetCoreAndDwellLabels ++ Set( - IS_CLICKED, - IS_PROFILE_CLICKED, - IS_PHOTO_EXPANDED - ), - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val userAuthorEngagementRealTimeAggregatesProd = { - // Computing user-author real-time aggregates is very expensive so we - // take the union of all major negative feedback engagements to create - // a single negtive label for aggregation. We also include a number of - // core positive engagements. - val BinaryUnionNegativeEngagements = - BinaryUnion( - featuresToUnify = AllTweetNegativeEngagementLabels, - outputFeature = IS_NEGATIVE_FEEDBACK_UNION - ) - val BinaryUnionNegativeEngagementsTransform = RichITransform(BinaryUnionNegativeEngagements) - - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_author_aggregates_v1", - preTransforms = Seq(BinaryUnionNegativeEngagementsTransform), - keys = Set(SharedFeatures.USER_ID, TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = UserAuthorEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 1.day), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - } - - /** - * Aggregate tweet features grouped by list id. - */ - val listEngagementRealTimeAggregatesProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_list_aggregates_v1", - keys = Set(ListFeatures.LIST_ID), - features = Set.empty, - labels = - TweetCoreAndDwellLabels ++ TweetNegativeEngagementLabels ++ TweetNegativeEngagementDontLikeLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate features grouped by topic of tweet and country from user's location - val topicCountryRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_topic_country_aggregates_v1", - keys = Set(TimelinesSharedFeatures.TOPIC_ID, UserFeaturesAdapter.USER_COUNTRY_ID), - features = Set.empty, - labels = - TweetCoreAndDwellLabels ++ AllTweetNegativeEngagementLabels ++ PrivateEngagementLabelsV2 ++ ShareEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 72.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate features grouped by TweetId_Country from user's location - val tweetCountryRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_country_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID, UserFeaturesAdapter.USER_COUNTRY_ID), - features = Set.empty, - labels = TweetCoreAndDwellLabels ++ AllTweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = true, - includeTimestampFeature = false, - ) - - // Additional aggregate features grouped by TweetId_Country from user's location - val tweetCountryPrivateEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_country_aggregates_v2", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID, UserFeaturesAdapter.USER_COUNTRY_ID), - features = Set.empty, - labels = PrivateEngagementLabelsV2 ++ ShareEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 72.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Aggregate features grouped by TweetId_Country from user's location - val tweetCountryVerifiedNegativeEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_country_aggregates_v3", - preTransforms = Seq(RichRemoveUnverifiedUserTransform), - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID, UserFeaturesAdapter.USER_COUNTRY_ID), - features = Set.empty, - labels = AllTweetNegativeEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, Duration.Top), - outputStore = ProductionStore, - includeAnyLabel = true, - includeTimestampFeature = false, - ) - - object positionTranforms extends IsPositionTransform { - override val isInPositionRangeFeature: Seq[PositionCase] = - Seq(PositionCase(1, IS_TOP_ONE), PositionCase(5, IS_TOP_FIVE), PositionCase(10, IS_TOP_TEN)) - override val decodedPositionFeature: Feature.Discrete = - ClientLogEventDataRecordFeatures.InjectedPosition - } - - val userPositionEngagementsCountsProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_position_based_user_aggregates_v1", - keys = Set(SharedFeatures.USER_ID), - features = Set(IS_TOP_ONE, IS_TOP_FIVE, IS_TOP_TEN), - labels = TweetCoreAndDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - preTransforms = Seq(positionTranforms), - includeAnyLabel = false, - includeAnyFeature = false, - includeTimestampFeature = false, - ) - - val userPositionEngagementsSumProd = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_position_based_user_sum_aggregates_v2", - keys = Set(SharedFeatures.USER_ID), - features = Set(LOG_POSITION), - labels = TweetCoreAndDwellLabels, - metrics = Set(SumMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - preTransforms = - Seq(new LogTransform(ClientLogEventDataRecordFeatures.InjectedPosition, LOG_POSITION)), - includeAnyLabel = false, - includeAnyFeature = false, - includeTimestampFeature = false, - ) - - // Aggregates for share engagements - val tweetShareEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_share_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = ShareEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val userShareEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_share_aggregates_v1", - keys = Set(SharedFeatures.USER_ID), - features = Set.empty, - labels = ShareEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val userAuthorShareEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_author_share_aggregates_v1", - keys = Set(SharedFeatures.USER_ID, TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = ShareEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val topicShareEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_topic_share_aggregates_v1", - keys = Set(TimelinesSharedFeatures.TOPIC_ID), - features = Set.empty, - labels = ShareEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val authorShareEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_author_share_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = ShareEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - // Bookmark RTAs - val tweetBookmarkEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_bookmark_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = BookmarkEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val userBookmarkEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_bookmark_aggregates_v1", - keys = Set(SharedFeatures.USER_ID), - features = Set.empty, - labels = BookmarkEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val userAuthorBookmarkEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_author_bookmark_aggregates_v1", - keys = Set(SharedFeatures.USER_ID, TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = BookmarkEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyFeature = true, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val authorBookmarkEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_author_bookmark_aggregates_v1", - keys = Set(TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = Set.empty, - labels = BookmarkEngagementLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate on user level dwell labels from BCE - */ - val userBCEDwellEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_user_bce_dwell_aggregates", - keys = Set(SharedFeatures.USER_ID), - features = Set.empty, - labels = AllBCEDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - /** - * Aggregate on tweet level dwell labels from BCE - */ - val tweetBCEDwellEngagementsRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_tweet_bce_dwell_aggregates", - keys = Set(TimelinesSharedFeatures.SOURCE_TWEET_ID), - features = Set.empty, - labels = AllBCEDwellLabels, - metrics = Set(CountMetric), - halfLives = Set(30.minutes, 24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeTimestampFeature = false, - ) - - val ImplicitPositiveEngagementsUnionTransform = RichITransform( - BinaryUnion( - featuresToUnify = CombinedFeatures.ImplicitPositiveEngagements, - outputFeature = CombinedFeatures.IS_IMPLICIT_POSITIVE_FEEDBACK_UNION - ) - ) - - val ExplicitPositiveEngagementsUnionTransform = RichITransform( - BinaryUnion( - featuresToUnify = CombinedFeatures.ExplicitPositiveEngagements, - outputFeature = CombinedFeatures.IS_EXPLICIT_POSITIVE_FEEDBACK_UNION - ) - ) - - val AllNegativeEngagementsUnionTransform = RichITransform( - BinaryUnion( - featuresToUnify = CombinedFeatures.AllNegativeEngagements, - outputFeature = CombinedFeatures.IS_ALL_NEGATIVE_FEEDBACK_UNION - ) - ) - - /** - * Aggregate features for author content preference - */ - val authorContentPreferenceRealTimeAggregates = - AggregateGroup( - inputSource = inputSource, - aggregatePrefix = "real_time_author_content_preference_aggregates", - preTransforms = Seq( - ImplicitPositiveEngagementsUnionTransform, - ExplicitPositiveEngagementsUnionTransform, - AllNegativeEngagementsUnionTransform), - keys = Set(TimelinesSharedFeatures.SOURCE_AUTHOR_ID), - features = - ClientLogEventDataRecordFeatures.AuthorContentPreferenceTweetTypeFeatures ++ AuthorFeaturesAdapter.UserStateBooleanFeatures, - labels = AllTweetUnionLabels, - metrics = Set(CountMetric), - halfLives = Set(24.hours), - outputStore = ProductionStore, - includeAnyLabel = false, - includeAnyFeature = false, - ) - - val FeaturesGeneratedByPreTransforms = Set(LOG_POSITION, IS_TOP_TEN, IS_TOP_FIVE, IS_TOP_ONE) - - val ProdAggregateGroups = Set( - tweetEngagement30MinuteCountsProd, - tweetEngagementTotalCountsProd, - tweetNegativeEngagement6HourCounts, - tweetNegativeEngagementTotalCounts, - userEngagementRealTimeAggregatesProd, - userEngagement48HourRealTimeAggregatesProd, - userNegativeEngagementAuthorUserStateRealTimeAggregates, - userNegativeEngagementAuthorUserState72HourRealTimeAggregates, - authorEngagementRealTimeAggregatesProd, - topicEngagementRealTimeAggregatesProd, - topicEngagement24HourRealTimeAggregatesProd, - tweetEngagementUserStateRealTimeAggregatesProd, - tweetNegativeEngagementUserStateRealTimeAggregates, - userProfileEngagementRealTimeAggregates, - newUserAuthorEngagementRealTimeAggregatesProd, - userAuthorEngagementRealTimeAggregatesProd, - listEngagementRealTimeAggregatesProd, - tweetCountryRealTimeAggregates, - tweetShareEngagementsRealTimeAggregates, - userShareEngagementsRealTimeAggregates, - userAuthorShareEngagementsRealTimeAggregates, - topicShareEngagementsRealTimeAggregates, - authorShareEngagementsRealTimeAggregates, - tweetBookmarkEngagementsRealTimeAggregates, - userBookmarkEngagementsRealTimeAggregates, - userAuthorBookmarkEngagementsRealTimeAggregates, - authorBookmarkEngagementsRealTimeAggregates, - topicCountryRealTimeAggregates, - tweetCountryPrivateEngagementsRealTimeAggregates, - userBCEDwellEngagementsRealTimeAggregates, - tweetBCEDwellEngagementsRealTimeAggregates, - authorContentPreferenceRealTimeAggregates, - authorVerifiedNegativeEngagementRealTimeAggregatesProd, - tweetVerifiedDontLikeEngagementRealTimeAggregatesProd, - tweetVerifiedNegativeEngagementCounts, - tweetVerifiedNegativeEngagementUserStateRealTimeAggregates, - tweetCountryVerifiedNegativeEngagementsRealTimeAggregates - ).map( - addFeatureFilterFromResource( - _, - "com/twitter/timelines/prediction/common/aggregates/real_time/aggregates_to_drop.txt")) - - val StagingAggregateGroups = ProdAggregateGroups.map(createStagingGroup) - - /** - * Contains the fully typed aggregate groups from which important - * values can be derived e.g. the features to be computed, halflives etc. - */ - override val ProdAggregates = ProdAggregateGroups.flatMap(_.buildTypedAggregateGroups()) - - override val StagingAggregates = StagingAggregateGroups.flatMap(_.buildTypedAggregateGroups()) - - - override val ProdCommonAggregates = ProdAggregates - .filter(_.keysToAggregate == Set(SharedFeatures.USER_ID)) - - /** - * This defines the set of selected features from a candidate - * that we'd like to send to the served features cache by TLM. - * These should include interesting and necessary features that - * cannot be extracted from LogEvents only by the real-time aggregates - * job. If you are adding new AggregateGroups requiring TLM-side - * candidate features, make sure to add them here. - */ - val candidateFeaturesToCache: Set[Feature[_]] = Set( - TimelinesSharedFeatures.SOURCE_AUTHOR_ID, - RecapFeatures.HASHTAGS, - RecapFeatures.MENTIONED_SCREEN_NAMES, - RecapFeatures.URL_DOMAINS - ) -} - -/** - * This config should only be used to access the aggregate features constructed by the - * aggregation config, and not for implementing an online real-time aggregates job. - */ -object TimelinesOnlineAggregationFeaturesOnlyConfig - extends TimelinesOnlineAggregationDefinitionsTrait { - - private[real_time] case class DummyAggregateSource(name: String, timestampFeature: Feature[JLong]) - extends AggregateSource - - private[real_time] case class DummyAggregateStore(name: String) extends AggregateStore - - override lazy val inputSource = DummyAggregateSource( - name = "timelines_rta", - timestampFeature = SharedFeatures.TIMESTAMP - ) - override lazy val ProductionStore = DummyAggregateStore("timelines_rta") - override lazy val StagingStore = DummyAggregateStore("timelines_rta") - - override lazy val AggregatesToCompute = ProdAggregates ++ StagingAggregates -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationSources.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationSources.docx new file mode 100644 index 0000000000000000000000000000000000000000..1bad79931672c877864e71a5445ec7efe9de4b03 GIT binary patch literal 36742 zcmagFWmufawl<7wa1HM6?hb+A?ruRFcNz~6+=IKjySs!56MR zqZA6m6qk{D=S#F&C)nlFM5QY(aiXuEp_xwxS?rU)p2u`*!M!ILM=G-@y-PSZ2vgIN z;q!i)3!G)Qrk~FcJ>*O*M<*~z>j5m9x-v!sop>k&PDOAGI;=W>hC8=|+(Av{XoPx~ z{?p!=lH1FKpF7!uxW8o9%MufnMy5?VLR$dO*KnhAb*axr4eL`_{guWJbFVVr-uBpXBdOrRVeUWXDriu1^VD4hC)+X&mL%ZP`Trzw| z0I7%CPO!FZTEq=GvWPj=9hZd$i4gq;#-J{3{ppNom6(Jfot-ptNpNWb+BKpJji#$F z<17FMASKtt`K7qB^@pwdmwVwR7ilAZk)v1#G}TlEGgcg)0%RFSjB9b3gX!q9*wzf} zw#Rm*PrBt7Oou_@imC=46xT459q0o*mJI^MGcCIx_8BS2CpEpMEL=B&l>Hp0iGH!v zrkv?C#w_{5jn3$Do&7UGVV@CItw7U!29zK)P=d?=rbu8I(ox(w+|XskTWvyGb*X84G`(c?0}|>W1^@am zXr!{AVNO#6!$xr8_5l431)N<(IaS5IMT2eY%Zam-@^rKP2)V&DaOEz^<3m(cR|Zg_{_w+>kBK^ z^h6oVV$lpJnKtR~3|*6XhxLAMA70-t5zyarUqIm=St1+I&bo`gKKEVX|FbUFtE)K2 zpt{&Xfq|j^y)MQM4u6zIZQOp91-0Xe9!lTkixsS>GH!g}g6NF+I$lkDM)TYl*~d7j zR@NP$??V_C?`P(laQ=G!r-reoMNtdb28B=RSmO_QBTA0z2#wWWhWA$|56GOM%AiZJ zGzQW19Sx_)D(7Js;ayTSm8!!BkklQBxETF;}>?QanEuqn&mJl9C;Fa zR-?}IiBC}0h~6$Yb!I=&axCq1aRg?`MUIIW94=?y-47uAz%eb@5&?d@k#Z={Jf&F$ z!}-#1Tu-7}SE?Cy8FdodttC2~!^;WzB2E)I`kg$<+8EG#jh3wyu;v)sa$8@@AB!w| ziwyP1FShiIEkU;;4y!{Lo6wYs;a58bxcbG-^Dd$C5>gBN%jJ)!{mdGSL=h{3DfP$=dOn@{c=A6{LbyL(~+>gij{K`1GcCDf}MCb774_Eka^EbbU|2Z)nLZ0&DK_6Bn zxIaIz?f@q$-01a7R=$zJ6Z;V%Q-L^DR#AzB8|#N7Dk=6gHcxG zmR_7?1ugEA_Om6C5vH>51UxogVnNZ0MDX+a_M6-1F~D`}U1XW=NwBS>epl#nG~bd#e% z+4Gu&L&7hOa6li7JELWU=Y;87H>&NYI{eWhpb%yH-JM#QBa{`xJIXJ-AP)k2QN`KT zxJ35+TY6<1n0yGMZf)AKWpUCkb2sgpd9o7@rdxt3YG{9#;o}XhF0<7@H~F*Nm;hUS z`}Rcd4y9Q<|3VflRq+i4^`OBr9M6jo6oV$^i(egio7QV0>~KUuh7AfG_M?Uxk@@6w zI~2D>!z9n|>#2Fyd?u|*dFAXq4eZYv*UChrGK+6XxV#x#;0*HT=MT^4Cp=lk5$JhD zG73-%WAUo3NdhCuo5_O+?2D5avh>TJO>_0HB$N_P9WtTm;nM{ts{3Bj{Fd~L>v}0A zdsv!~>XVOZ%`+C{l-M=Wup?X84@h`9S{OJPYeOXE9bYDw`P7daUGcZo3AW*d7~Ay( zl}%<$W1h5I_Dw&)eUojSj}^JT5)dPvRA=LiWs(*s7*y)a7mY^cA${_LSQ+~89=+i` zOA7YXydf6=?CYCXJs+<0u~-nJ4`l?iHmamM_h{%({cnnl4e62bG^rcc39=5C^|RXO z)Ih~Drw2%l?Z9yA1nnOT^oQNq;=;B_LdH15A6sB|wS9gLYH2SU!`JBswILE`DUQ(REc)G7#j%m! zARYk!oWS<}_~>k)m2DifvJrq*wm&BDpZoIPr}3YAbfTzY5DV_-vsZ+^kOa&k`-u0y z@~GPBq^b*jLZnvWZ^idEb=S=p#CHOA@3?%ksqJPbZ&epI_;KkQJ_hncLZD#IhA5e% z3s|D09QV{qtBcxHlECxT^m27B35dzhoYW?LsyO(VDF2L5+e$f5hd|MoYcJA@RTWim zD5V0LR(@c{;P3lc9x4*JK4o#Rm){(h0T`mdYW_ZmO{NoU>_P(?b5uFJ~=0) z(azbyx0`!20>2kn0|bkPc>?jGy?|$Vy(n};D2=-e$bR;FBdf7piv?3K3HNUC6mhn~ znhe!#$jf5(2vHu&x-`{bn~?XDHaynXGl>IU3h*x8un@w#LXpJ;JG_KiHp=6gAC3k4 z&cC7ukWkxUJFk>z>>I7g@~m9XR73GT1bt`zXRf2lvH2sI!N3gEp}|o8m1}1gPg`^6 z-%ADP{F$&LRp;B?otJO;{KGCb7;JdT9xUFCz}UMptM-gto_+S$w{JL~VonVGC`m<# z)m79rK9t5Xv*I9`08Q_T8)f8;|!V+>c1G9?QX|o!KYR=}+fL zH9demmBd%3zZb2e#gyqW|U3fS4m8umdw}I-1Zj;{X@p-D``ezrNP#{_wC7w$= zeCPQFUVDl#&@)1<-G~1KgS0w4_PPcIx-j$CJ41cgeh8Vd}1|7 zjbNbm5FR+I2F%+cPs*lgk=Ua~AW{M~_0kI~*8o7j?K8X#SigVMzn_p^f)%n?Samgr zz@sZ_qd3`o=@4KLCQh!NcAr_(iB)0i3vC`wSgJ&xx4-HCS+nU|g=wm7ZStJ5c(CW_ zT!CFs@)(15-ukp?e5FQfJ&aBm@ql_ryibg#MarxWcJ*D3{@uFgSb4r9Y)VDAj`Y$zQ zk~|`4ao`d}#szF$JumG&7v%U6Yj0ZSJ^@eJC6NHl80Ji?j@afeA&XjkZa7aTujfDQ z=rf3hzN7hIk>0|67xf`Dq>+g%BXM^icH?FPv_JiJ{&;5%NZn>Y9Jg#)_hi0>@w>_$V&I>6X?Cp={ zZQn<23hOuDNDxQc?=UTkBM>5nj8+^9-)d=U1YjiPb$gg%9jNrLQwoDfFdLV;J+=OmoeHHx!7o z2@K$hCT5k78T8AR`g?lfgC#v~7(1eBI-Yw+LybWF#bC2rn4BYS&In`@tT zf4m;Pe7zhR^lE=`^aS3$CcQ13JkI`nK5}3&?s#nx&b(!Qo*stwdIdvSPWNmPf->A} zZ%!G$A$?GZd*U=&3(hY&b#_LUlpm)W&%RATmX5@4>rgw*QfZY90(`5Qe|pB~?)Fjk zzu?q)R+o5aAbCInJYm&f)8E9yG<`&}C4Ikiloo(ro-CU-%fwk6Wv0;Xz8@_1>*^@0 zLvTuywZ>II<$VniGMMx9@$=8vUg!(m{G#bmmBMZ^0w4FRf;@n>X=8R0Ro>Y6eF*Oq zQP_l2T!ntH`DXH}+5S9Cg5{bu4>EONAX6THb4x;xI%PAu&VW9$CQhq7@*+1YpHd9N z+Ov~0M-h8DRkE7Ixv$oAgGt)pa`@3oGbdo<7!mj95u29PP+-nptYXGn?J{<^hoZq8 zxoC;cvARR@c8NbH0n7rb-WW|9BAdpKhX`w_kw?N!`D-}@Jl#~nH?+bo*PU^E&c%{y zIxNgebAJDvje)(G5)U-SL1Hz*vWc5N|IM z()mDXi$2pP@;XE8%VGg!6w_}#&HJyM?s)l%j)b&zWB8+_rnM$2We{)ive%o|jQD6m z-bD#`vnC8o8)QlxdEaguegD=!z1g(Nxq5aMznG@ppM>!F?f&&~fdHpM7A1p)r+dkR zqek7BGao@gjiT%mAJ0-*&9TOy;>BHttvp5b&zw+YcCRgo;fF!5{Qk7I+c^xSkkv>! zo|(9kyoEzljlmXsb%wqRuJ&e=8Pm( zN^FHSz4`AhKf+2WKbszUJvg@V{Yt$lPdQ8?i)jObg_N*0^e%xB(2}$rdjQTpWz;Zj z;D7EP*Ti3Qk7PCsJ>M{1hAiG8#28}wF~M(ZspeR$z|&6kaPd5cWymbiDY}82&R(j3 zhoVFYo{>KY75UX&({YshkDC@S8Ykm~D<7$S%mrK1$oQv{t>P=E<#KXsVT|`Y8~v4CfhTYCH5v}%9K5_$lfXjFiLrP z#7C{g=z<5>_O6`gPbxNt?J`Ng1mu9*q_oi+e=ZReLs;Y~*oo zmP-lm4x{dPv);;(?F4ZxdMyg=^Y~IN2VG&Q|(y3}@Q|l;#tVW@cF@URF_aSUKu(BVmv~ zu&3OlwoX)@YWVnK@jKDe%V8Cil*M!|!z!05D>~j5^{X{Inscs#iAZ>@6+q~sJwSa zhs%icgU@sV^iAhx`&r**?R`Fk9kR-&tENegpXuO_6*N=kevjWBA+NV5nHmNjJ6DGN zf_$HIbASn}iI|YILgqBQwZXNRl&*Q`92sjLpCd68LdVmXdaJpaaoATiiK})C^4Tru zx_@;~rL-5Lq<2?6zBkxq2Y%oYcq7C`6WZpn8EkIZ!QZ5W;bdj8FM51%c==X5x$S`v z5r_B+HqWjROU+R`$##%PjyWmaq!gj>3u-D#ZcgQjw;URL|7?&+hr6fp`8 zqhJBjDC@DCjK)cp`mPbu*-=*?Ode4n$DHZc+tBVxl!K%QtbI#7M8oP_-|T9PQ|opE zqRVrt=c`!@e2mV+JL?;guCJMt`8EeD5rlf?GNlJEujiU)^N=AHn^W;l3bYdK1mA{) z&Lx~HU=CR=sB|#ySKh_9NsjpkFEymELU(}Mx#7f0mP9egj!fcy+F3T(dgA>QpUwUh zxvqp&5VoPEyM=og)rq0te9h%*yXfYziRB8{3GYJ-BeRv%kM1?=7>#od)4*#Wf}P7< z$B@fy+7nJ3eEx%rzo=K{*4l6ezbp`Q2H&Pw2(q)5`fk!#%;7szAr#K z8bIs_7d8&WpmuJoK15O%{c>nW@p(gvDv#Tn$Fay6gcERpoWpG?q|2bU5fq5wu~!qk z;gYcn$`Qa-t&u?tV5Thw*!Ra6&xT%x)*IxlUpz!o1;I>Wi36&_4=0<~2mMvO+xH5Q zbDE6=TnQD5T({vnoV3IMd{Y+?8~$9wh$CdzQpuFp7VmiA1vW1(@#(IdEwX>7s9*;F zU~5>Kcx{(h(nx0ye(~Pd)#Zb_3jfoM9gND#Rw!O12lBHM1!b7uWg1Ygs>?^{*JhvG zXbxqn3vEV=6PG+7DMfzU!oRHeWp#IQULV0(`s*ET#!O^x2))dV&IB2Df_5`dSwO;vQ6T3nFvRF zH)%5Y1|IqEsgCp~V5^R=v2H%zMto~uem8Pl8X}LQ3;=~=zw?#q{3E>Nukg8lhadh9 z41F*gD>;{5Z{6f7nXSwW-J#Tjaa71Ffs#^&a}$3OYg-)X<=Gka zy#!}tDNL!_+7G=m9Y3HWONYu8?Pk9s&F*2wa!wYU8S^~Y%L;j>zwk)1(~O^DwKT`T zK(U15D1 zHq?yYYVN7Je?L6PZ8s%{UJ@K35Ggn5AJRlaYtH zQ>2qNyUT8xWfq^3;*>>v?;g>i7=}us#v!cAxb8Mz!awB4s_wPSsn*%0%gkxw1RdV- z*|%ZXKkBd(PK}bw<=C%0rb+@ABY8LmXuqg-9^=$C|oqzIpPKp!c;@S%=GJ{bwLVM4D6b>t@yRbV8sN7L|W zR%&ON6l5pHD{P+?Z17RH_@)Hfk(RErs48+xlxR7_`35-Y zt{J-d*`czPFgHOfP);drWo1c=7tbRG)V1bVwa9p(Veev(8Pn(q#x!0ZqCD9(dxE`SV<#EyXx>h?+LsB&OBH$US{db6k86unMwcDwy_?u_sic59`r;hj>c zz79gcB@-i56HrOzo%-_+Is&V%1ezC<9Fo`3@>j>!$IFKrKSbj>-%dnI8Y29t4+f6p zt;j=~LHE?5)l+wrhy`i1kDLu~F>AVpcN$flq{+QG;_B+6!H^!TVZc=IjIM=ulmHql z&Wnk@#2RG9&k6Bno?@K5tqdw8$$=v(Ls!d2y@D0!Haq^(0dj<>y#Aw*WH197KcLYJ zej@VMO9S4H7ng-OvO5LTl#^&R19S#`b2|wv`Bj+!N-|5tS-RV6Rz=jkCW@^ci z;xh$a_)J(e*yPHSqSEFhOo2I(e8>hL=!ten!IoesqG$L_R-ZXiQ5~DgyU60bW1g-3 zj<*dwT7f}o6EXq+qfr{+ayexLZ5F|}DeL)_Y4{*!-S(OR1677X0M`m8L>xq_7>N^@ zDxAc-u)z^TGVEC_Z1K2d1+xWc2q#!}^O#>p>=C3NxO-;82M@h>OjQ}As@Y*1%~%KX z&pa4lfM7(mU&XjGU=o%yRA(K(6`_Vz<-;$#sNYI0|#+UVb zVA!Bb$e@y06Gm#|NyKQ=&=i;a+22&|OZ`@STo~B@d~F@djpTfGgY%ef5{l$9Qd9a{~;M zoph}s>MpB{(Qms+xR#7%lv6Sp^{XU7JjK8^&HapdL))@udTLN(0*~dQO8kJCozeKG zoeWUW)Sp2-|1&6Qa*y$5|8jsg+!_7gH`Uh)B-?ZO42<#n0p2L~_g)?72NjZyzx&Mv=)WM62&b~65GXQY&oTYzaYrJf2m_u0u9N_{725bnH?r}MkN9f>W> z`KZ|2d`jEXA*c}O0O_dkM|*O-85e8nqChqeb@D~HGoB^ewFl*tc7*jGO1MTyrb@F< zlXxxnSn-n|S@Hj)Fqd$j&{ZS@WAaahZvRu^WyV$LWZY&2mzQ#`=t;?Yr%|U8J=n{E z-0zGdvsDG}+4nrv2E}`kd&?HoV6|;cp2cf6Go#}+34ia8 zqj+KKZVW&R`y?aG3;_9a))|X$WmEnBN{cedeu;IW-w@G}{v~|yR$#1N@%oQkl}b0` zUVUB$aJ2q_u-K4xB*~S?Ord@>$eU;w8G%(qpKR^el+H2I@v*-Uz;V z-2ywg$J-8_p*MuG6{w%8)v!%!z{}8!-ftZKn_Bh{YIG1atnBa8_eAT)0#dTkAJlGU z;~;8&u0N^2Q({CQ{~y#BT?6nP;n{{8KCK@*jo^0^EO*Y6W&QQM4Zm zV?>a9glQtn)(kjkk(q7V_s4UY7Ejj;^m^%#(Hai1a1@9Z! z+YmAd-`WnxKIYxrFYbKpEP^U7cw*2({_-;lP@6d9yObkJx5BG2o9`#znOS*s;oh_# z%V1fyF$<=ne9|bVNa*U`zpB~TiDFon_KowVpiQvUf!wxOD0y8YWOTrTF*X4HMyzJe zn-rDu7>p8QX@WucxUo?j56bOvoxYF6n#u;aYpk02Lyqk95FnLy3hF?qXK9i;`fTvM?TN4GI+LW6@!ChasyGM(1$S*t( zi5K%(rJ1c^$j^oq!7ojzO>!&D78I97w{>iDRK5twr_DAzVo7iyNz9IUn`<9+)`b1<}N=eib##@w2onp9#Px zZ_^3LJmsi#gGQ5woN2h+2uSui6Unn8%&~%)?EZ1k)x`HDKt!?In;uVM)@%|W;8K=Q zBr_y9!x8l<&HqGh-e;FX-mC1WWE@{%cI9lhlvlpoP*h@8grl+}rL1s6HtCZN?58vl zc8Q+Aw`4wsJ~yxHw#ABndDOWp8Xf!_*p>IJ*&ilW$AftA&s#9|sGMKRVsmoXU{^^hUWZ ze06VU`Q!k+WsRB<@>(*f0aF@FOGlb1be?{{*=rDY?AGk6;^U^FvD1SG(E6J)FNAon z_6+K*?gXzc93&iq_mUav3xd~D%V3Z@DgYA>x-3m7n>4^{*0K*K#GiQDG6=dkgaVrn zbn4iG3?l#&^A7_zhH4>^NhDz|q2>{-yfF)ngP1Udqi5-~<;sH1YDsAf$5sNUBQZO) z$5>oIbUe{)hnO(e8wn6QbB*dw)WEvRLH^z*p+*8YW+B7Cx1m939ly~$L@Qx+LN9)! zF+1GCOb)SYE{(4YAeJMC`1=ok;XaK*tOZa3*PV<`Kjrcmt(lgc;)wuq)g? zL^H^aEe<#MTA+p4fcJvrvvRq0DJ?Szhr!=+!!LKyt&mr7Hy|9^k+)FSFXinYJ zr(jJLmfAtdJ1GMt?*tBZB*3->>YvH8%hvlVc{QE3U0)}c5?KCHh|rI?cTBK7j!!+= z18HrfN}W^cK?CPiN`MZbP6rFU6+gx*N+RK)CNrRX;^XU&69s5j`v_k1zTZ9Hu-B46 zp|H3K;a%|EKw#Kt--w)`ea-9_qmP=f7x2KIf@0U_F#U;q>I>OA zuHlm%=NxY~-AC{kM7P+-Mti=i@_RAGPDgmwZe*73K_dYi6lEr+!5m~Ksw1RG_Crl^#?!r>FB&$; zu57wRWx2`tX-?echz_0sMtPeM}qvkP2oW{^0rzZs1wz7y1qA`BEX1 zg$^L@p>gv_A@iX$5A(d`T(YOpX5D39b3^W%3V=#_q8f4nz~+!SXFn?!%%`*uN?z~- z{5wP=AVhxP*X;9__=#$#wJeryY&?vn-e(43xFsxw1y%GbcCa<{tK&Shu!n7y?l_!# zTcc^YV@9^_+w|lzc475I2qK(cBsYIjVK1lv5J5?RoS06X#zssb%q6F}!obCBn6CEH z8WHL~QZ{~imKaW2KhWf~H~eaN#b~j*d~g7xx?N1MZwb~yxxXk$j(R0t8^L|`(u1vd zYDCnPNSo2YBL+O0Bu>Uj*`NB0P+3zP%@2k70>V+XRi5H{feQBkDf^3afL zoN6Mh1qD49z2(zw_1)XxhsJLV9Z_e`&pq3TJ=*_Ws_AU6Un)54mCYm1E5gzuf91~s zwp9PPh^_nb#rNFKch({-OSys8W^JI;c>!9Px;8-cTE_MhTnIY;`{W$6p=5a#GSjRSJ}TJHTzluzb2?w31_olA3B*mZLh;bd0|O+HfyLxtnX1P>AIt0|W(iw?u8eu= zo7Iz&vd_|-6?i5aBM*v(#Gtp(TRMuvWQcjCSm4C86-IHKY|0ZOQD7T6x{n;@cD1SRrtrQZmbU)$F^PG(86lOn)LTc#G|(5 z#G`V50ekdTCk4g)3s|Ym#Vi_UatI9T`T7Q^TGX+@BaHPd$9SK6AmZEUj{qzgDgqJB z#+2b(xtR(612}2`0hp37Q@Zs5S{O+c3hNoS+Wn=&TmQW4K~xc1IFid^S+%g9RRmht zw{tU*wwiki)T)XIJmgg}WX=J(t}WfNJi5+b>j(UZ@^M@LI!IWuwJ5rIBrI)Z4g);g^xk1W7z^7z$(D^J|E4@$g4w?D0QpDi>{5{ z9g7QHcKI{|;q3yqpn6%SMkrAgNID`&)|`Izm@~7H;BLUYYhG7oF$Y|ck!*;^j_x^<3-(#6$BS3(3WAd1P<3oIkKZ4Z}yfqeb&~@i#2V z-`Z&?Q1ckni~fGsFB$Df%Cmv>-vEw^zX6WI{{V2fa}V5w8g7RhKItKfUfT5FtH@Ar z=&%Tigs|kx3daxLYPq;QL?HltOzrgFZ5dPZ-yQ77MQ|YSL51wS5bAZ@-l+IXfo{;u z0HHI4|CR@$&2T7&B_9qqT(9Hq$qX^iMk1Rx_^@MADcEpCWjvw-!5UTSpY#VDf6*74 zS_*7IgUs)5w*cBBz}xo+IsQAG7IJv^{^c4Qg@DQ*0ri-l*4i0As#?e;n_TF=k%Lu6_n~r2RJO?L{A=N)k}{s3b6PH4)Qi%2gn|?2 zW)v_LlhpTQt;LmxGpeg}z_xvTxL(Ms39;OeIk<;)b&?)O9xPJn;XD_{t60AHdz(e( z`L{@~V@SQDgx)<9scJ^*f4iyP#z?=a-R!l%?P=WT#q|rR32IcT1tBJ9|@Uw>w zrk248g^EZmZCI^k4_iitTRdEgHwhDS^q-u?YkEfdOpD`Vcq}ZnY?&1SLu1b~K5Ui% z4m0^MyE-=JuThr2B$q05DK)63$G*JSc~-pJ*iY7a&qhCfQ#B?hf}EJN_c&_-)2LmF zW2Xg1kAa({l{!^ni+RcB*2%c4RO4JBN8%Qq*HDOsEXr+q$LZ?5bp|2l0wVkLM zVZ;9hDvxwE@7{h<@c3TZozXnN$iy5}NB~Omv8Rx?Dw~a%tt-mH2>yd@-FTb2iTPzk z#S%%z@Yt4bUw9H}JsY?J+4LCH7TMn`3L)&^a~quc0#gafY|}^4iVFS;+tcVZaC|S; zCsd5TF?wlhL&8vL6eVze)6!B-5MHq&B zuO6SW&oj&v$|=1l+H6!1C>-Y2uFPpJ1x(xCy7aAmZ`YcOOmgN<6cq^3KUi#6mYCAp z(;RN23J!*j)0RLB8_E&CIj~J1BzeS|P~&>-^GkeI)U&|7;sdmaQmY9REjCVGY5Je3+81K@OW5YVVlqV)ZU5eaL{cLR>@8j_A< zv%MUkL>h_fM^<}Q?^Y7qp8HOX##WxHL_|pxr)2A~iyM7P-A)YJ5Br@U7o_Qib*55o zL9q%RT@OATn%W_(+NUlVh0UD4rEDgGa4Ppk@sKqn^Bl2U6mn7MK!h|AXy$XOj7%qx z2s$-fPjE|N=qrumUawkS)*i7c8Ui^y0`+-hCn zK{*hj(E2%nSaGh~dh zwOBX=Hn~Tg zwc@RMcvbQ#ikK?sQ1jaxSSRMU9y9ZWNl=f7n;Q@+DGpzMAwaR)XRt)20Q!z9S)f#h!xn|PgwBL0fWyZH+>EpZ{Pcgxz(fKoatptxaCQ0{YvyML*g8f_i?O7$i!ByR8cg{`3-J zg*FIC39ioM*-cW5UtSeZfq;MQ9AgJQ7yW5ia<{2c}d2J7K+hK8v>=ZWJb-hgJtU zq>V74{&dh9R-D+V)Ch-)KOmT*KtwuMp&+M8y+jZchgSSZ`lkaU6zZwOmquJ?_AfKi zpiB(v7Arl4cX|;qRfJ)FycI2qgYY4yAcYn~a3zCo%oIBT#l@`8f*ia};E_Uay5X=9 zGDS)uAPF$+1f;lTla(F>q;MBFJS<)izoGo|-oBA%;4CjE7?^W43>e-&@9k?^xqOne zurN1u`SS|DuYO9tRNcwb16JeFpkh`s80qM^?-V-3kiq!wMe6OnPBep*%h(MP&w z&@FzEY=88T80nGV6W~``k@vB!?9Ri;VfU|ouO6OVPrj||m0ZVnoA2JZ?)U9mflC5a z3)!1~S7(O10P4-PliP@!-5t+*gRZyz>AlnRw}-R0$Jb-`_LuDG@pb*nr<>FE>S~m; zv+P^Y)&7mnRY3tpL+tkM&I+QY^!5GOR{%o^o z>ni2Ye#FgL#QIBVYYLK~4Rb{3)tf6!kj&+swXfCgZ8TT)xU19Uti@B^61AVbFm?A5 z(9`>c%j(Lt*3ef^u=>`o$nGJ<0_f-W)}-&}ZoRuY?px6Pz|QBEpwYu>-;a*;dPf$FNq9f+HsxdSS&05I` zT^(Hf;a7!px%Rqy@qu}In7`WIk!K4xt|5G!*~6X`aOFd-eeRodoMw9f)Hq)425e(ovi4!VI)@gqLgoE+^o5;wyiGGRhr`8O)=+S{u)8QoCI=c`9wC@Z@w z(8Yx(7TV{1oh(|HPAuE!$-LS42xX^*3vt-|9%@!Ckzvb+=U>`0Zq^M))w`LqHaGdF zCQBcxu76yaygc|gwZ7hN64%|O@?NvDKD+{JUvB$wExKoK}-yLnY-i?yo zZnxl2;xGumGKzSXa9x8{$@2{PjRtn%fqXyl@7*k{4V0Sr@G50hJ4 zO3Xzo&P{zS$%I$tR~>Y_O%EkkskduU&B|UEi9WOBhTDBwM#{Mdx&;w;Wv};yfSL}s zKux%yCidGKVQ(#h*RF?c>35vnRkzdQD>ru1wHaBrsqKc?tAht8J2yX>_Mo|oj?x~^ zZyl%IXT<~4Uu!n)Rc>`n#~tBpC7G)gBi5}o0Z}GAKzZ$r_08t;VIA-M_?OC|KIZ9& z(7oAx&{e_CC)bBzgR;16Zg=8nf)Zd4yw_gw{6X=HeqSiDC&MEpWUu*;;(2>RK<chXjQ+#5FCTwp{P0Nc3W}#wj_l}*0Rqo^bLJ3UJ-jgQ<5J8GHg$P>YOS;e%Xts3_3z+V@ zKv{{^Du27QCzoY!`DsVZQ zp&h>Ftw8X|&Detzz*sedAqNG6z&QV*^)E>)5J!w?0MIaa&@h|7hV=mK5w}<*8-L@h zL-4%&{u}4-1ODc@MydgNPM2&0Gz=Xy?6);!8>e!aN95b9%jl<&J<>g0s^@B%gbpyE z&zv8lFk|!h4dn1KBc{gmG@ViM4$`$z{e#o+os7S3AOWj)dCYYA&_$L;Zyuhr-6z~=jr%`Io;@GduEvHLg*&g;F$1Kf#| z_s^HL%q}c}%=V3^pG;M-P3>l1vZ{#Q?X(KJ?j9o%Mb2$5?-?ivvY2g7-rzTtzr;kC zRlK$`b#C8W#`yjmJ(zzSfB3O{{cKe`spmu(b`_%9ddibA<%5>`d}H3~^TONO?H*z( zT)8l=f4gTxm~QvocjJfu)U11A3g@ZA&AweWP~u_sY&wO%bxrJ)d~9v8ax=wu zwe4PUu(|T*=y!mwGwA#4Y8ug$-)dU4>1mAT=>_rkm#t@pD&a51uu#M+{J*fy&TvBI zcf5Gkac6noA4Hl7WoKe4mPf!(g4r8Cs9PSM9|xEQT8~RRl;z21sstln+ z-0@sPct%LRSM7o$6jT1Dwy3?|b^c1hZRbQ-=pZNk`DK?c)6-C~w`(^+;I(!H$<=Au z=i&J|Mp7t!4|t{XGP^rg_uL?Cz(pWe#`N5>e8$a8z-W&GxSiujjaI+tQXKZ!Y6W^f zw5(;B#1%UBi`ys1*9uVC=MqV!R{l7cuFRUgn!;&>ex^b^GHy`hRq7lkZst{D zKd$N7xjb)@b#M(s!}-91b7|%_g>n#ftZ&TC@T+N}u*}Ju&kA$~TRO;qPI1jR3>&{PQnGmp5%))Cnv4v<4TNeBHO6)X zDpNl$R3s2Wqj?i{{fM$4+jr9FxAw7b2Z|P5eMJW}D9M=IOn96fFD0c$OzK~JGGsRb zcjuuCDBex#o4shLbmU!93rw~zG?fbi{U2EUk}HhxuRX^3=&JWpsSdPeqIg;5WM$^*K2xW9PFF+zpl58h`L~Hr7H*33j7q8b`&X;CNNWCoas0CtYAg?_ z><2%BpZVP2xsmv8&prjD`JCIxZrKXRb$Gk-LIbk;IK6^RWAyt~)Cca2UDc2gB7`-a zr*(P-_-BbHx7`}t9QW>3@u$D9R}Fhp8k3xz3&dqk`ZLU^u5J!HN{63abjBX8zk1wA{1=t1{tu7cM0Y;L5qOD8r)_k7M{{@(gc0}Ybb_4E*} zv7>3i&2;`D#C@T?v*PIO32)!LN2!#n=({<8v-Oz)-%`^!^I|#l#I|tlyU9)6W>Vx9 z^XVxX?B1;^VSuuN!4)>~*LF7!UdMN*AO5H8J@#M5TZF#bswQh9g|0ceJQVNSj&D?#nyoG!#4>#zH+1&w zY=}84pMa2P()@L+pp8FZCwJ(jQtAJ#I#V_H;#}SJ+tvKT6VsY)F8Z0lR{mYTwu3m+;zrQ52LyG>gJDjx+f(yAEsK1toaTAriV0}SuTv!h@FG!M28k<@}$u5 zv8U>k&lFY>-KDf78?&-+S2jaN>nT&|n$Mvp_i4h-^^eli_$JHGGN~n{$P$+mUL2WJ z^%dKaU?SGfuP&h>2Me@NnV0*{y6)I#ae(@fXf|Lp+#iR?;+L-_^WSN|nHpX6{512KS}*r4YxSZV)qc#eC|Rs~2HS!E?UsS%_c}82 z7BKm=qX3pO6{FG8M?i4nYu5t>Txo_b8KizE#7a#Y3=UuW0q@43otOYSeDec&l&omc zv)9}S39;9fx!POD?&}K#@W+HmWAX_D9K4Z6PZw+6E+s5B5qBlRunsc2oqHVo0=h_9 z$iYXC$lQiYa4VVBU%Nefcxw@7A-j^cgpH^fdkV4uYi#%zgr87*g79n~Q}7$9ZqrxcVuhqzB!U;^(Nxmcztwz3b7wiq-CYdtAD7 zC$b~+@i~r=80lzD+w+2kwA0CGG`Vlx2*qdB_G5tLgct&I`*3|troZNw(N#>UM)Lku z2s?RtZTH<3f<>OT=LaT?>0q(HoEV(8U6INK5<_9Kqm5sG3oFb@$x0QU>mW}ATvf-| z($0pK00P97f|UoQ4#*t^rFkR6?(7r!rm*yV_lZ{PL`j#T#gPqTS{UY_{|ud z;FD#P8~BEGb_fIAr<}Dhz(*DtXltiv9>)%J*Sq4tY-G;M2O|6`A=@?N-pH&Ma@*kb z;&$}9*pd$xntEr;ls)##d^hg!maBltPpFkVz{f`Bc;7E`fOc) zc+0)tR`A#VKRW-`m`O z-+FX<$hBm9afR+|1hl2zf&FN(Vo7eD$>B$g&1{WbIlZc^ru1A9*`&{3Zbq>WA+?t@ zp&jx6rm#x=#T^7j7licE^TxCaP+KUkiDf(GVTH#aC;m+d7^qdQB zH7{-r;Wa!Vuw2&#XVHNQsc6+mR}?s}R;EA?ZB6N}x>4KSTbPLx-)m4s_L$hM<~*&& zyiS>^hI6Qfbx;rtZH+> zTW!W{BjD2h`<|VGx#MC{?1!7Xje@5QaPO4r@PMw(fNr9qObz+2`ylOfIre9F8x2pJ zH1Lq`{w>{{AcbazWu7+4Yg>(5coG#~-EGz;@f3%cZpa#Nt+vcci5kWRb#3lDn+3LR z(;a{mcdN%Ov{vGUx_1#S7bBUvIO)4Nr$EJyh1a+6{N~tL)ViA|4j!}}qRCu7bv0j@ zMIR?)=lX=0R;OlrN=G0&RLeM2`?Y$L82~A|+uXwLyA=gG@azga6u>)7%Q_&s^v&|l zwzNVSHX$I;I$Zu-UouHf{lZgwm1TyW*vBiz_nxwFLyX6)c09ZA>VTIKDrc1=*B;G% z{>EhI^{Y5lV{jt}>LHk@@f+`}- zVN$CNqcatsll(Q<0_{jlDcbzUL^a)f&U?GPf(gi@YRTl`m{akJo7J1K)#poHk&_2f zjM!5mlB=Kr={u3j**c`>3`Dij%!_&H$%wNlV!z zmln)oZq#BG{PkT9pP?X9krqoQ7`@}3?0!95(z2+~J!GmHiC5aL0ze61-WdT#7)pZ( zA@|6q#IAiK%|)uDARuDwEJGLzvxxgN9jg;7)zd_m02UCKMNt>LLlzCcuIWAyVSAx5 zw@?^5xd?MH2n>q;v=TZQ#yHGI*5 z9QjhgL?%AFhatJ7KV=vMgF*&ESm(resul*)H;aJ4`oIw(#%+r2I!=5E2>b7lD4_oi zdA@1^4C!|9S4h6cki~k7e}&9~LLn0l>qAoL%TbvqCIxe`rnSMuS*Lx7MiGfrO=A`} zoWU4Dus4Dt7dN~i4@6q+OmU?X2QjpS3d!?4lTzjZs;wxszq0%)3L%__m9an*S`T($ z7Xky~{324rFTQgV0@LvPNfcrv2~K_IO2d83_i=!Lh;!$3${i4Qu&Ajr2+`e8`H z(8VD1Su$tjtTkfcd;-MjSpAoa(ZXSym=h)C^E}#hAO@hs8! zhATcdPS~Krq|dh7T4CZmt#Adw@UaE++MsH&2eSt1ruD<1YQ2u-fj`zzX2YR^;AHrd zmgVrxF?^>s?ai0~o(=y!G)p=VAngw%D}-d%9%2xJq7YOeFnc$Pzhq|*v0ou>aGB;i zre3kE42-`-axi0(p>UJ5xjW+hPd>6@5XMxlOu9OdlJCukqyaJVMm;G0pHy+!+k$bU zQ2d8u5%>&$>dcp;fcoX*;uxP<5lHIuwEY<{pa1iK0SL){kKQ^xJl+E9zG)k;z^s5r z-{ot^$rYJDJp^<^G6D)g-jk1E+&lfAb?+;=s?S?n3ZzrNQCt|*1b!kM;zVX*IQoQc z;>)A(1knJsbbwXgk^-1C*h(2f0FMb5=gz53%>QyR6VO2(C% z4b+F5lR81Z$R9nZANoGB96e)AbyFO@vp8Z~UG8iMHL-Ds@%;-9BMYM&7t=S|S@k~zh@kfqjMV^#P?XK5^y!Ifx5)^y zw!dW`i@JQYBd?!#AGr4(CKba+u+ySXdl(XEc0OJ9vpWte@yYz!rav$sHj~*;OeQ|#qaewpY&sCH?lWR-HPg*RgH3gVY zYO>MP@6xX&-aeZ#4xERsY=^Bd3sK@3nCfVmXBb#Uxs^cG<_@0! zEo^1GXXPjG3Z~P(Zjjo2$Xo$3T_AcK>Uyt|L#o}zsrAKEG#3eHxKy`SQpxN|;7w;V z7|$CDsWnxcI8SYcsU_C;CD-qLO|tZkw=zn%^2uin>A|GKJC?H=Ja-uQPn3=o;*nj7 zj3fs4wZiM?>2nG9w^24xQT>nNGn6i$#IE-nQ$d(dk5HTy8+k=s-zZ&Fh#$&vlAekb zhjTW*z9nGoJ^=BC&Qo*IqM6wk8Q7bO^8C|4%&*zPNJaEr{pm6gnplcV;(*(p#wyd%FklyibD-h_s5D)?Zb= zf7uZk2&8x*X}|Fj6V#TY0Udw`snD)g2Cqg9J0|gd*2(MStYo*Y_^4`8Yx!9ivieuTN zzw7eW%%hPk-}Eg91cN3|Sb-3|!tqo|qb*1;r5nK+_keB8>`iZX7{@SH7FLv{5xWFs ziX?5V{nZUbB|FaXK88b_-DQX}%=`faJUzq`3Im5S!>LC{Qkw*;K>Lv`%p7H!B;&y) z7~90}Q^gSM+?0NrC`X{B`SI-vsI;5tz#RWP%JdX!DoMr?ID#o&0j`o^lI4h|!CHP* zEy5gw7p^$_AB^Yrfk@UqBFu(hOLJy<(hL!fMwh2^kRm?P-4jBqF!Q4@Ih5%$P$)LU zIRqLOS&n^r#Ve&0>QGCdh=RW`{w3l}Sd8P32q3Hfw}|K=@kY6B{l5jU=E2S((037; zuNShNp-f){)Bd6Lg~^xDPmP*_pqm_VZi>JOm}7kE6D}dm0ELtcH}6Ta{6hN`$mdUd zC=SvLqu`Yy$*9tv(MQTxuqo1v@I8zIT-?9KIR9V8SZZ>-ST$GDrl;$Rs8F%L=;-jD zX%RK>USn72d!L-b<_6N1^ln z?QL>TDDx7z(bP%C!782QW6i#KEGG&uI)A5l8a!nnc=4D%*nj4<6p>qoXg-9`C}yPM zTpv=;O&D5b;fS{ti0QRfp{#~saJw!hcEu|!i~uG>tV2@i@m#ypN=QuWb+NMK`SHFL zJ^fX@`BNNN?jaqd??H2t+m47MJa&epBfJ}r;x|XtFjdd~JzHW5Y>HOYJpUs)Hi9dk z7F!AtH_#x-6Z?}8Ck$3_{T4L+=-48FMrl!)?KyZojmMCWRM#CP8lK%Hc z5f2d$d{8`^TC#=RD~m}8fL#)gu{nI8Uog*d>i`1rC-u# zNv$1WvN^XZYD%DojCz)Mhm59m-x=wNKo1XXiIcFC{;0U6VUekgw~qJmjRrQd{|5=T0_`l{;fH6X6czn%e_4T^_Q#4xm48D# zmI19m|9@C9VssEZd;oPE+K_l_?M>k^F?q9wH@srqV}#K9$p_?1b=(_6ruA&blr^tx zRFj=uJ49#i_syRe22*QqoZIyPF6krn1WUdgJOKw#Yioefo5v1rjclN;vT5HCiisWG z=@*p`e6|@Isc0gNHyoD`skO1VbHL9~D}BC$u{q!M^Ogf~3T0_lnBuilT6LsLbPsB$ zmpzaKl}QX&ocF18B(o!V74q;6jRa!O0TT(h{MeS4N0o)91SJ`6oaZmw;Yx%S|6bC<#QD(KHDEfO(2!Th4w94g(_oks@<-$ zq{}Qlz4axJnx(@TSRtUsh|obgXf`}_L%d0tdnC)kRixzr>YMRa+~%LAZFbv@Vf>I(ljSs1-^O8Sf+YE&u7$Xkh zG4`E}mSr+7mti1}s4)||hH*yex0Y-<|8KH*7&h-cpFe46`pedm(7tonf6hG3D%eGw z_qA0&_P*x%8ps39Qf?U2#af=KdN4gcgmqYrsc{=}@wOb)Em-jh`KejT<@4}B1yeQG zH-`HS?@^89Bv)AN!Vd9h(x;1rHFpW`SM!i+r@{n5q+bUa2=l&Ki8dQKt+Vgov~|KY z8F^A%(%R@4O)Orxu#5zMlD#H13|>|>Hfk|MUj$y&LdS^^W60Zv6iJ2Efgxl+cD&iqr1ejWx<*KYiv? zzinQ`pZSYUV?}ISRU*QZCNE-bQo77|=lgMD!jzo-0~w7NX7bdyk_2TSnws)>4u(2K z9gQ@m8Djw5*^C)tMOr^HuDV*9NnV7c%CHAcNF(nrh(>=p;7s6Fp_Lu|NfDE_p+1n# zoVk#e2m4Q^)_bAO9H0WJr#2;%T%^iMqpB)B{7=*(*ngsuAcas8FV<0|A*%h$0=+t* z1@Z7$e=L~pj7WSUxnGUkDf2{4^3+rw&RXn@po22oQdg^|{#8@ZAu;zAlkzXV`;dQ- zH#;M4T@cjfq$_yvgA2pnLZEE|)`T%R1rzwxtGQmtGKQgf)vNy|H0Xblnz=je@~FVpH?JN9$Mm?RpCN z^M1fN()PKA#CgzYu`lwe}Y6~&rlF^PIHntCvg z!z-ymjeNdC&DqTV(X4?Mo`X46P{C@I-M2q?4(Jw93gae)7mNd`f;yFpOW7~LJ zSJ2?hFW8=Q8y^fW@?A$YEhifKD&YbDAl0*dMW~)s8OUT^wJtCdlvGD?oz!?o@gJ#i zj^Y`q364XEFtR*ZP$avq1rd?)Xff!+to%4bXUu<`ViI#`GXc_<_77TcxfU;EiCN8I zOGMTp*@rX5f*^FMdQG%q)Bmr} z{O$vmcnxA0@`8r`K_-fuRw}Teng5Clk~SS{d`w9YL%@Sk?og7xa7n|pxxjmS!aFTM z-nT)25ionETIVAUL% zu^*p4*IgsyiOr{>f!nZqM z7;szcWpGL>4QZ-wcYPMdRf(RTKxP~J2^`~k3W|$B#kkH?O1j19k z-$0w{i2~mn%0EQhf#-W&NHeARnTL7tX`VDp$S;@l-4LQZ14@L&*dmxx8YJ>J_#Sdv z_Q z$v^L&E&eTr6Pjo_pjY;3L^S$0_;1`jWX8lw;B64u2w#s^feKmjfh-_>m*pJZzv6N2 zVEpkyew1bpIS=CpDZx-b3xOlhv;UGp?*Drb=5NP@U-K((ps6#4pOV~7s#u8b}k#s%vJdP>{th~W>hRX^1~l2`}}fwEOjYCl-uq)_>TM*gYA z+y8f9?0=NZ{T2fjy=3xuX0CyPg~VR_VVp5z|19BpzxfcU7o!^e84X^WnLl!Fpz$4n zqp^ovVgi(-1owu5bkvxj=&ohYy@%Y#xrb~%#S8>&TlIOeYF=*)L^@sT9JD&*8FY{1 z-2`NjDyAG*YR0(YVs-ktXJwiN4*CXbw-~(F&mfkVC$~{1eCIQ0PDkLpq$)|c_p~i* zkB98DBw-68r-CA|A#99bogsR;ZgSU~kJCxHHXFOIC6utUY($0w1;xPmp#pD>xXbeB ztehttAP8CNuMRp`W>DA1VvQrI-TV7qWvgyPNU%5Vs~h7E&7gA2kn-c+IE$fXRY)a* zCT>jwgJacZDB(=>w@0s3#}wTCRV$0N2dSH+YzT-e=b4Q|t~!v=b~$j^)U_OcHP;M6 zKDg6Ue`ZvsHK1G{Sp+FSUx@@(t?FIp%aRDyGUyPY=LyL-7M z?{a)ywIX^^9nHS`KZAV&l=7a>4OoRN*ak05sVZUri_Tj3<|<*#>Q8Tvs%#v9OKA3y z@`b`EyAMmB)m6>H1{Br~$5$(oU5<73xCnrYO#U5yX?orm?;k0Mz6(>zkVyXl%I>$^ ziW8d8R+(N%KrUA{3P^ zcxyombrZ@{!qcu>2pYJ4?UCIy`ChWk_1%Q&`glR#Ni}Xv%^)2TaFehY+@xI!pgEW} zmf!HcGplxSWp$ZXZPo9GUBa)eDw0x(dHB*!#_gk7vc2B(U^E(m$G8_Sb zba9qh^0Cfu07D?4*c)nInzKN?;V{V5&V90Qm|9z;dBP5Xi#xj_mO;*)7OC1u%mQj# zb9;9N8n-Z=-AewF5Uz{0iLh^aF?u*d)av!e!GvLEfdQ}wYS}?28KlZ*@Ur#Q&2-6j#|P%@F!InxQ8C+YSj}8vP(G{O0sD& z`qOj`v=P7*fEubf$U#Gl(O<_nS7&dk`zbAZ4%;)_3W;GGNgHQ=K+sokqri9`>L@RL zOr$1T@w*O4nEet(+SD=X4EtJP<`i&}mfVPiI2=MaEGp{KOLrDkHba__*&WECr6#MM zq@n&3k{TG2_cYZRO|gK5uF}H26IPVh-x=&s9Kpeyj(WeI{p;#aM0Oie5#IJJE_Gg7 z1S_L%USfM?UMp}HCBOm6%EaS5l&~v3^&Cwa#07*nLx@?RGulYwP1KtQ&3SxYR$6{m z(jpFnDu6~7QIwZf&oawdg@!$j98uriBUKpym;B*e-5I=WmV_SvNC`X~C#YtRt8AUxgTI{x7N^vK^`7B|4=(DVkrv#_U_##aae>n zCBhpYsK*Zp{l|(!ihFYIopJ%oSZ6k5;2i%UO*R1=EvclUQZG-QS5^fRo#&YEgy$cI z&rpLJMuWnJ=MTII13cW#!g!XT@+cED2H(DRCe6YGae`e*j1!?jN9WPw`E!2-@2zsL zrQ$=1-g%wX;RqOr!+LzW+r{Dx;9`M}7DjTewq>>h5pR`b$(?~VV$GD|9c&OGhuJg4 zX(%RGCf~h;W8bQwDX-Kn$x=#M3366xo8>tyQqm!p!h7AgWlEkSH@IY5c`gH{i;~E| zbdk*yh6DMq$Y4SSW5j1_YvryvFE0y*o_ZrP;nO14gp6hqy2ZuJ$OQ~;BMd=O;-r;o za^k-@aj|C zbbyo=wSxbqBrZ;Xq6rXp#l<}oFZu=xJb2Jhzo`KBXdcP9G{<|xfoF*p@2-B*MShDC zprarQ;(d&`4)#+c8p%IdU?nF4ojDZ$k2B6_(D~SPF8K{ODTos?1XC95EzSd;6g1R! zwA4b?UtaLq4;;fg#1j;<;KGA6$owa*Wy)1eR>hM$`CJihgiGT2UDh%`v430fw$J&h z?H)pK*dtS*=?!w(V}7c1w;bOh!m{H;=OIC*(i*T;Mxh=&qx=N;4ZKCtp53NKN$=*v z>GM1Gm%rXSw2D!FRxrYX9Bm~|KnfNU1mmTNIxmXq->=V-BJ!Lle{NwWB*nL=EU<)0 z-o$;xXHb^9H5W7-Bo!!Oj9Kl9#w`e9U4imK{`Fci!#Gd_=Z)SA%4skFHMFDQid$HP z4P@EzEixas`pg@{z*}544C<`YhH}sp+l(p$x!S$Eq?!Pn*(7_$>)D1W+nvAwYCxRVT%kZ0_nLApDlIf^{;a1qSUn&vuS*V`>+ruIc*#j zPXQf#xJ4g47O)aNDx2cU>)_?H;@^t^r^QJ!*?su%*a6&+!Q8Ucvvt|LP>D|h#ujr> zUpd;)tIcBn{8Cte9r3k3xo3Wwe?=Jx?gMeXar_Rt!lF{Dc`bz-M=Ew`g$fRjPBmT&&nd86&&0cL} zBrGdwYMn_kDPS4AQ5AtDvGFloqGb+qhO9Yl7a1du#O^=;6H?l__N$qA3MpX^gzCu$J^Z}KmH<<+NCj0bvOJk zb+`e4)QO?|Z*{f^Ky^GY-F|OpnEwGYJ$QDBcP;%J$Q}z9`fe>sq5a>a*cfhaeG{`^ zKmJFbxI!UGgI;hDkYm{Y>Z;^o=IUx?Z}HbYt7eT&=N~*6J=>**ZM){MEl%?Lw5Jqx zTMAURz=s5YG<*ZGyXQ_o$XDDZUym41F;Ba^z`T9>-rM6cG^)s)h4>{8G1*uUjyYfs zM4XnMj_Yo2rPTJ-h=V01EP{pBP>|0L_glyN<-Q=NA)|FVs3!{5;h}e1vqo`ZIBjcR zczYZiM1V~>Z~gCbZgjxCOZ7vnfoFkIpH5Ici?stQ3(zXY{m!FvR`%~wagF8{qzf?49 zv5t$55t33UaRRZ2(iP((1RY-k3s+XLaXRVioq~^yX0x8B5c#R&u{`sFsh%CPAek3B zqvJ9#5RSyA%-y4-o~bB_FBS+zjv;X}mHD%HKqBMMH_+f=@FAmkJ(1*~AhItPqNxbd z4=JM+AZ=9GU&JFeWDhsL7vu#`GR_q><+(`6-nYaJSdVw!1jJEA$zVKxWkn*T|!t-@PoXc12AwvkpMC7>I4VN9H{N> z1s7hEaJqDh!4{oxab^m|&Aod&D3h6M(cOlaKp_}x8hK!y;nsc1H=x@3Lewn8n}O(V zQ%}-0n}ncY&kx9w%+GZwzjg<0W8T3TKOYF(cY?j*Z{7oU z{R%cq_nIRROAl^JVh{bcxe9|GTE!O|_x_EHyDjv^)q?M9RWPPeZ$yf%zcSI*QHr~>TvhP{3Mf?_MTaIqMg$# zXU&C0mYA>WZL_KTRsM73s4t4!$jL9;%I zVF6>La$uzVuAFJ{BQUkZ8qsp~2rUdPl_VM#L4%a}4c97i#k1C@GN9^< zNGN*~P~b#Xrf-E=^IAhgG#`D_O2ZQ)JHS5C2#UY#aU~*!$~ZkS7u&K?z<2_EtPG~y zHG1MO17qf!e)~>rnshJC6Cyy=XxF6T)Wxtoc9Mjv-3`F%KH=oB3YzCKV(?M2jGkP- z33hn$lS0UD>qB>QLPUfvCdIOOKVG-Hh5V;uFT8m!Ccv(9FK{3rX#aN19M}<6&B)mH zuRf8RDgE|8SO`Xbev6<<&62fEY{o#P8wqKeM8fw1K_{rgT93aJZl8bo&Tkvba#<(S zd2bizc}YJ-0U7{<>nbJKk;+- zWQYlE^b?9y0Qz=1>fuHUv(AD!O`Aqadv+xiyth}C+lK3B%qZBw3M%7)XdJllI<8db z12zUBsv9#Bttd{y*|4+pNRYM$7krPfNEk7^I88EXoL#=|?PLnJn1D*w=%ooe&#-m1 zF(U>E;UqR)bLFE^mO~r-lS>>{Jn4M#G8=RDrwA2#7k-G-Fo~AofTK)QY&2xDz4ehX zdjl>tc~8mMbOQi7nG z%T`d;YHHn$j&S$Z75Aj?&*u&*a3^MdpneTjy7Tbk0>;g=8?m;gT#s9zZScG#LemqL zJ=es;jTJvlLc>YtcASUNBmd43tZZytSEI}Auusn{%RXoL^mKQ9VG#NJ=B{*<+2BJN zo9l5Q!OESR4!eUHeLi>C6nQXiE8fV>WB^fk7G%XN8ukMMXB{j0;7j)KEF7f#PFO_Yv<#piXmhz^O1)yw4)M6_11 z*d}pZTN-7OQ;HtMOQ$|Rqs_WOxQmv-x@uwgi}|+=!?7(7s3 zu&(n%e=Kj#!K}j|U=+Juf`Pca6U7tv>{v4pG{dep4`wGy(`O)S@^~dbss5fS?UKV; z4K1=8eHuqHx_V!x9fS!(33|kr_I#&3(JsTRV3U{J0CH zmS{tS3YFOa@d^v%KLNQ=Qlv9zqQq;U%m>Hbqi`K0b~zD)WD0l)s_eg#C-s-`Lz*Xa z%pEt@4QpfdD5GsYZwQwjO$li`^u#lcRGH7OS_NrM!jV~5c)bB@U!{Ou^>^%5s5NP!9T<$*iZlR~@GOr2z| zCdTAoO)!bcHl8eho6RqB98_qk6*KJ+RcV7I%fPnp3-{Bn*O(=j8MC9=5S92+I<-tN z8jMiFN``SyFyuk{n<>+pZZo0TNyOAHzPwZ{t@{YDs~XV8wBrXG%=)`(9W_Y`j*3=;olw3PF^$`2d^?rgC?P{5VX((3c8QbI;7P zud6~Dy?3Uaa_hFqZ-AEgm2JVdKEBP6CL^PU(wB8n;f_i-T9@n4xkawsp>0Vv{~50z z9*X=wtt`q)8LMO~f0}x(L|pmab#BhN&FH$W;~R;78BWSu*K_dG%NRMGTq~Tj6gY@v zF7T)Cwf>P5r4>%Vj)MdyIZUn9*2#oWB#%koJeX$FFjPpAr?-{M_>In>?7rjV4I?E5 z37hl&mlPi{hVEkc^3udnaDKtvH`TqAq^@?l#l>anV#&)}t8(RV97X9^+5I%ngWs11 zr>N0I1M=C=2kD9_(zFVVcvjSnXlMszEDDfM0$DT8QJT(KM5rCJBBR==bw0&kS_;cp z%2Q{5H5F8M(fk+)a46f1SmwrZ-3ttCY2GU1VlW)cvx`0;l=681YbVyMMop;SZn5p3 zpR>Mz9Q_q<|KjFSPzqjctCM2$m{o&54;2-uFt!=SqnF&mbc0w@!F4u4S=p>^wWPDC zll)6P@?;!k*OEiDg+0JwHYDpR(4QaICAfj*ALSirFBfP29 zdo#9j2kP<{JFJFUTt>TWK`p~mTOal-vPiCcnSG`0>;52%9f(IUO?3pC=g*|+=$R{yV{3r(MepOW1x{dQh$VkP}I@;BXTh@`k zev(-$jhqxTKBbVM+VK9`wynwzBBKv$4k2Acc>2~Qt!h%@gQ^ec9-5TqjC(Rm;{!z` zmWAb>g8@kI9UBY8iG}A31=?xI3LuxWFG<0~dTKjISs+;rZHtimWs8ZC6%`mgE|gy! znjT9xtj@C9*zqpohVBaEvTLTA#Av&wAC}XZBW+VK8&X51lgF6SP#_RxOBgeUv>3E2 zrZ&xi<)&yJEl`?V2YJ&WrCwWI3}3(Ij_Vii=Ns1Xf9$3+z&gkByw!gG4gJqtEXR*; zr4;yu2L;St|8%A|adUBXu+y@$WwvrPv-|67uR5w8Zh!>?Ec3QbllVy76(0eLYsJMF@=`Fbl_W#FOeU*tao9oTdQuis67rTg?4MaWgGp#poS!(px*zd zc7cM8fx>bAA^eZzzuK|?HLBTh_4a`*7!qH525$GpS@R$)F~X!lXl<5cKNGt9QQDHP zi$_gwg>ARpta;S;oij-~=(jnC1N=R5*2Kxnry> z8&`6dCe!p)*+OLz?DA+|CZo}Pw|U>a0k4q1U#|lbwvfUxT)3_RbxXI!7>?womiOO( zrJhh-{8E8kLqq#M+vY25^|AXNJM)6NJ`agTS6fP>#rK2yX7z`3dXz1HG@#C z>ag;i2za>S4osV1l-l(JNhd0$JxD4oA`VTZxr>oyjXLFiC)K5VR&w<|ODUQ3sdMK$ z(a3!9Fu8~+Qg$K-T4Of)8LY6f0A4w69^SL%Bn3!rN}03&|E1hCAs zzUhH9G;B30N0`+@_M^+K9Of@7B<(Kz~Kj z+?_jJp8ql|;9yvQgc2>KXfpz-hoT;@(p8!(eXie3-6mb^SO3~k+|B(}akBoHH#R9+ZH*rckB%Fl!7 zheb|!__hVjjY}wJ#U->h?MQUb-yJ+e(sORs*KXI`3yztGp{VLDqK9){06eaGA7YW0 zFU`j1j=zjMsp^lThhvER@e#UZq>QO&ZiOq7dw0}QYkFkdSMCR3ZMtW7uez`0^~IyR zuSK_^`#)=b9ytj1l3<3i&&K5Y(T(2IACAKD1q`9j^h`mgDQ`Fhg<^*8?e3@V`v+1J zakz09Phz*)-0ImJjJ-U!9#bs>nC%8TeWlvpIJ%t5R4iEY{t@l; zQ*qV=>(ll$-)-|}?iZLIC@O>QqiQFpBV~^B6X6W+PusYiH_hr6uP`-8@--pRpR;)r z`@T)RtYR9tYkF@Je&ai?i23r-1Fs;7fRDe61P!XBulLLS^Nnls?XD2tX9o7f?00+5 zecSfhx;zsL!x~(y#XbS{iyElMtIKKBZUfi^H(?u^<>>`y3Fu; z9orX-78nf9-lBQIvLJw)xr^L4^-S6~*EsT2%3fe{xq_Uuwh!!r*nn9gOcXRO8tZh} zw##h8GeiY&jD>Kd>cV035@7lTTJLr^ox-qSAS)7YeAJRp17|@HDoBqp@^<|AR*-AZ zuUbi$E*^2Mq`4ZYrnQQD z)<_d$G?)PaCtouynF)-?&XHkcPPc}>MHaH6gx7LI{d6tQ_XIUYs@|kd;Wg z&kghT)oM|CF+C8Hz_X5wQ-m}O^%zdjQJ>jbKdaOZ5I}DqWnQ;2eq1*EY?jQIdT9&8 z=s3dhvYCMC1+^cadkgyr$4QJNAX*>&2>*m*P{e?hOP`uiVRyq*Eof7W7mBXgF+n)i z7+;Gn_MMK?qDB=aiErum##Y@$*kRuTGNcrk#jP$N9ez6fPUS0dCXYx3YP1W9AD zCVF=r$HB3sV#JBE#6KMfvc+N)HpfljrkzXcp!NIOhRK%gmi7Bh1{3lRN_+Iyz!$&u@yk6yX!O?1^CQ87M`s7epOoE|_&;O) zzt%3|*QR(voi~Gk1`f0QVCh$~#j!~k05Ai<>F)2mM!D}?S-?m#qa8{P1Irm^E{%jD6@io@$hVdHuktQ zGoVM*`$x?Ww<~-#5{mMK^Q@W+z7EaP3#wsie_)?twojJT`PbHS20s%OJk0NGRZ)E^ zAQC^FbUpHR=J0>w5Ayt96CXQ7A2#i*(mNWVqx3K0uV^PzA*X%>W>Sbno*|6$> zxrW45W0-TYvzMh_G>2|j{6S=IGfUEn9~gcGWdavT>l}ruMLvj|enNy3*?wC=@@{0N z6?4t^Z6a=w1LFb*j$zP=Vb?v!&}s_&1lsr@G_3G-}T9&QSkdz8ODH;MZH*P`El zUO(lDM{x1!SJ&F*>YiNO`dY5K=JB%S^Xi`6d_J#!Ve#o})8pz=Z?9gz_vf|S*7qv6 zXFp%pZ+GwW$$PcG?fc>hmY3pkNx$x-~Rui zQo{qhQ|vNgZ?LqfwkTIci61r#Zk+hxaZ%~vF0q%ftK0g|M^B!VcymK#_4f&!KhG5_ zzdGW)a;9+lH(x7%?_jOnTMym(ADqhEs`|=`@1;zhg>rh!&w{63d?g$Bmo>3TWh`jK zO8htO_;$!Xz?+dtgc&qE&cWa~%RFLj(9(%hfi2Wiz%e&aw*v+mfMN^`(aylZ;MBa5 z_>jti)Z$oB>kQq1N;PkXA3&w|faA#AFx^19f$01kA^ zX8;2NJaYgvqBIxicWm188l;7cfR>*IS|x*Gc_eVE5v(2Jb7VuXhC=UZG3#!928Os$ zRtA0)la2xh<-sNumsIAYf~PCd!vOt2Ntpfy##$>B&1lC-@q1w@=VbD!LpNK%1z*h=20cBbOT|fG$F+%^sa;SdvF=TWj(EHyABWBfM z?Tw=wfZowX7*JG?Yyh@yFS=RieMf{@*$v2Mq4p%vO+oK!Axvp%goX-A#|vFQdV3I| eU$zw~i=nm-1H4&*IS7=i1Q`;6*@M3u!~+2P`;$Nb literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationSources.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationSources.scala deleted file mode 100644 index 71e97a1b1..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesOnlineAggregationSources.scala +++ /dev/null @@ -1,5 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates.real_time - -object TimelinesOnlineAggregationSources { - val timelinesOnlineAggregateSource = new TimelinesStormAggregateSource -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesRealTimeAggregatesJob.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesRealTimeAggregatesJob.docx new file mode 100644 index 0000000000000000000000000000000000000000..edca2ce66ae061aec039f3163b17e45392cf56d2 GIT binary patch literal 39371 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 Lusm+2{yh3WXV#DI literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesRealTimeAggregatesJob.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesRealTimeAggregatesJob.scala deleted file mode 100644 index e386d4da1..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesRealTimeAggregatesJob.scala +++ /dev/null @@ -1,182 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates.real_time - -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.stats.DefaultStatsReceiver -import com.twitter.summingbird.Options -import com.twitter.summingbird.online.option.FlatMapParallelism -import com.twitter.summingbird.online.option.SourceParallelism -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.heron._ -import com.twitter.timelines.data_processing.ml_util.transforms.DownsampleTransform -import com.twitter.timelines.data_processing.ml_util.transforms.RichITransform -import com.twitter.timelines.data_processing.ml_util.transforms.UserDownsampleTransform - -import com.twitter.timelines.prediction.common.aggregates.BCELabelTransformFromUUADataRecord - -/** - * Sets up relevant topology parameters. Our primary goal is to handle the - * LogEvent stream and aggregate (sum) on the parsed DataRecords without falling - * behind. Our constraint is the resulting write (and read) QPS to the backing - * memcache store. - * - * If the job is falling behind, add more flatMappers and/or Summers after - * inspecting the viz panels for the respective job (go/heron-ui). An increase in - * Summers (and/or aggregation keys and features in the config) results in an - * increase in memcache QPS (go/cb and search for our cache). Adjust with CacheSize - * settings until QPS is well-controlled. - * - */ -object TimelinesRealTimeAggregatesJobConfigs extends RealTimeAggregatesJobConfigs { - import TimelinesOnlineAggregationUtils._ - - /** - * We remove input records that do not contain a label/engagement as defined in AllTweetLabels, which includes - * explicit user engagements including public, private and impression events. By avoiding ingesting records without - * engagemnts, we guarantee that no distribution shifts occur in computed aggregate features when we add a new spout - * to input aggregate sources. Counterfactual signal is still available since we aggregate on explicit dwell - * engagements. - */ - val NegativeDownsampleTransform = - DownsampleTransform( - negativeSamplingRate = 0.0, - keepLabels = AllTweetLabels, - positiveSamplingRate = 1.0) - - /** - * We downsample positive engagements for devel topology to reduce traffic, aiming for equivalent of 10% of prod traffic. - * First apply consistent downsampling to 10% of users, and then apply downsampling to remove records without - * explicit labels. We apply user-consistent sampling to more closely approximate prod query patterns. - */ - val StagingUserBasedDownsampleTransform = - UserDownsampleTransform( - availability = 1000, - featureName = "rta_devel" - ) - - override val Prod = RealTimeAggregatesJobConfig( - appId = "summingbird_timelines_rta", - topologyWorkers = 1450, - sourceCount = 120, - flatMapCount = 1800, - summerCount = 3850, - cacheSize = 200, - containerRamGigaBytes = 54, - name = "timelines_real_time_aggregates", - teamName = "timelines", - teamEmail = "", - // If one component is hitting GC limit at prod, tune componentToMetaSpaceSizeMap. - // Except for Source bolts. Tune componentToRamGigaBytesMap for Source bolts instead. - componentToMetaSpaceSizeMap = Map( - "Tail-FlatMap" -> "-XX:MaxMetaspaceSize=1024M -XX:MetaspaceSize=1024M", - "Tail" -> "-XX:MaxMetaspaceSize=2560M -XX:MetaspaceSize=2560M" - ), - // If either component is hitting memory limit at prod - // its memory need to increase: either increase total memory of container (containerRamGigaBytes), - // or allocate more memory for one component while keeping total memory unchanged. - componentToRamGigaBytesMap = Map( - "Tail-FlatMap-Source" -> 3, // Home source - "Tail-FlatMap-Source.2" -> 3, // Profile source - "Tail-FlatMap-Source.3" -> 3, // Search source - "Tail-FlatMap-Source.4" -> 3, // UUA source - "Tail-FlatMap" -> 8 - // Tail will use the leftover memory in the container. - // Make sure to tune topologyWorkers and containerRamGigaBytes such that this is greater than 10 GB. - ), - topologyNamedOptions = Map( - "TL_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(120)), - "PROFILE_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(30)), - "SEARCH_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(10)), - "UUA_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(10)), - "COMBINED_PRODUCER" -> Options() - .set(FlatMapParallelism(1800)) - ), - // The UUA datarecord for BCE events inputted will not have binary labels populated. - // BCELabelTransform will set the datarecord with binary BCE dwell labels features based on the corresponding dwell_time_ms. - // It's important to have the BCELabelTransformFromUUADataRecord before ProdNegativeDownsampleTransform - // because ProdNegativeDownsampleTransform will remove datarecord that contains no features from AllTweetLabels. - onlinePreTransforms = - Seq(RichITransform(BCELabelTransformFromUUADataRecord), NegativeDownsampleTransform) - ) - - /** - * we downsample 10% computation of devel RTA based on [[StagingNegativeDownsampleTransform]]. - * To better test scalability of topology, we reduce computing resource of components "Tail-FlatMap" - * and "Tail" to be 10% of prod but keep computing resource of component "Tail-FlatMap-Source" unchanged. - * hence flatMapCount=110, summerCount=105 and sourceCount=100. Hence topologyWorkers =(110+105+100)/5 = 63. - */ - override val Devel = RealTimeAggregatesJobConfig( - appId = "summingbird_timelines_rta_devel", - topologyWorkers = 120, - sourceCount = 120, - flatMapCount = 150, - summerCount = 300, - cacheSize = 200, - containerRamGigaBytes = 54, - name = "timelines_real_time_aggregates_devel", - teamName = "timelines", - teamEmail = "", - // If one component is hitting GC limit at prod, tune componentToMetaSpaceSizeMap - // Except for Source bolts. Tune componentToRamGigaBytesMap for Source bolts instead. - componentToMetaSpaceSizeMap = Map( - "Tail-FlatMap" -> "-XX:MaxMetaspaceSize=1024M -XX:MetaspaceSize=1024M", - "Tail" -> "-XX:MaxMetaspaceSize=2560M -XX:MetaspaceSize=2560M" - ), - // If either component is hitting memory limit at prod - // its memory need to increase: either increase total memory of container (containerRamGigaBytes), - // or allocate more memory for one component while keeping total memory unchanged. - componentToRamGigaBytesMap = Map( - "Tail-FlatMap-Source" -> 3, // Home source - "Tail-FlatMap-Source.2" -> 3, // Profile source - "Tail-FlatMap-Source.3" -> 3, // Search source - "Tail-FlatMap-Source.4" -> 3, // UUA source - "Tail-FlatMap" -> 8 - // Tail will use the leftover memory in the container. - // Make sure to tune topologyWorkers and containerRamGigaBytes such that this is greater than 10 GB. - ), - topologyNamedOptions = Map( - "TL_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(120)), - "PROFILE_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(30)), - "SEARCH_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(10)), - "UUA_EVENTS_SOURCE" -> Options() - .set(SourceParallelism(10)), - "COMBINED_PRODUCER" -> Options() - .set(FlatMapParallelism(150)) - ), - // It's important to have the BCELabelTransformFromUUADataRecord before ProdNegativeDownsampleTransform - onlinePreTransforms = Seq( - StagingUserBasedDownsampleTransform, - RichITransform(BCELabelTransformFromUUADataRecord), - NegativeDownsampleTransform), - enableUserReindexingNighthawkBtreeStore = true, - enableUserReindexingNighthawkHashStore = true, - userReindexingNighthawkBtreeStoreConfig = NighthawkUnderlyingStoreConfig( - serversetPath = - "/twitter/service/cache-user/test/nighthawk_timelines_real_time_aggregates_btree_test_api", - // NOTE: table names are prefixed to every pkey so keep it short - tableName = "u_r_v1", // (u)ser_(r)eindexing_v1 - // keep ttl <= 1 day because it's keyed on user, and we will have limited hit rates beyond 1 day - cacheTTL = 1.day - ), - userReindexingNighthawkHashStoreConfig = NighthawkUnderlyingStoreConfig( - // For prod: "/s/cache-user/nighthawk_timelines_real_time_aggregates_hash_api", - serversetPath = - "/twitter/service/cache-user/test/nighthawk_timelines_real_time_aggregates_hash_test_api", - // NOTE: table names are prefixed to every pkey so keep it short - tableName = "u_r_v1", // (u)ser_(r)eindexing_v1 - // keep ttl <= 1 day because it's keyed on user, and we will have limited hit rates beyond 1 day - cacheTTL = 1.day - ) - ) -} - -object TimelinesRealTimeAggregatesJob extends RealTimeAggregatesJobBase { - override lazy val statsReceiver = DefaultStatsReceiver.scope("timelines_real_time_aggregates") - override lazy val jobConfigs = TimelinesRealTimeAggregatesJobConfigs - override lazy val aggregatesToCompute = TimelinesOnlineAggregationConfig.AggregatesToCompute -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesStormAggregateSource.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesStormAggregateSource.docx new file mode 100644 index 0000000000000000000000000000000000000000..ec9eaa180357a17a77325be7fecf5212ac61a668 GIT binary patch literal 38661 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

    ?wH@oUj)Zv_URx*gO8Z8>G` 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesStormAggregateSource.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesStormAggregateSource.scala deleted file mode 100644 index 2e096dc07..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TimelinesStormAggregateSource.scala +++ /dev/null @@ -1,185 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates.real_time - -import com.twitter.clientapp.thriftscala.LogEvent -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.stats.Counter -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.ml.api.DataRecord -import com.twitter.ml.api.constant.SharedFeatures -import com.twitter.snowflake.id.SnowflakeId -import com.twitter.summingbird._ -import com.twitter.summingbird.storm.Storm -import com.twitter.summingbird_internal.sources.AppId -import com.twitter.summingbird_internal.sources.storm.remote.ClientEventSourceScrooge2 -import com.twitter.timelines.data_processing.ad_hoc.suggests.common.AllScribeProcessor -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.heron.RealTimeAggregatesJobConfig -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.heron.StormAggregateSource -import com.twitter.timelines.prediction.adapters.client_log_event.ClientLogEventAdapter -import com.twitter.timelines.prediction.adapters.client_log_event.ProfileClientLogEventAdapter -import com.twitter.timelines.prediction.adapters.client_log_event.SearchClientLogEventAdapter -import com.twitter.timelines.prediction.adapters.client_log_event.UuaEventAdapter -import com.twitter.unified_user_actions.client.config.KafkaConfigs -import com.twitter.unified_user_actions.client.summingbird.UnifiedUserActionsSourceScrooge -import com.twitter.unified_user_actions.thriftscala.UnifiedUserAction -import scala.collection.JavaConverters._ - -/** - * Storm Producer for client events generated on Home, Profile, and Search - */ -class TimelinesStormAggregateSource extends StormAggregateSource { - - override val name = "timelines_rta" - override val timestampFeature = SharedFeatures.TIMESTAMP - - private lazy val TimelinesClientEventSourceName = "TL_EVENTS_SOURCE" - private lazy val ProfileClientEventSourceName = "PROFILE_EVENTS_SOURCE" - private lazy val SearchClientEventSourceName = "SEARCH_EVENTS_SOURCE" - private lazy val UuaEventSourceName = "UUA_EVENTS_SOURCE" - private lazy val CombinedProducerName = "COMBINED_PRODUCER" - private lazy val FeatureStoreProducerName = "FEATURE_STORE_PRODUCER" - - private def isNewUserEvent(event: LogEvent): Boolean = { - event.logBase.flatMap(_.userId).flatMap(SnowflakeId.timeFromIdOpt).exists(_.untilNow < 30.days) - } - - private def mkDataRecords(event: LogEvent, dataRecordCounter: Counter): Seq[DataRecord] = { - val dataRecords: Seq[DataRecord] = - if (AllScribeProcessor.isValidSuggestTweetEvent(event)) { - ClientLogEventAdapter.adaptToDataRecords(event).asScala - } else { - Seq.empty[DataRecord] - } - dataRecordCounter.incr(dataRecords.size) - dataRecords - } - - private def mkProfileDataRecords( - event: LogEvent, - dataRecordCounter: Counter - ): Seq[DataRecord] = { - val dataRecords: Seq[DataRecord] = - ProfileClientLogEventAdapter.adaptToDataRecords(event).asScala - dataRecordCounter.incr(dataRecords.size) - dataRecords - } - - private def mkSearchDataRecords( - event: LogEvent, - dataRecordCounter: Counter - ): Seq[DataRecord] = { - val dataRecords: Seq[DataRecord] = - SearchClientLogEventAdapter.adaptToDataRecords(event).asScala - dataRecordCounter.incr(dataRecords.size) - dataRecords - } - - private def mkUuaDataRecords( - event: UnifiedUserAction, - dataRecordCounter: Counter - ): Seq[DataRecord] = { - val dataRecords: Seq[DataRecord] = - UuaEventAdapter.adaptToDataRecords(event).asScala - dataRecordCounter.incr(dataRecords.size) - dataRecords - } - - override def build( - statsReceiver: StatsReceiver, - jobConfig: RealTimeAggregatesJobConfig - ): Producer[Storm, DataRecord] = { - lazy val scopedStatsReceiver = statsReceiver.scope(getClass.getSimpleName) - lazy val dataRecordCounter = scopedStatsReceiver.counter("dataRecord") - - // Home Timeline Engagements - // Step 1: => LogEvent - lazy val clientEventProducer: Producer[Storm, HomeEvent[LogEvent]] = - ClientEventSourceScrooge2( - appId = AppId(jobConfig.appId), - topic = "julep_client_event_suggests", - resumeAtLastReadOffset = false, - enableTls = true - ).source.map(HomeEvent[LogEvent]).name(TimelinesClientEventSourceName) - - // Profile Engagements - // Step 1: => LogEvent - lazy val profileClientEventProducer: Producer[Storm, ProfileEvent[LogEvent]] = - ClientEventSourceScrooge2( - appId = AppId(jobConfig.appId), - topic = "julep_client_event_profile_real_time_engagement_metrics", - resumeAtLastReadOffset = false, - enableTls = true - ).source - .map(ProfileEvent[LogEvent]) - .name(ProfileClientEventSourceName) - - // Search Engagements - // Step 1: => LogEvent - // Only process events for all users to save resource - lazy val searchClientEventProducer: Producer[Storm, SearchEvent[LogEvent]] = - ClientEventSourceScrooge2( - appId = AppId(jobConfig.appId), - topic = "julep_client_event_search_real_time_engagement_metrics", - resumeAtLastReadOffset = false, - enableTls = true - ).source - .map(SearchEvent[LogEvent]) - .name(SearchClientEventSourceName) - - // Unified User Actions (includes Home and other product surfaces) - lazy val uuaEventProducer: Producer[Storm, UuaEvent[UnifiedUserAction]] = - UnifiedUserActionsSourceScrooge( - appId = AppId(jobConfig.appId), - parallelism = 10, - kafkaConfig = KafkaConfigs.ProdUnifiedUserActionsEngagementOnly - ).source - .filter(StormAggregateSourceUtils.isUuaBCEEventsFromHome(_)) - .map(UuaEvent[UnifiedUserAction]) - .name(UuaEventSourceName) - - // Combined - // Step 2: - // (a) Combine - // (b) Transform LogEvent => Seq[DataRecord] - // (c) Apply sampler - lazy val combinedClientEventDataRecordProducer: Producer[Storm, Event[DataRecord]] = - profileClientEventProducer // This becomes the bottom branch - .merge(clientEventProducer) // This becomes the middle branch - .merge(searchClientEventProducer) - .merge(uuaEventProducer) // This becomes the top - .flatMap { // LogEvent => Seq[DataRecord] - case e: HomeEvent[LogEvent] => - mkDataRecords(e.event, dataRecordCounter).map(HomeEvent[DataRecord]) - case e: ProfileEvent[LogEvent] => - mkProfileDataRecords(e.event, dataRecordCounter).map(ProfileEvent[DataRecord]) - case e: SearchEvent[LogEvent] => - mkSearchDataRecords(e.event, dataRecordCounter).map(SearchEvent[DataRecord]) - case e: UuaEvent[UnifiedUserAction] => - mkUuaDataRecords( - e.event, - dataRecordCounter - ).map(UuaEvent[DataRecord]) - } - .flatMap { // Apply sampler - case e: HomeEvent[DataRecord] => - jobConfig.sequentiallyTransform(e.event).map(HomeEvent[DataRecord]) - case e: ProfileEvent[DataRecord] => - jobConfig.sequentiallyTransform(e.event).map(ProfileEvent[DataRecord]) - case e: SearchEvent[DataRecord] => - jobConfig.sequentiallyTransform(e.event).map(SearchEvent[DataRecord]) - case e: UuaEvent[DataRecord] => - jobConfig.sequentiallyTransform(e.event).map(UuaEvent[DataRecord]) - } - .name(CombinedProducerName) - - // Step 3: Join with Feature Store features - lazy val featureStoreDataRecordProducer: Producer[Storm, DataRecord] = - StormAggregateSourceUtils - .wrapByFeatureStoreClient( - underlyingProducer = combinedClientEventDataRecordProducer, - jobConfig = jobConfig, - scopedStatsReceiver = scopedStatsReceiver - ).map(_.event).name(FeatureStoreProducerName) - - featureStoreDataRecordProducer - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TweetFeaturesAdapter.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TweetFeaturesAdapter.docx new file mode 100644 index 0000000000000000000000000000000000000000..576bcd985f10d249699e69da963962cf7dce09b9 GIT binary patch literal 37158 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 - FeatureStoreRequest( - entityIds = key.map { tweetId => tweetEntity.withId(TweetId(tweetId)) }.toSeq - ) - } - } - - private def getDataRecordMap[K <: Set[Long]]( - orderedKeys: Seq[K], - predictionRecordsFut: Future[Seq[PredictionRecord]] - ): Map[K, Future[Option[DataRecord]]] = { - orderedKeys.zipWithIndex.map { - case (tweetIdSet, index) => - val dataRecordFutOpt: Future[Option[DataRecord]] = predictionRecordsFut.map { - predictionRecords => - predictionRecords.lift(index).flatMap { predictionRecordAtIndex: PredictionRecord => - tweetFeaturesAdapter.adaptToDataRecords(predictionRecordAtIndex).asScala.headOption - } - } - (tweetIdSet, dataRecordFutOpt) - }.toMap - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TypeSafeRunner.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/TypeSafeRunner.docx new file mode 100644 index 0000000000000000000000000000000000000000..8357fa66a952a290fc9f3d33232f17584f0fc03e GIT binary patch literal 36807 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°f%fnmgjSy|n6swTSKl;6K?reS|s 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 FSDiscrete} -import com.twitter.timelines.prediction.common.adapters.TimelinesAdapterBase -import com.twitter.timelines.prediction.features.user_health.UserHealthFeatures -import java.lang.{Boolean => JBoolean} -import java.lang.{String => JString} -import java.util -import scala.collection.JavaConverters._ - -object UserFeaturesAdapter extends TimelinesAdapterBase[PredictionRecord] { - val UserStateBoundFeature: BoundFeature[UserId, FSDiscrete] = UserActivity.UserState.bind(User) - - /** - * Boolean features about viewer's user state. - * enum UserState { - * NEW = 0, - * NEAR_ZERO = 1, - * VERY_LIGHT = 2, - * LIGHT = 3, - * MEDIUM_TWEETER = 4, - * MEDIUM_NON_TWEETER = 5, - * HEAVY_NON_TWEETER = 6, - * HEAVY_TWEETER = 7 - * }(persisted='true') - */ - val IS_USER_NEW = new Binary("timelines.user_state.is_user_new", Set(UserState).asJava) - val IS_USER_LIGHT = new Binary("timelines.user_state.is_user_light", Set(UserState).asJava) - val IS_USER_MEDIUM_TWEETER = - new Binary("timelines.user_state.is_user_medium_tweeter", Set(UserState).asJava) - val IS_USER_MEDIUM_NON_TWEETER = - new Binary("timelines.user_state.is_user_medium_non_tweeter", Set(UserState).asJava) - val IS_USER_HEAVY_NON_TWEETER = - new Binary("timelines.user_state.is_user_heavy_non_tweeter", Set(UserState).asJava) - val IS_USER_HEAVY_TWEETER = - new Binary("timelines.user_state.is_user_heavy_tweeter", Set(UserState).asJava) - val userStateToFeatureMap: Map[Long, Binary] = Map( - 0L -> IS_USER_NEW, - 1L -> IS_USER_LIGHT, - 2L -> IS_USER_LIGHT, - 3L -> IS_USER_LIGHT, - 4L -> IS_USER_MEDIUM_TWEETER, - 5L -> IS_USER_MEDIUM_NON_TWEETER, - 6L -> IS_USER_HEAVY_NON_TWEETER, - 7L -> IS_USER_HEAVY_TWEETER - ) - - val UserStateBooleanFeatures: Set[Feature[_]] = userStateToFeatureMap.values.toSet - - - val USER_COUNTRY_ID = new Text("geo.user_location.country_code") - val UserCountryCodeFeature: BoundFeature[UserId, String] = - UserLocation.CountryCodeAlpha2.bind(User) - val UserLocationFeatures: Set[Feature[_]] = Set(USER_COUNTRY_ID) - - private val UserVerifiedFeaturesSet = Set( - UserAccount.IsUserVerified.bind(User), - UserAccount.IsUserBlueVerified.bind(User), - UserAccount.IsUserGoldVerified.bind(User), - UserAccount.IsUserGrayVerified.bind(User) - ) - - val UserFeaturesSet: BoundFeatureSet = - BoundFeatureSet(UserStateBoundFeature, UserCountryCodeFeature) ++ - BoundFeatureSet(UserVerifiedFeaturesSet.asInstanceOf[Set[BoundFeature[_ <: EntityId, _]]]) - - private val allFeatures: Seq[Feature[_]] = - UserStateBooleanFeatures.toSeq ++ GenderBooleanFeatures.toSeq ++ - UserLocationFeatures.toSeq ++ Seq(UserHealthFeatures.IsUserVerifiedUnion) - - override def getFeatureContext: FeatureContext = new FeatureContext(allFeatures: _*) - override def commonFeatures: Set[Feature[_]] = Set.empty - - override def adaptToDataRecords(record: PredictionRecord): util.List[DataRecord] = { - val newRecord = new RichDataRecord(new DataRecord) - record - .getFeatureValue(UserStateBoundFeature) - .flatMap { userState => userStateToFeatureMap.get(userState.value) }.foreach { - booleanFeature => newRecord.setFeatureValue[JBoolean](booleanFeature, true) - } - record.getFeatureValue(UserCountryCodeFeature).foreach { countryCodeFeatureValue => - newRecord.setFeatureValue[JString](USER_COUNTRY_ID, countryCodeFeatureValue) - } - - val isUserVerifiedUnion = - UserVerifiedFeaturesSet.exists(feature => record.getFeatureValue(feature).getOrElse(false)) - newRecord.setFeatureValue[JBoolean](UserHealthFeatures.IsUserVerifiedUnion, isUserVerifiedUnion) - - List(newRecord.getRecord).asJava - } -} diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesReadableStore.docx b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesReadableStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..3769b54e5868821eb14ed224cbecfabc6be62fe0 GIT binary patch literal 37250 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesReadableStore.scala b/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesReadableStore.scala deleted file mode 100644 index c1931c32b..000000000 --- a/src/scala/com/twitter/timelines/prediction/common/aggregates/real_time/UserFeaturesReadableStore.scala +++ /dev/null @@ -1,37 +0,0 @@ -package com.twitter.timelines.prediction.common.aggregates.real_time - -import com.twitter.ml.api.DataRecord -import com.twitter.ml.featurestore.lib.UserId -import com.twitter.ml.featurestore.lib.data.PredictionRecord -import com.twitter.ml.featurestore.lib.entity.Entity -import com.twitter.ml.featurestore.lib.online.{FeatureStoreClient, FeatureStoreRequest} -import com.twitter.storehaus.ReadableStore -import com.twitter.timelines.prediction.common.adapters.TimelinesAdapterBase -import com.twitter.util.Future -import scala.collection.JavaConverters._ - -class UserFeaturesReadableStore( - featureStoreClient: FeatureStoreClient, - userEntity: Entity[UserId], - userFeaturesAdapter: TimelinesAdapterBase[PredictionRecord]) - extends ReadableStore[Set[Long], DataRecord] { - - override def multiGet[K <: Set[Long]](keys: Set[K]): Map[K, Future[Option[DataRecord]]] = { - val orderedKeys = keys.toSeq - val featureStoreRequests: Seq[FeatureStoreRequest] = orderedKeys.map { key: Set[Long] => - FeatureStoreRequest( - entityIds = key.map(userId => userEntity.withId(UserId(userId))).toSeq - ) - } - val predictionRecordsFut: Future[Seq[PredictionRecord]] = featureStoreClient( - featureStoreRequests) - - orderedKeys.zipWithIndex.map { - case (userId, index) => - val dataRecordFutOpt = predictionRecordsFut.map { predictionRecords => - userFeaturesAdapter.adaptToDataRecords(predictionRecords(index)).asScala.headOption - } - (userId, dataRecordFutOpt) - }.toMap - } -} diff --git a/src/scala/com/twitter/timelines/prediction/features/README.docx b/src/scala/com/twitter/timelines/prediction/features/README.docx new file mode 100644 index 0000000000000000000000000000000000000000..7db5ccc2306782425828ffe992c1faf75410afce GIT binary patch literal 36918 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 L5tu#pcY}BUj4bcV literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/README.md b/src/scala/com/twitter/timelines/prediction/features/README.md deleted file mode 100644 index d42639a77..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Prediction Features - -This directory contains a collection of `Features` (`com.twitter.ml.api.Feature`) which are definitions of feature names and datatypes which allow the features to be efficiently processed and passed to the different ranking models. -By predefining the features with their names and datatypes, when features are being generated, scribed or used to score they can be identified with only a hash of their name. - -Not all of these features are used in the model, many are experimental or deprecated. \ No newline at end of file diff --git a/src/scala/com/twitter/timelines/prediction/features/client_log_event/BUILD b/src/scala/com/twitter/timelines/prediction/features/client_log_event/BUILD deleted file mode 100644 index 3d3c34092..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/client_log_event/BUILD +++ /dev/null @@ -1,11 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/scala/com/twitter/suggests/controller_data", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/timelineservice/server/suggests/logging:thrift-scala", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/client_log_event/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/client_log_event/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..b0654e23ac7522120d1948729f34fdedb309ac7c GIT binary patch literal 36829 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 xe=Z$ptf2kIw(gzs{EU9}>5Q60^``#*zy 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
    O&(S*I6v5x2UcKwL5E-ldg<(?Qb^F2|3i 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/client_log_event/ClientLogEventDataRecordFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/client_log_event/ClientLogEventDataRecordFeatures.scala deleted file mode 100644 index cccb99998..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/client_log_event/ClientLogEventDataRecordFeatures.scala +++ /dev/null @@ -1,169 +0,0 @@ -package com.twitter.timelines.prediction.features.client_log_event - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.ml.api.Feature -import com.twitter.ml.api.Feature.Binary -import com.twitter.ml.api.Feature.Continuous -import com.twitter.ml.api.Feature.Discrete -import scala.collection.JavaConverters._ -import com.twitter.timelineservice.suggests.logging.candidate_tweet_source_id.thriftscala.CandidateTweetSourceId - -object ClientLogEventDataRecordFeatures { - val HasConsumerVideo = new Binary( - "client_log_event.tweet.has_consumer_video", - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val PhotoCount = new Continuous( - "client_log_event.tweet.photo_count", - Set(CountOfPrivateTweetEntitiesAndMetadata, CountOfPublicTweetEntitiesAndMetadata).asJava) - val HasImage = new Binary( - "client_log_event.tweet.has_image", - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val IsReply = - new Binary("client_log_event.tweet.is_reply", Set(PublicReplies, PrivateReplies).asJava) - val IsRetweet = - new Binary("client_log_event.tweet.is_retweet", Set(PublicRetweets, PrivateRetweets).asJava) - val IsPromoted = - new Binary( - "client_log_event.tweet.is_promoted", - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val HasVisibleLink = new Binary( - "client_log_event.tweet.has_visible_link", - Set(UrlFoundFlag, PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val HasHashtag = new Binary( - "client_log_event.tweet.has_hashtag", - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val FromMutualFollow = new Binary("client_log_event.tweet.from_mutual_follow") - val IsInNetwork = new Binary("client_log_event.tweet.is_in_network") - val IsNotInNetwork = new Binary("client_log_event.tweet.is_not_in_network") - val FromRecap = new Binary("client_log_event.tweet.from_recap") - val FromRecycled = new Binary("client_log_event.tweet.from_recycled") - val FromActivity = new Binary("client_log_event.tweet.from_activity") - val FromSimcluster = new Binary("client_log_event.tweet.from_simcluster") - val FromErg = new Binary("client_log_event.tweet.from_erg") - val FromCroon = new Binary("client_log_event.tweet.from_croon") - val FromList = new Binary("client_log_event.tweet.from_list") - val FromRecTopic = new Binary("client_log_event.tweet.from_rec_topic") - val InjectedPosition = new Discrete("client_log_event.tweet.injectedPosition") - val TextOnly = new Binary("client_log_event.tweet.text_only") - val HasLikedBySocialContext = new Binary("client_log_event.tweet.has_liked_by_social_context") - val HasFollowedBySocialContext = new Binary( - "client_log_event.tweet.has_followed_by_social_context") - val HasTopicSocialContext = new Binary("client_log_event.tweet.has_topic_social_context") - val IsFollowedTopicTweet = new Binary("client_log_event.tweet.is_followed_topic_tweet") - val IsRecommendedTopicTweet = new Binary("client_log_event.tweet.is_recommended_topic_tweet") - val IsTweetAgeLessThan15Seconds = new Binary( - "client_log_event.tweet.tweet_age_less_than_15_seconds") - val IsTweetAgeLessThanOrEqualTo30Minutes = new Binary( - "client_log_event.tweet.tweet_age_lte_30_minutes") - val IsTweetAgeLessThanOrEqualTo1Hour = new Binary("client_log_event.tweet.tweet_age_lte_1_hour") - val IsTweetAgeLessThanOrEqualTo6Hours = new Binary("client_log_event.tweet.tweet_age_lte_6_hours") - val IsTweetAgeLessThanOrEqualTo12Hours = new Binary( - "client_log_event.tweet.tweet_age_lte_12_hours") - val IsTweetAgeGreaterThanOrEqualTo24Hours = new Binary( - "client_log_event.tweet.tweet_age_gte_24_hours") - val HasGreaterThanOrEqualTo100Favs = new Binary("client_log_event.tweet.has_gte_100_favs") - val HasGreaterThanOrEqualTo1KFavs = new Binary("client_log_event.tweet.has_gte_1k_favs") - val HasGreaterThanOrEqualTo10KFavs = new Binary("client_log_event.tweet.has_gte_10k_favs") - val HasGreaterThanOrEqualTo100KFavs = new Binary("client_log_event.tweet.has_gte_100k_favs") - val HasGreaterThanOrEqualTo10Retweets = new Binary("client_log_event.tweet.has_gte_10_retweets") - val HasGreaterThanOrEqualTo100Retweets = new Binary("client_log_event.tweet.has_gte_100_retweets") - val HasGreaterThanOrEqualTo1KRetweets = new Binary("client_log_event.tweet.has_gte_1k_retweets") - - val TweetTypeToFeatureMap: Map[String, Binary] = Map( - "link" -> HasVisibleLink, - "hashtag" -> HasHashtag, - "mutual_follow" -> FromMutualFollow, - "in_network" -> IsInNetwork, - "text_only" -> TextOnly, - "has_liked_by_social_context" -> HasLikedBySocialContext, - "has_followed_by_social_context" -> HasFollowedBySocialContext, - "has_topic_social_context" -> HasTopicSocialContext, - "is_followed_topic_tweet" -> IsFollowedTopicTweet, - "is_recommended_topic_tweet" -> IsRecommendedTopicTweet, - "tweet_age_less_than_15_seconds" -> IsTweetAgeLessThan15Seconds, - "tweet_age_lte_30_minutes" -> IsTweetAgeLessThanOrEqualTo30Minutes, - "tweet_age_lte_1_hour" -> IsTweetAgeLessThanOrEqualTo1Hour, - "tweet_age_lte_6_hours" -> IsTweetAgeLessThanOrEqualTo6Hours, - "tweet_age_lte_12_hours" -> IsTweetAgeLessThanOrEqualTo12Hours, - "tweet_age_gte_24_hours" -> IsTweetAgeGreaterThanOrEqualTo24Hours, - "has_gte_100_favs" -> HasGreaterThanOrEqualTo100Favs, - "has_gte_1k_favs" -> HasGreaterThanOrEqualTo1KFavs, - "has_gte_10k_favs" -> HasGreaterThanOrEqualTo10KFavs, - "has_gte_100k_favs" -> HasGreaterThanOrEqualTo100KFavs, - "has_gte_10_retweets" -> HasGreaterThanOrEqualTo10Retweets, - "has_gte_100_retweets" -> HasGreaterThanOrEqualTo100Retweets, - "has_gte_1k_retweets" -> HasGreaterThanOrEqualTo1KRetweets - ) - - val CandidateTweetSourceIdFeatureMap: Map[Int, Binary] = Map( - CandidateTweetSourceId.RecapTweet.value -> FromRecap, - CandidateTweetSourceId.RecycledTweet.value -> FromRecycled, - CandidateTweetSourceId.RecommendedTweet.value -> FromActivity, - CandidateTweetSourceId.Simcluster.value -> FromSimcluster, - CandidateTweetSourceId.ErgTweet.value -> FromErg, - CandidateTweetSourceId.CroonTopicTweet.value -> FromCroon, - CandidateTweetSourceId.CroonTweet.value -> FromCroon, - CandidateTweetSourceId.ListTweet.value -> FromList, - CandidateTweetSourceId.RecommendedTopicTweet.value -> FromRecTopic - ) - - val TweetFeaturesV2: Set[Feature[_]] = Set( - HasImage, - IsReply, - IsRetweet, - HasVisibleLink, - HasHashtag, - FromMutualFollow, - IsInNetwork - ) - - val ContentTweetTypeFeatures: Set[Feature[_]] = Set( - HasImage, - HasVisibleLink, - HasHashtag, - TextOnly, - HasVisibleLink - ) - - val FreshnessTweetTypeFeatures: Set[Feature[_]] = Set( - IsTweetAgeLessThan15Seconds, - IsTweetAgeLessThanOrEqualTo30Minutes, - IsTweetAgeLessThanOrEqualTo1Hour, - IsTweetAgeLessThanOrEqualTo6Hours, - IsTweetAgeLessThanOrEqualTo12Hours, - IsTweetAgeGreaterThanOrEqualTo24Hours - ) - - val SocialProofTweetTypeFeatures: Set[Feature[_]] = Set( - HasLikedBySocialContext, - HasFollowedBySocialContext, - HasTopicSocialContext - ) - - val TopicTweetPreferenceTweetTypeFeatures: Set[Feature[_]] = Set( - IsFollowedTopicTweet, - IsRecommendedTopicTweet - ) - - val TweetPopularityTweetTypeFeatures: Set[Feature[_]] = Set( - HasGreaterThanOrEqualTo100Favs, - HasGreaterThanOrEqualTo1KFavs, - HasGreaterThanOrEqualTo10KFavs, - HasGreaterThanOrEqualTo100KFavs, - HasGreaterThanOrEqualTo10Retweets, - HasGreaterThanOrEqualTo100Retweets, - HasGreaterThanOrEqualTo1KRetweets - ) - - val UserGraphInteractionTweetTypeFeatures: Set[Feature[_]] = Set( - IsInNetwork, - FromMutualFollow, - IsNotInNetwork, - IsPromoted - ) - - val UserContentPreferenceTweetTypeFeatures: Set[Feature[_]] = - ContentTweetTypeFeatures ++ FreshnessTweetTypeFeatures ++ SocialProofTweetTypeFeatures ++ TopicTweetPreferenceTweetTypeFeatures ++ TweetPopularityTweetTypeFeatures ++ UserGraphInteractionTweetTypeFeatures - val AuthorContentPreferenceTweetTypeFeatures: Set[Feature[_]] = - Set(IsInNetwork, FromMutualFollow, IsNotInNetwork) ++ ContentTweetTypeFeatures -} diff --git a/src/scala/com/twitter/timelines/prediction/features/common/BUILD b/src/scala/com/twitter/timelines/prediction/features/common/BUILD deleted file mode 100644 index bfbe764c7..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/common/BUILD +++ /dev/null @@ -1,11 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/ml/api:data-java", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/common/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/common/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..833ed8363d9b0cd2f31867b43a4fc28b512be9f6 GIT binary patch literal 36828 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 z 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 JBoolean} -import scala.collection.JavaConverters._ - -object CombinedFeatures { - val IS_CLICKED = - new Binary("timelines.engagement.is_clicked", Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_DWELLED = - new Binary("timelines.engagement.is_dwelled", Set(TweetsViewed, EngagementsPrivate).asJava) - val IS_DWELLED_IN_BOUNDS_V1 = new Binary( - "timelines.engagement.is_dwelled_in_bounds_v1", - Set(TweetsViewed, EngagementsPrivate).asJava) - val IS_FAVORITED = new Binary( - "timelines.engagement.is_favorited", - Set(PublicLikes, PrivateLikes, EngagementsPrivate, EngagementsPublic).asJava) - val IS_FOLLOWED = new Binary( - "timelines.engagement.is_followed", - Set(EngagementsPrivate, EngagementsPublic, Follow).asJava) - val IS_IMPRESSED = - new Binary("timelines.engagement.is_impressed", Set(TweetsViewed, EngagementsPrivate).asJava) - val IS_OPEN_LINKED = new Binary( - "timelines.engagement.is_open_linked", - Set(EngagementsPrivate, LinksClickedOn).asJava) - val IS_PHOTO_EXPANDED = new Binary( - "timelines.engagement.is_photo_expanded", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_PROFILE_CLICKED = new Binary( - "timelines.engagement.is_profile_clicked", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_QUOTED = new Binary( - "timelines.engagement.is_quoted", - Set(PublicRetweets, PrivateRetweets, EngagementsPrivate, EngagementsPublic).asJava) - val IS_REPLIED = new Binary( - "timelines.engagement.is_replied", - Set(PublicReplies, PrivateReplies, EngagementsPrivate, EngagementsPublic).asJava) - val IS_RETWEETED = new Binary( - "timelines.engagement.is_retweeted", - Set(PublicRetweets, PrivateRetweets, EngagementsPrivate, EngagementsPublic).asJava) - val IS_RETWEETED_WITHOUT_QUOTE = new Binary( - "timelines.enagagement.is_retweeted_without_quote", - Set(PublicRetweets, PrivateRetweets, EngagementsPrivate, EngagementsPublic).asJava) - val IS_SHARE_DM_CLICKED = - new Binary("timelines.engagement.is_tweet_share_dm_clicked", Set(EngagementsPrivate).asJava) - val IS_SHARE_DM_SENT = - new Binary("timelines.engagement.is_tweet_share_dm_sent", Set(EngagementsPrivate).asJava) - val IS_VIDEO_PLAYBACK_25 = new Binary( - "timelines.engagement.is_video_playback_25", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_VIDEO_PLAYBACK_50 = new Binary( - "timelines.engagement.is_video_playback_50", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_VIDEO_PLAYBACK_75 = new Binary( - "timelines.engagement.is_video_playback_75", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_VIDEO_PLAYBACK_95 = new Binary( - "timelines.engagement.is_video_playback_95", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_VIDEO_PLAYBACK_COMPLETE = new Binary( - "timelines.engagement.is_video_playback_complete", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_VIDEO_PLAYBACK_START = new Binary( - "timelines.engagement.is_video_playback_start", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_VIDEO_VIEWED = new Binary( - "timelines.engagement.is_video_viewed", - Set(MediaEngagementActivities, EngagementsPrivate).asJava) - val IS_VIDEO_QUALITY_VIEWED = new Binary( - "timelines.engagement.is_video_quality_viewed", - Set(MediaEngagementActivities, EngagementsPrivate).asJava - ) - // v1: post click engagements: fav, reply - val IS_GOOD_CLICKED_CONVO_DESC_V1 = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_favorited_or_replied", - Set( - TweetsClicked, - PublicLikes, - PrivateLikes, - PublicReplies, - PrivateReplies, - EngagementsPrivate, - EngagementsPublic).asJava) - // v2: post click engagements: click - val IS_GOOD_CLICKED_CONVO_DESC_V2 = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_v2", - Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_GOOD_CLICKED_WITH_DWELL_SUM_GTE_60S = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_favorited_or_replied_or_dwell_sum_gte_60_secs", - Set( - TweetsClicked, - PublicLikes, - PrivateLikes, - PublicReplies, - PrivateReplies, - EngagementsPrivate, - EngagementsPublic).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_FAVORITED = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_favorited", - Set(PublicLikes, PrivateLikes, EngagementsPrivate, EngagementsPublic).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_REPLIED = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_replied", - Set(PublicReplies, PrivateReplies, EngagementsPrivate, EngagementsPublic).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_RETWEETED = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_retweeted", - Set(PublicRetweets, PrivateRetweets, EngagementsPrivate, EngagementsPublic).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_CLICKED = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_clicked", - Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_FOLLOWED = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_followed", - Set(EngagementsPrivate).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_SHARE_DM_CLICKED = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_share_dm_clicked", - Set(EngagementsPrivate).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_PROFILE_CLICKED = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_profile_clicked", - Set(EngagementsPrivate).asJava) - - val IS_GOOD_CLICKED_CONVO_DESC_UAM_GT_0 = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_uam_gt_0", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_UAM_GT_1 = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_uam_gt_1", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_UAM_GT_2 = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_uam_gt_2", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val IS_GOOD_CLICKED_CONVO_DESC_UAM_GT_3 = new Binary( - "timelines.engagement.is_good_clicked_convo_desc_uam_gt_3", - Set(EngagementsPrivate, EngagementsPublic).asJava) - - val IS_TWEET_DETAIL_DWELLED = new Binary( - "timelines.engagement.is_tweet_detail_dwelled", - Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_TWEET_DETAIL_DWELLED_8_SEC = new Binary( - "timelines.engagement.is_tweet_detail_dwelled_8_sec", - Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_TWEET_DETAIL_DWELLED_15_SEC = new Binary( - "timelines.engagement.is_tweet_detail_dwelled_15_sec", - Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_TWEET_DETAIL_DWELLED_25_SEC = new Binary( - "timelines.engagement.is_tweet_detail_dwelled_25_sec", - Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_TWEET_DETAIL_DWELLED_30_SEC = new Binary( - "timelines.engagement.is_tweet_detail_dwelled_30_sec", - Set(TweetsClicked, EngagementsPrivate).asJava) - - val IS_PROFILE_DWELLED = new Binary( - "timelines.engagement.is_profile_dwelled", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_PROFILE_DWELLED_10_SEC = new Binary( - "timelines.engagement.is_profile_dwelled_10_sec", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_PROFILE_DWELLED_20_SEC = new Binary( - "timelines.engagement.is_profile_dwelled_20_sec", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_PROFILE_DWELLED_30_SEC = new Binary( - "timelines.engagement.is_profile_dwelled_30_sec", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - - val IS_FULLSCREEN_VIDEO_DWELLED = new Binary( - "timelines.engagement.is_fullscreen_video_dwelled", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_FULLSCREEN_VIDEO_DWELLED_5_SEC = new Binary( - "timelines.engagement.is_fullscreen_video_dwelled_5_sec", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_FULLSCREEN_VIDEO_DWELLED_10_SEC = new Binary( - "timelines.engagement.is_fullscreen_video_dwelled_10_sec", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_FULLSCREEN_VIDEO_DWELLED_20_SEC = new Binary( - "timelines.engagement.is_fullscreen_video_dwelled_20_sec", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_FULLSCREEN_VIDEO_DWELLED_30_SEC = new Binary( - "timelines.engagement.is_fullscreen_video_dwelled_30_sec", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_LINK_DWELLED_15_SEC = new Binary( - "timelines.engagement.is_link_dwelled_15_sec", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_LINK_DWELLED_30_SEC = new Binary( - "timelines.engagement.is_link_dwelled_30_sec", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_LINK_DWELLED_60_SEC = new Binary( - "timelines.engagement.is_link_dwelled_60_sec", - Set(MediaEngagementActivities, EngagementTypePrivate, EngagementsPrivate).asJava) - - val IS_HOME_LATEST_VISITED = - new Binary("timelines.engagement.is_home_latest_visited", Set(EngagementsPrivate).asJava) - - val IS_BOOKMARKED = - new Binary("timelines.engagement.is_bookmarked", Set(EngagementsPrivate).asJava) - val IS_SHARED = - new Binary("timelines.engagement.is_shared", Set(EngagementsPrivate).asJava) - val IS_SHARE_MENU_CLICKED = - new Binary("timelines.engagement.is_share_menu_clicked", Set(EngagementsPrivate).asJava) - - // Negative engagements - val IS_DONT_LIKE = new Binary("timelines.engagement.is_dont_like", Set(EngagementsPrivate).asJava) - val IS_BLOCK_CLICKED = new Binary( - "timelines.engagement.is_block_clicked", - Set(Blocks, TweetsClicked, EngagementsPrivate, EngagementsPublic).asJava) - val IS_BLOCK_DIALOG_BLOCKED = new Binary( - "timelines.engagement.is_block_dialog_blocked", - Set(Blocks, EngagementsPrivate, EngagementsPublic).asJava) - val IS_MUTE_CLICKED = new Binary( - "timelines.engagement.is_mute_clicked", - Set(Mutes, TweetsClicked, EngagementsPrivate).asJava) - val IS_MUTE_DIALOG_MUTED = - new Binary("timelines.engagement.is_mute_dialog_muted", Set(Mutes, EngagementsPrivate).asJava) - val IS_REPORT_TWEET_CLICKED = new Binary( - "timelines.engagement.is_report_tweet_clicked", - Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_CARET_CLICKED = - new Binary("timelines.engagement.is_caret_clicked", Set(EngagementsPrivate).asJava) - val IS_NOT_ABOUT_TOPIC = - new Binary("timelines.engagement.is_not_about_topic", Set(EngagementsPrivate).asJava) - val IS_NOT_RECENT = - new Binary("timelines.engagement.is_not_recent", Set(EngagementsPrivate).asJava) - val IS_NOT_RELEVANT = - new Binary("timelines.engagement.is_not_relevant", Set(EngagementsPrivate).asJava) - val IS_SEE_FEWER = - new Binary("timelines.engagement.is_see_fewer", Set(EngagementsPrivate).asJava) - val IS_UNFOLLOW_TOPIC = - new Binary("timelines.engagement.is_unfollow_topic", Set(EngagementsPrivate).asJava) - val IS_FOLLOW_TOPIC = - new Binary("timelines.engagement.is_follow_topic", Set(EngagementsPrivate).asJava) - val IS_NOT_INTERESTED_IN_TOPIC = - new Binary("timelines.engagement.is_not_interested_in_topic", Set(EngagementsPrivate).asJava) - val IS_NEGATIVE_FEEDBACK = - new Binary("timelines.engagement.is_negative_feedback", Set(EngagementsPrivate).asJava) - val IS_IMPLICIT_POSITIVE_FEEDBACK_UNION = - new Binary( - "timelines.engagement.is_implicit_positive_feedback_union", - Set(EngagementsPrivate).asJava) - val IS_EXPLICIT_POSITIVE_FEEDBACK_UNION = - new Binary( - "timelines.engagement.is_explicit_positive_feedback_union", - Set(EngagementsPrivate).asJava) - val IS_ALL_NEGATIVE_FEEDBACK_UNION = - new Binary( - "timelines.engagement.is_all_negative_feedback_union", - Set(EngagementsPrivate).asJava) - // Reciprocal engagements for reply forward engagement - val IS_REPLIED_REPLY_IMPRESSED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_impressed_by_author", - Set(EngagementsPrivate).asJava) - val IS_REPLIED_REPLY_FAVORITED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_favorited_by_author", - Set(EngagementsPrivate, EngagementsPublic, PrivateLikes, PublicLikes).asJava) - val IS_REPLIED_REPLY_QUOTED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_quoted_by_author", - Set(EngagementsPrivate, EngagementsPublic, PrivateRetweets, PublicRetweets).asJava) - val IS_REPLIED_REPLY_REPLIED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_replied_by_author", - Set(EngagementsPrivate, EngagementsPublic, PrivateReplies, PublicReplies).asJava) - val IS_REPLIED_REPLY_RETWEETED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_retweeted_by_author", - Set(EngagementsPrivate, EngagementsPublic, PrivateRetweets, PublicRetweets).asJava) - val IS_REPLIED_REPLY_BLOCKED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_blocked_by_author", - Set(Blocks, EngagementsPrivate, EngagementsPublic).asJava) - val IS_REPLIED_REPLY_FOLLOWED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_followed_by_author", - Set(EngagementsPrivate, EngagementsPublic, Follow).asJava) - val IS_REPLIED_REPLY_UNFOLLOWED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_unfollowed_by_author", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val IS_REPLIED_REPLY_MUTED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_muted_by_author", - Set(Mutes, EngagementsPrivate).asJava) - val IS_REPLIED_REPLY_REPORTED_BY_AUTHOR = new Binary( - "timelines.engagement.is_replied_reply_reported_by_author", - Set(EngagementsPrivate).asJava) - - // Reciprocal engagements for fav forward engagement - val IS_FAVORITED_FAV_FAVORITED_BY_AUTHOR = new Binary( - "timelines.engagement.is_favorited_fav_favorited_by_author", - Set(EngagementsPrivate, EngagementsPublic, PrivateLikes, PublicLikes).asJava - ) - val IS_FAVORITED_FAV_REPLIED_BY_AUTHOR = new Binary( - "timelines.engagement.is_favorited_fav_replied_by_author", - Set(EngagementsPrivate, EngagementsPublic, PrivateReplies, PublicReplies).asJava - ) - val IS_FAVORITED_FAV_RETWEETED_BY_AUTHOR = new Binary( - "timelines.engagement.is_favorited_fav_retweeted_by_author", - Set(EngagementsPrivate, EngagementsPublic, PrivateRetweets, PublicRetweets).asJava - ) - val IS_FAVORITED_FAV_FOLLOWED_BY_AUTHOR = new Binary( - "timelines.engagement.is_favorited_fav_followed_by_author", - Set(EngagementsPrivate, EngagementsPublic).asJava - ) - - // define good profile click by considering following engagements (follow, fav, reply, retweet, etc.) at profile page - val IS_PROFILE_CLICKED_AND_PROFILE_FOLLOW = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_follow", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate, Follow).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_FAV = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_fav", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate, PrivateLikes, PublicLikes).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_REPLY = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_reply", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate, PrivateReplies, PublicReplies).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_RETWEET = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_retweet", - Set( - ProfilesViewed, - ProfilesClicked, - EngagementsPrivate, - PrivateRetweets, - PublicRetweets).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_TWEET_CLICK = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_tweet_click", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate, TweetsClicked).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_SHARE_DM_CLICK = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_share_dm_click", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - // This derived label is the union of all binary features above - val IS_PROFILE_CLICKED_AND_PROFILE_ENGAGED = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_engaged", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate, EngagementsPublic).asJava) - - // define bad profile click by considering following engagements (user report, tweet report, mute, block, etc) at profile page - val IS_PROFILE_CLICKED_AND_PROFILE_USER_REPORT_CLICK = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_user_report_click", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_TWEET_REPORT_CLICK = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_tweet_report_click", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_MUTE = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_mute", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_PROFILE_CLICKED_AND_PROFILE_BLOCK = new Binary( - "timelines.engagement.is_profile_clicked_and_profile_block", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - // This derived label is the union of bad profile click engagements and existing negative feedback - val IS_NEGATIVE_FEEDBACK_V2 = new Binary( - "timelines.engagement.is_negative_feedback_v2", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - val IS_NEGATIVE_FEEDBACK_UNION = new Binary( - "timelines.engagement.is_negative_feedback_union", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - // don't like, mute or profile page -> mute - val IS_WEAK_NEGATIVE_FEEDBACK = new Binary( - "timelines.engagement.is_weak_negative_feedback", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - // report, block or profile page -> report, block - val IS_STRONG_NEGATIVE_FEEDBACK = new Binary( - "timelines.engagement.is_strong_negative_feedback", - Set(ProfilesViewed, ProfilesClicked, EngagementsPrivate).asJava) - // engagement for following user from any surface area - val IS_FOLLOWED_FROM_ANY_SURFACE_AREA = new Binary( - "timelines.engagement.is_followed_from_any_surface_area", - Set(EngagementsPublic, EngagementsPrivate).asJava) - val IS_RELEVANCE_PROMPT_YES_CLICKED = new Binary( - "timelines.engagement.is_relevance_prompt_yes_clicked", - Set(EngagementsPublic, EngagementsPrivate).asJava) - - // Reply downvote engagements - val IS_REPLY_DOWNVOTED = - new Binary("timelines.engagement.is_reply_downvoted", Set(EngagementsPrivate).asJava) - val IS_REPLY_DOWNVOTE_REMOVED = - new Binary("timelines.engagement.is_reply_downvote_removed", Set(EngagementsPrivate).asJava) - - /** - * Contains all engagements that are used/consumed by real-time - * aggregates summingbird jobs. These engagements need to be - * extractable from [[ClientEvent]]. - */ - val EngagementsRealTime: Set[Feature[JBoolean]] = Set( - IS_CLICKED, - IS_DWELLED, - IS_FAVORITED, - IS_FOLLOWED, - IS_OPEN_LINKED, - IS_PHOTO_EXPANDED, - IS_PROFILE_CLICKED, - IS_QUOTED, - IS_REPLIED, - IS_RETWEETED, - IS_RETWEETED_WITHOUT_QUOTE, - IS_SHARE_DM_CLICKED, - IS_SHARE_DM_SENT, - IS_VIDEO_PLAYBACK_50, - IS_VIDEO_VIEWED, - IS_VIDEO_QUALITY_VIEWED - ) - - val NegativeEngagementsRealTime: Set[Feature[JBoolean]] = Set( - IS_REPORT_TWEET_CLICKED, - IS_BLOCK_CLICKED, - IS_MUTE_CLICKED - ) - - val NegativeEngagementsRealTimeDontLike: Set[Feature[JBoolean]] = Set( - IS_DONT_LIKE - ) - - val NegativeEngagementsSecondary: Set[Feature[JBoolean]] = Set( - IS_NOT_INTERESTED_IN_TOPIC, - IS_NOT_ABOUT_TOPIC, - IS_NOT_RECENT, - IS_NOT_RELEVANT, - IS_SEE_FEWER, - IS_UNFOLLOW_TOPIC - ) - - val PrivateEngagements: Set[Feature[JBoolean]] = Set( - IS_CLICKED, - IS_DWELLED, - IS_OPEN_LINKED, - IS_PHOTO_EXPANDED, - IS_PROFILE_CLICKED, - IS_QUOTED, - IS_VIDEO_PLAYBACK_50, - IS_VIDEO_QUALITY_VIEWED - ) - - val ImpressedEngagements: Set[Feature[JBoolean]] = Set( - IS_IMPRESSED - ) - - val PrivateEngagementsV2: Set[Feature[JBoolean]] = Set( - IS_CLICKED, - IS_OPEN_LINKED, - IS_PHOTO_EXPANDED, - IS_PROFILE_CLICKED, - IS_VIDEO_PLAYBACK_50, - IS_VIDEO_QUALITY_VIEWED - ) ++ ImpressedEngagements - - val CoreEngagements: Set[Feature[JBoolean]] = Set( - IS_FAVORITED, - IS_REPLIED, - IS_RETWEETED - ) - - val DwellEngagements: Set[Feature[JBoolean]] = Set( - IS_DWELLED - ) - - val PrivateCoreEngagements: Set[Feature[JBoolean]] = Set( - IS_CLICKED, - IS_OPEN_LINKED, - IS_PHOTO_EXPANDED, - IS_VIDEO_PLAYBACK_50, - IS_VIDEO_QUALITY_VIEWED - ) - - val ConditionalEngagements: Set[Feature[JBoolean]] = Set( - IS_GOOD_CLICKED_CONVO_DESC_V1, - IS_GOOD_CLICKED_CONVO_DESC_V2, - IS_GOOD_CLICKED_WITH_DWELL_SUM_GTE_60S - ) - - val ShareEngagements: Set[Feature[JBoolean]] = Set( - IS_SHARED, - IS_SHARE_MENU_CLICKED - ) - - val BookmarkEngagements: Set[Feature[JBoolean]] = Set( - IS_BOOKMARKED - ) - - val TweetDetailDwellEngagements: Set[Feature[JBoolean]] = Set( - IS_TWEET_DETAIL_DWELLED, - IS_TWEET_DETAIL_DWELLED_8_SEC, - IS_TWEET_DETAIL_DWELLED_15_SEC, - IS_TWEET_DETAIL_DWELLED_25_SEC, - IS_TWEET_DETAIL_DWELLED_30_SEC - ) - - val ProfileDwellEngagements: Set[Feature[JBoolean]] = Set( - IS_PROFILE_DWELLED, - IS_PROFILE_DWELLED_10_SEC, - IS_PROFILE_DWELLED_20_SEC, - IS_PROFILE_DWELLED_30_SEC - ) - - val FullscreenVideoDwellEngagements: Set[Feature[JBoolean]] = Set( - IS_FULLSCREEN_VIDEO_DWELLED, - IS_FULLSCREEN_VIDEO_DWELLED_5_SEC, - IS_FULLSCREEN_VIDEO_DWELLED_10_SEC, - IS_FULLSCREEN_VIDEO_DWELLED_20_SEC, - IS_FULLSCREEN_VIDEO_DWELLED_30_SEC - ) - - // Please do not add new engagements here until having estimated the impact - // to capacity requirements. User-author real-time aggregates have a very - // large key space. - val UserAuthorEngagements: Set[Feature[JBoolean]] = CoreEngagements ++ DwellEngagements ++ Set( - IS_CLICKED, - IS_PROFILE_CLICKED, - IS_PHOTO_EXPANDED, - IS_VIDEO_PLAYBACK_50, - IS_NEGATIVE_FEEDBACK_UNION - ) - - val ImplicitPositiveEngagements: Set[Feature[JBoolean]] = Set( - IS_CLICKED, - IS_DWELLED, - IS_OPEN_LINKED, - IS_PROFILE_CLICKED, - IS_QUOTED, - IS_VIDEO_PLAYBACK_50, - IS_VIDEO_QUALITY_VIEWED, - IS_TWEET_DETAIL_DWELLED, - IS_GOOD_CLICKED_CONVO_DESC_V1, - IS_GOOD_CLICKED_CONVO_DESC_V2, - IS_SHARED, - IS_SHARE_MENU_CLICKED, - IS_SHARE_DM_SENT, - IS_SHARE_DM_CLICKED - ) - - val ExplicitPositiveEngagements: Set[Feature[JBoolean]] = CoreEngagements ++ Set( - IS_FOLLOWED, - IS_QUOTED - ) - - val AllNegativeEngagements: Set[Feature[JBoolean]] = - NegativeEngagementsRealTime ++ NegativeEngagementsRealTimeDontLike ++ Set( - IS_NOT_RECENT, - IS_NOT_RELEVANT, - IS_SEE_FEWER - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/common/NonHomeLabelFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/common/NonHomeLabelFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..ac439d03c565239448d32a6d88d98c85110d89f2 GIT binary patch literal 37509 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

    `2|6yfOUdC80 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/common/NonHomeLabelFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/common/NonHomeLabelFeatures.scala deleted file mode 100644 index 369b48b39..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/common/NonHomeLabelFeatures.scala +++ /dev/null @@ -1,97 +0,0 @@ -package com.twitter.timelines.prediction.features.common - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.ml.api.Feature -import com.twitter.ml.api.Feature.Binary -import java.lang.{Boolean => JBoolean} -import scala.collection.JavaConverters._ - -object ProfileLabelFeatures { - private val prefix = "profile" - - val IS_CLICKED = - new Binary(s"${prefix}.engagement.is_clicked", Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_DWELLED = - new Binary(s"${prefix}.engagement.is_dwelled", Set(TweetsViewed, EngagementsPrivate).asJava) - val IS_FAVORITED = new Binary( - s"${prefix}.engagement.is_favorited", - Set(PublicLikes, PrivateLikes, EngagementsPrivate, EngagementsPublic).asJava) - val IS_REPLIED = new Binary( - s"${prefix}.engagement.is_replied", - Set(PublicReplies, PrivateReplies, EngagementsPrivate, EngagementsPublic).asJava) - val IS_RETWEETED = new Binary( - s"${prefix}.engagement.is_retweeted", - Set(PublicRetweets, PrivateRetweets, EngagementsPrivate, EngagementsPublic).asJava) - - // Negative engagements - val IS_DONT_LIKE = - new Binary(s"${prefix}.engagement.is_dont_like", Set(EngagementsPrivate).asJava) - val IS_BLOCK_CLICKED = new Binary( - s"${prefix}.engagement.is_block_clicked", - Set(Blocks, TweetsClicked, EngagementsPrivate, EngagementsPublic).asJava) - val IS_MUTE_CLICKED = new Binary( - s"${prefix}.engagement.is_mute_clicked", - Set(Mutes, TweetsClicked, EngagementsPrivate).asJava) - val IS_REPORT_TWEET_CLICKED = new Binary( - s"${prefix}.engagement.is_report_tweet_clicked", - Set(TweetsClicked, EngagementsPrivate).asJava) - - val IS_NEGATIVE_FEEDBACK_UNION = new Binary( - s"${prefix}.engagement.is_negative_feedback_union", - Set(EngagementsPrivate, Blocks, Mutes, TweetsClicked, EngagementsPublic).asJava) - - val CoreEngagements: Set[Feature[JBoolean]] = Set( - IS_CLICKED, - IS_DWELLED, - IS_FAVORITED, - IS_REPLIED, - IS_RETWEETED - ) - - val NegativeEngagements: Set[Feature[JBoolean]] = Set( - IS_DONT_LIKE, - IS_BLOCK_CLICKED, - IS_MUTE_CLICKED, - IS_REPORT_TWEET_CLICKED - ) - -} - -object SearchLabelFeatures { - private val prefix = "search" - - val IS_CLICKED = - new Binary(s"${prefix}.engagement.is_clicked", Set(TweetsClicked, EngagementsPrivate).asJava) - val IS_DWELLED = - new Binary(s"${prefix}.engagement.is_dwelled", Set(TweetsViewed, EngagementsPrivate).asJava) - val IS_FAVORITED = new Binary( - s"${prefix}.engagement.is_favorited", - Set(PublicLikes, PrivateLikes, EngagementsPrivate, EngagementsPublic).asJava) - val IS_REPLIED = new Binary( - s"${prefix}.engagement.is_replied", - Set(PublicReplies, PrivateReplies, EngagementsPrivate, EngagementsPublic).asJava) - val IS_RETWEETED = new Binary( - s"${prefix}.engagement.is_retweeted", - Set(PublicRetweets, PrivateRetweets, EngagementsPrivate, EngagementsPublic).asJava) - val IS_PROFILE_CLICKED_SEARCH_RESULT_USER = new Binary( - s"${prefix}.engagement.is_profile_clicked_search_result_user", - Set(ProfilesClicked, ProfilesViewed, EngagementsPrivate).asJava) - val IS_PROFILE_CLICKED_SEARCH_RESULT_TWEET = new Binary( - s"${prefix}.engagement.is_profile_clicked_search_result_tweet", - Set(ProfilesClicked, ProfilesViewed, EngagementsPrivate).asJava) - val IS_PROFILE_CLICKED_TYPEAHEAD_USER = new Binary( - s"${prefix}.engagement.is_profile_clicked_typeahead_user", - Set(ProfilesClicked, ProfilesViewed, EngagementsPrivate).asJava) - - val CoreEngagements: Set[Feature[JBoolean]] = Set( - IS_CLICKED, - IS_DWELLED, - IS_FAVORITED, - IS_REPLIED, - IS_RETWEETED, - IS_PROFILE_CLICKED_SEARCH_RESULT_USER, - IS_PROFILE_CLICKED_SEARCH_RESULT_TWEET, - IS_PROFILE_CLICKED_TYPEAHEAD_USER - ) -} -// Add Tweet Detail labels later diff --git a/src/scala/com/twitter/timelines/prediction/features/common/TimelinesSharedFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/common/TimelinesSharedFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..f8b64c5694b73c608e075b0f800213efaeea57a5 GIT binary patch literal 44064 zcmaI6V_;}a&oHR$4%kP}?XCX65t|YT&W=$e1 z0R)T)0000Ez@N^dS|wi;mjnm^Fb)a;fbc`r5U{a!G_rQoQFOC4a?ql7wX$qVl9E~H zg$=&`L`tUN#`O?@K`P&~CAFoDLl>;ccw|*up}Ca&_4+)?9;P%W8v;rlmznnLg}q+S z)$Q3#tRWzHsil>vQh*Os;#shnPkm*~awrssC$=oQkF_uaTHBiGi8jLwNV{JCKos5mSpYio zyw{(MqybMW5j35?Gp5Qj@Oj|*nXD*=ko$EdRQq{hUdn1x$#)bcm`RDJPQHULCV7m3 zjpf_!OaR~OF*i_Sl}%9Et5Z;ii`0*I(BtJ6`u#``WDWJ@k6-n(=to!aq0_p5zJVlV zGMUC_5>_ExPn_Pn#~Wlx1)3mt-^X&v<{{7cGk*R%qLem(?Ei?O8?glM%TM&SegObL z{@iu!jVv8#sQgmTYDUFR5xf zuyhH3;c0dh)%E2)i?xMQNRu|CLt!n17PCWm5D+__i7tyS0osJNv*2@sG` z&~_z!0G;ZDA7nLY78Rm084ubn}kfDu%ti6q`1C4==z0p5|JS%=edVm&I=-E?fK}tF79u{0k zj2!SRTwD~8;tkx9yOBAa?FTZo*kDk-r4y7z7Vj@X3VV7xa%4*d^AZ8nft2A!7VQYbsYU_BG#Lhv+R zR;zq*-U+_~oYZQtGH*O-I{_5#AtKqSpC5Ku0zrHOTv}^mv5c%>r8n!ajB78Pau#%+cd1r3sL65j_nS}h#N_>8}HKWT&6hkcG%LEo{7yV1w zJ(Yjb;PWl=g|>o8@xpQojCy7QtxY!XBJlOme~0lu0s ze}zSH!g`$+w)33=Sj#co42(|>HQs-TZ%$wny*56xWnmm&JPx>xZqM86H57?0nC3Bz zqk-eSar}Lm&ls#x+EfW?;x&I%)@~D`sV02nXnpD!-vPKBqzp-U2u{mRXJ))=5tQn; zW15O=^|%LqgZ|_#Hkhr048@G&8Z_@#qepRvw5{jthY_#Pg>&7@;7yWj)5=z=9IZ@v z1<+@WX@y(q3>TBg{^OZiauO7@@Grej2H**|3NzBxP+=4)TnswhuA50yU~@>;ZY)ad^`9Cj%5Ci{U>jpq%x3iV|wp?6W2 zu|2AMBe`r$K%WAnkz;=elFapN`X1nNRQ)#WVq2dY$~a=7C7z&x-#GYJK9B{;*95@S zv0@XN(-3^>#%=B|SXlogRNVoo0*2omydP!NA|&#fVXn5r5qeF}aSPQ=)K-Y^QCH$| zRS%O8CS$$p<6ux2kX@-99}6t2Ye{QFA>}Zk!#NY}26?vu9@>zABwBEx%8EFv@8LX~ zqJP3t-&)Zf@4Py3L7usQvU;~R{KihX{B8L;7CC|K*J`<)lEgiwvQ5Yll8K_^VJQ=r zGPo|rQzRqO)tN!_L4$qsJLB~p<9qS(0_T4Y3~R9BK1v(_fb$H%e|@knHui=zKVPkr z)z9Me&&ascvU11}ZT|B10XbaLNLaN$NHMH;P{?QtBC=%Q;|C&@ev+_(REIYZWbnN( zwZ8P}Id%k!w<4<}0c{E>Dc1iDi-?<>q{eC@4Te-ZNidD!#i_Q|~Sr9Zu=8Ne~Px_&0K6QB4_Ik97>g|0JaS<||ixqWTz zaF&7-0|Vm|e66RsxnC{FsYjQYdE+SU@RBaQi*kC1@Amsy(iA&-fOIm&wT5NUs(R~^ z>hFt{T}(<6=1WEkZtr@9o1*q)k7E^La$yj~-ta^n2YfAB5W(+995v_qE4$3iPgZ3A1ezYAXRgA8mBGe=xYG&g9HT)bu*V7~fo3Ojc> zcg?&7G;bENfHB!)%mja>&r5Sl42XSkbmeF1+2w5w{+fUE_ALr>g5iyGrIWW;j1`@yp!eTH*S9!S&gu^I6AP zYyE(Yb@qs|gsGeELzICV8fxSM11RPJN(O8qVzsF`8@sDCNp2VNNx2QU+djlAc!6V3 znW^vEgXe0QJYeDuMfg#aVP#o)TeisOV)oB`s1`^Ijp-=mq#|Vl)J}T}-2@%MyeX!sXPgD5rh}cR;C-b6!3D18 zWKB?I(6jFf>^-Lc#Utf|2|ASNFS3j$d?Rit#%%K&zR|}5XDNo)<{Nnhi@9*O zO7i4XT~-&|>*ikiUtGv|#_$xj-{ttKaF7;4>;TGP79^s|2t~4V1pmB__3@(*wAwri zC-Z^2_XMJ^>*xfiK}g(?Kh6%LG)gWL7+-6zA^1h$>D^4x*vsT;(ldeq6(m-Ls_Mj2 z5{RJ&Xeh#%&7RYOhM){g1o?piiW(p`x}W&(zZ>+`cNXX^ld`(Yer~g|zR^9>FwHqJ z$5b$f-AHnOAb^^pFYbbO7cnK!J4R-cS@qF*W1u}RXDF56l5I6RQ>}rvnmn@LVb|&c zN^8DkBz7UT@a2A@u@k`2(7gzIvV&Y}Gt5@+deXYXfT)dkQuqp$X7Xa9w0n#tgD(?h zY5s+8^nxM`h@jJkki#M?L(`3r(v9TS($_YT29J+$Rv?-d=c0&9*L%^MWZrd^$a-I7 z275-TSztB%q6@4Xcug-Vk7kQO1qnf)E4zWu z)iPH@aeAma`h2=OdEAu=c|0R0W>Z4WntH*9z-^muvWv6w_vPGL9)=r){1Z^0Ci~(0 z!kHa7-=cnftisdd{#krwIR;Ww^gLQ-@GPcsosIDvx(VB?APnSBi=g)|ZidFl zgWBBW*&TY{-Y~P$Dxh2SnaCyWF- z*7=z~a~RG!Pj}+A(*=!5*BLqn+B@+Ip8=Pt*v#JMm)P&&Ce=x!_xTZasZ-o+}k|hSr_*178h0@%$1=K4jo9pOfU*ks43877w{kuKre? zJU+?UU{0NE8?w1(?y{P4Cm;tZ47gM zNDo7v)Zw7| zIibHX0-1WqL_Wb}S%uwTY(uLq;pBctdx6Q|+z1__- z{RXW_E?>stoIfPjDh5h~(M31#|5_VjqZGSPrx9G0%1mvyCFs3bzHa zIPp|RhUpBxP)Vc~5y(mm{5J}0(Ti~J^Aq5Nd&(PI|&`*W?bJK$105I zhA+oJoA;5ZeMkrZm^?zkBrSK$v<2gXL9rI=-u>)~J&wQvGSP)$Ixvx%9#jf&YX)=qLyfh4Z1@EA~mtNw9IjM6D*6MElX-Nj(T={Kl^MQC*@aYf07qaLvb8}p=nu^yFa^Gaan)Tudu__OoV}#pOH>kn zO75eq^BlJqltU&8!6*GbB2q83`6C=&lL0#m$J#Bcdm4BrEL-hU8eFV|eMp(YsaWt= z#?!aK+g(N^`Oq0_02Q%;Tq0X3+mBXF5RMwf#E!0~{-8rC0k&D*rLaEC`ta%`Z2gQN zuB6dtQ+!Lor7=b@`>%p;bNur{2_TnyA}8x?FkAuJfV+A99YTM`p=0(%M7fM=&e?Xp zrM%PL_Iv&fdUl?7G}F}Jr~jhNIkljABE$V;_pZCU&kFBE5&61(NBY895fOw(eI9)x z(RkNgWk0%X7a%fG0*H@Fa?zA&vE8;#p{^bl)s8$xEo|!W&=8tMu74M$l;Yi{X;Zof zZI5!hiBf6tY`_p|x^_$zD2#9U7(NqBfVonRFj{GPdGnoY?m<7AknWl$W4?QldS3^M zcFVcY0?w7i-4hIMQQNCK%=~6JkdSSAm%I*Lt98|!3P{rt=omJr3LAGZg!KB7ImH3y zHTC=#_a*^hvpz=|ehSh%`6$~?)Dc3?($U;@Hb+gY@@Q6za>B6+!V$)7v=#|td>j61wEvI=3-!VtcQOm82)K$T-nd=ANu zCXoP@T@}WMrkuT`Q~3Cv!8V5g?1!yf9dSDw`h4KxFPpzjU^te488)umOIppz>(pJl z>{cIL)_}WU%u(b|J5*RB?IP%dQ#uQ6l^+jZ$(ZJWqJeX^|(U&du zqiT~psez&twaR!UmqbqABDBJ=X77%m=B@N6?`LVGQlr+zu{OQ+c_{&l5mq5Dv zD8{?H9$0elbkMg*sn1|K8Mq{8ZhyDaCD+bnBMX?Ap3d?D5V=(H=L$2A!;AO~*U6+l z7d@0LG*KU%i96x?i@eDUetY_Mjh00UYm|9XTmh&FiYxRiw>j@x7HYxpIa^(sjALV= zZsZ7^csx-8j^DuGJ==f(0B$IdX05lQDw?2=Ouc&?kg<`w3{VE13JJ)> zYWsW>sIj}JNgQ``3(xaebaNG2lc?4Dp}5p{DT*6$sFz$=#)!ucLKjIOt=@x|u6F5N zQL)#&i$sX26#Y{4m0h0YNlWQ>X@^H@x$pAkr8rW6R9sa&WKPk>@F)g89wtbO5*CFs ztc@2T*(6eJbg34Ylsb8K83|s&4+ZGDxam zOjY>Kg|~|@lW!=G9F^BbEtxOBZk5%qTx`<}W^g%>jwlTOQs7e))dH^r)jykDb<8`mT-gTcm1s9(XvYdtMWIQKCV4^u0O!;YURap{Gt~LgQdFUS z@d^>!{UhSl_NP%l%ExYf6VEt)<&xmpzb2b1#;0P+_#Q7^eXElzl^^Z3`Bg2%MH5Ge z)32s^o1w;PtiQd|LpZI)Z5?dQS)r}@Vg(vJ% zL9;B7rA<@`;m&VgJ>ia}EIk*7z*ZCTCnJ%x>n(LCV8WTM_EZ(xRc;j~_mqUB_egm`%yAt)MDfEUyu)o;_2BER}n3YA0L9#(Abje6Dj|iqG%=(oz2Qd;`c4? z=g!!NM?l)BEi_N0@70+&KFZJoB7ztp-UkCRzNgUtMl3Q?&-k6pS(XN#%*b`@$I>QG z1Eoo~_(WN2C^ke`Yk0~A7TKuq*_CJRnm#M>gqZ;>U=B*mH|wCNZXnhbt7yCM zB@{yr$rRED1LpkYnm_<5j?}V4gkYPmr-+!nd_M2WG3`VHG5sM8%=LwZ4jQq!<&niu z$|*c#J@pVcBm+EO`y#kOd|X1}d~b;wv|?c%OcaLL;pP4mgJX5a0q`+l4thI_efiY8 z;;y+c1O0H?SWr!wm)2~8F4RRihdt)#c$G{!J(%(l&0oa3d(&6Ml?u6PVWjuBp^QPwgc11csU%C4rz1=*823({z$#KF)V8U{H}~$@lZ7a1}wFAT`!#)Uj8h zmrFzvy$0| zz?Kitb4)RybY*;rtV?py$LLjBQ}9kZI+XJltApzMk+Sjch1~&^*A_HFN6`atN}EMD zmX#Bnuiar5S>y$?ud8X4V;(vzqH>sa;MVES&+irqzK8EVOtx@ho~I`E7ZrS`A`Wwy zcHu^B%e}%E4SbrUZW;DtMq00+qpC?f&~aa2oCjJ`bqLeF=?7hoD8b2klWBQUK2c#G z_ld!;_Y-9BrY|h^_G{Nr*CI(&Wtzr@&RAB^BHzyH5onI842}m87cNSTx`LAINJ-5K z{i+Z#j`h)KSLfP?s4OQ3?{xl-`U@egvdYIr6*Sl1iVHDoHzh?alh@z2J6W;@TYN!M zu(}^R*VwBnJ(gg}|4Iq=(Z?F`91cKsugaLjq?nL=&wrOP)+YOT(4Y8u_=mD5IoHGv zALZ8crWU@nkRMRtG^v@&b*))fJnn>g(11MbIToZI< zAZI_dKW23_y5x4?0!0=s^qspPG^=5~Ub zzpDSF!bLBBfU2rXYyfv}r^515WjYXe&-^rwtCxLRmIQ>)vva1A`i+OhHE_v(WNQ_k zM_&j`c|T8Uc8DlY2x{TsHi)#ob<*0uM(nO4lwTXJDotMp20e7RlquWO)Ob38M+a6N zl2|r{Aq5XVtQMWgg&;!hSmPlL`V_R+s5QTl6PK#vb6mK{;vk5_T(|#;!qH4r#`c~$ zA%@Rb_SC6kQDn@rUKr(MHL)h0OvidZjl@r`e~WlkLo7Y`&d8Xk%F_^xG?pSZpG4&% z1e*Rd#8xPAB^x%Kph4`-6#y*u(RkWjtp$e<*@a&HC%?%fF5{iul9*rF!$=K|Mu`tX z$wgOF^@x|N3q()QswkPXYOckH$%xB{s5q)q{WxIi^*XO|X#<~|v%vxev6v9X3%ex( z$x*dm-ub%P`mZ0hgsRv?DlBt8DOx}GTK~wb^O&h_Hk-Q+mr2r1B;}rM`d{NET+;rL zuztr#jiF!@&j-ZtgPP^lm+W6J1Z1|^uvv0JfpA2 zvoQCE+}>itaL+V{BCW@s-H5i!)^{Yyn_fCs`m!D!_u3p)qNL?rf2^+wNtrQCry(w5 zj8!h!3gHEd&Pad7-@-kcpY6lLL}X&LA7&+VZw_!#z%f;R&kD;VaqS80vnle$9>3sawiEt@2fE3f_0bms6rZg+<9!k2Ing6nx2S$ z)D6{8dFFv*11(h~Rw7&%G+YlaR1g?JU4x!pP=u>ZB;p+UoessXEP`?AJ}ke%_2=ME zqeZ$IUn&utRz0slmKoU0tYF7@W8!d%Z7r|>rvBI87*$yUBHY~wUkjl1d1SPCV$Q|8 z#9+EBFXUl#P4qy0>WS{;pt_kxPh?~CkDNM93D@KvLF1h>_9mpjhnqS+*0fs2gp7K( zqNP>_2>EQ}sGaDa<3iYmz`>huZdlkihQ!p7xq59pxP(lL=v>6uKp1|HXC`zo(qE;f zsJr9Dz|Dfy^8ogY<1bn-%BgKZFt(9bCDld`OS%CmAbKY zXbhddII8W^m{TFhD;VS6%BFARj>83>Kw(R_6?+)kvkgul?49*wHzNRcO!1vc9Lyg{L&1E>G;Sub8(t2CoI}_ zU%uLLN+J}Uly|j6q5FHl_){S6#SmW~EXu5La`sq?@S5VVbR8%;UF9@up|w)_ebCal zL24`WooF5k&W=L}^~x~fG||Y7j!L2rI3Lm-33LYr5;B?VP#x8j2Jiq}8W`1)xtj;; zzM{W>yjAP?sH{KD!8GtdBF|0t#GA-Ve3wIYDstEex==`y8b?TDL>7n)t6So-82XLu zeOv-#YZ=)NQQMlis$I#YBcqH5t;YzXLeX>DeywbUqQSPU%>i{|ba0Ay_v8H+kU_N` z?pRX}^tT2%F{wtJ${@cK-~L}5dMFity#@i+`6eAK^ZUx_Vun#O4qYTZqDbQBsrl*w z&*pKwM!`r0K2(5Lcs6mR3W=WhreBl}w!t8n@3Y2^n_80C8;v=-sc@4YwcZ9zAv$HL z6-64_>-a{Tg?q>V#@j3+it>mW4TJ2a|Oo15>;9AfIoV#^^FA0JLev zo^hmTEOY}|zR*G|l2Ag4e#s#3n!?0pvh{L!{Q!ez;)Q8K9_BiSPsTdr!FM z3Qk>OkE1#p=GILlofep+qgQM&{mE`W32AUffjat>`492sa5LcWM1=_m8{4pbx*?=O zUkWRI?`-UVZ$$3A!`7t4LoGyNP7?j~#J z`vWLhVna@P`Xl(+)ofU?bbyjra@eb!$oq zQ*NpPEiu^V*`1*#=XK}`mOulyZwt2v-JecdRk-B4Y*QGCf^-0{5`owj4p#hjpf6AR zWn5cR)eXh#s3aw3%jF9S&wn}giMaq|Y3d~pTTQ554wn3L;=CgDqRrOp+OK~>(y0j3m}iiap3K*t zys8Al8hW2Vt3MdSufun9V4caT8gQHS;n<*N%ZFeSD&Cx3oY0^xFiFa zjvM-s55YhUM&a7`kTDXRu`BPeCfglm#%e|xsl#yCVGG=`sW4788D9NQNwd)^3UwXU zy`&@UIl=XYvolL`5S4%>#SQ7+GTN>gD^k|7Bj8kjBk-GIrZSpNrkDXt7#D5#Mw+7Y zxIqEw@ozuo8x`bQy_f;NZZ$6&#tGX-3%2HxC~yK9V)K*yU~ySrx3Q{SEJn-nlm3Y@Ml zM>kUy)^4*wIAH}f+C6OU4J6ncPTzqI%hylQ(J?wWdr1s0AM-Oeue{o`B`=t>oUC7O zCpde?yN<~<-TtL)IW^rPmi5lg!=}Bw={}ed>oTk}%iYo_Z7=Ga)5mh4B9MP?(d}4w zzSPh`U2Sq5QIEJq!!));MG4XO_EW(mZUMdPdt2WpzJdN%YTXwDp8luiV&bRf0`sTl z;$Nxte^(6s_XPXDtA`T#WCCbWgRj3J`hyY>i>)KjF7k;x$c1Z)JcESS;-3T#w>35m zDFycY_Me%(a!9P^r=Ap+wm48J8pZutBY(jl&IidF!E>6xq@4FQh$`_}RN?++ukB;* zTH)lEn!Bt^GOauoPn7zAsB0q{tcM_M%CqKeL#mD{JP}ri53XlX|D`547oVyZl9TP| z-hqERRo!~mRcW!qvzhMDwq`P;0Jp1@!i0ShQrVU}-xQHoG zeCYQfr5OdU1FZa<`Lp|d(KQ?2H(oLT5OnDgND-hfs?Ai`1-dI?h~Q%-s!vx4v>h>*U=?BE$91MFRz=o9Vv?)@5l3}j~yW)`)6*S^_*W;-|bsLG~R1C+Q}t1 zGXuvVDTlig>*p;MpA+YIjcyy3EG0ZRm3_TkGQn)2k@epXW)12d?~Cgb?k?dx-?pkY z18~nB`}aqWu4tDPqoz8~AtlQL-c8)t118?9*&`lm*3Qd%!P0uUDN|>)JXbtfU&!2& z_9C~kyCWe1FFHS|=^s!o+df;DFcTw}Z<}7Mv!6WtQ(TuSTR(+WRvzraKG@#egg(SR zL*I~39rL$W=Pncb<_)i?;!t3&tAPexIhWBH?>9-0cdqGJEE5kA-u6`PpKR^~_X!pI zWKM3~ZfhGng8VT)K{Q|88{Hi(l@m!rbUs!c8(!U-8rR*Qj{qpKk$B=Agw?p3@p_s%^`eJU{GzF+V7|Iaod*Jn{`{Gb~ z6)?M{Fm&=b{Yp6cmE41ZUZG^3q4VBO&fO0qmu5pG5Za2bVgB=q-uXKONjapgf`=p! z*s?#QJ_;VWTAQD@Bg)S~bF^=*mr2nTFm7w7koiwidcNB8%qR|5{2j1)m_m_;g4-vdXk z<=C0`q)GvhtFwnML_Rk-%Q6`)DG}ztv!NCg;kD&Lth{h>fP&b1h4kIMpB=ro1Q-z; z->OEQe(yP@kv1wZG+Abyu`S_2%c|_oDDRhFH>Xwp1}X|d1C31ibWO? zuqJR{8&@ceZU}xT;>C!I%88c3%O^5a1X3O%Qs7BYEsKN4OSkt_`fOv;yeN-%jvy{o zcG6`O0Loe3=Cpj4p{J^cQ+~Z~nssqhUk?_phS$Ta^TJ0sk7BT~ggUe??5CQic z3)|d7{{4Y_l?swJ5{wY7b{yQ*dj2}Gmus^mUHXcyn zLQ?%Nh*Y@XByN!4|3bZx;L-%!`A@I^Bo#UcG)_BrbR%eIvkR&(;&x*zJ9%Bd0{W== zsN*bkB=w3z2>GRuB*vDuHoJCj`?MiwtXMf<3aTy~*>$XrOjv$VMsiVWB!65FZN5J` zwP{%odGLJV1d-!qLXsQHtY(>L*K@d zJ_<9B?=mPk+^2i}KJ=0shq$KuxOejLbh&O#AcQH}atN(mdZbcV$08hWk5pMnK<+TF zCzxvc>f4MPmU|*s9I#K?*gCs(UF#W)PJYf!{Ch{t+T-Y=U^)#wh8%ic-slPhJVLI7 zyj!NTl;QvRHF#4jb38%6<%k{DDK?%VFFuj6^ATUp0zxLRbS)*ujzixt?`FZ5ByqXq zlPL(VLRh@8YFO{KXQ;DuzMRAV3iC66f=l^$j=qiUzs-Nan)jv+ZrM3yyjZ=rC>&7p zd~|m~h;v8|4euTLNH8Od(Acven{d0Wt72+(TTyy*e!JLt=PL!0(72d&6zHON7=O&6 zS_FS#2TZOXf=i1qc*~~F5vNd;MU5jYs!=br3_TJ;&L>a;%IF(by=79YnrIzr3J_#Y z{3ae~8*!-aq-gu2Vh^V|cGMmpbt>MRS8eDtkc5~uxXT_Ea7q~Mo3J68(addde#Ve- z@3VfB3%48~oQlnO77WJr<|;cZK{*0Fy)6vBlV|6A*Rjh&;Pp{VxXgGh zWKfL~Mb~Az0YzgUb%SpL`+3xLf_S!fB!I&rCsM!`3@O!0&DiIdC&r>_S{VaLW?Kyy z-~a{dX*T{?L{>~A)v+sq;N|(74oisT zd;f~FXj@`)$fm4(SDEAG)Gh;Y9;apd8vpw%eW7E<s7%22w)u91fI4Oi6dv^Rmlv|L(4j)Yic#NnH}HFy|P>Iz3Sgrg|) zSr5at&GU)YA~4Nk^U&WWXTMlbto1~XIes_3YI!2nc^BV1J5H&o5OXn!V4IYWzNXTo zauQksTbdSezF-}r*d-tJ2z)5 zqYgXIQ%Nn#&nN5Lnqe?j&H)vF8MA&yD_@EdXLlKk+!I)h?}IFn&EeOP1d@%IOvaO& z(ZId^GaGyH8Mm573`dmkjOt{S7~~Ur&Svw5E<0(^pD0cbx`e?Q?JU7FkEdPTzq11~ z+s*4t>(|%u%jrr3Nf5!`FJEsyhNFb8)5lODC|(L#@_Il>N8N9WDBE zbW1~zi^fiUKVpgN5^2O$$kH2{i+>#tLd%GP4Nlx&?b_Hc z(jF^PPLl9r+PwjSO6eQ>Rsb-`aNEyaZLUo-YpJ&|f(Is4Fg9EwX>>wvw)9qkO7^f2 zhN%xGIV?>S?MkFsJBVLzKNgU5Xau|XwxBZ@%B0a@G^+^(A0TFHk#~}8pDQU2K1sZh zik4jN<;c#mpQ@M_$Dlj!=cwI^vTBrzaN=sl_Tt9%7vk4gvq)4&9DomQ^uzdrk8(x_F`ytQNvAVHPn4Y4IsmKKlJaNMlQr zhO|PilA@sm{Hhzu!CmHYsVFaW*VZDL;T3TYDxeiDGJCp)#d2ISFn!m+z(TEixV_LcywVg z33=x>JdbHg;Z;1U>dH6W<))HezDQ}KXei=7eE+Nil<8A#{h-FAe;z+ETA->FG8_EBq*6kNQ=MjA3^oU~%Q zFkY634EcPDxiny*EWw(=5hPlrcx%r-w>P=NXL3|3r~`I`$)7)+$K4Mt#|^ZCUslla zruWTLjHelZZGkT-@4XDd;+{a@^ZZs))Ntd$heJ2+3Eu85Q&`f z;TbbG#6Kbtq(dgssrzbJXiyl|RdA~J3kw*G$$Kt(rc*jfU^05D-_W%88N5YUIlr+` z;kb8MErwcJ_b|4JK$+-ht&87YZ9ivArgmK+qC93ChagX+Vd{^guuWpx!N@v0)%rkUOGrE&EpAdCZpLd8`GHAZ*tET(*!t+cNTb$!;|51Nnd z&$wWa`V`Vr1#_Gffplbo4yjX<=ao}~aAn@1jeU1R{Bb{TjDgT~@@)Qy+nt(4RA6zu z7J;Q{Bvy9(`E{dmy$BR!ygeOnFHI)cfjK+OeIw{l33@_jOstOZvi2vwU1;1laHTP0 z9i$V`${8hAs5FXFVsr}CbZ=FA=bg$fKvsMt=@0KEIWT{OxKXd|08FLEABJ!Kw?L2npN;LQOuM{%Fnlex|uM!7%Y z9EL>+H&9m{%Y{Ys*6`IrJ<0{Jq08?sspI=s({T@3+g~-9$+H>J4xPR%xl^~l>cP9> zjDB~e0ZD6aKMPCR>YG$QA$RGKi^6pw&8!&bvpo5&rx&!y?MRL=IR9!-I$-zRA_iJc zQ|kl+A-NgX``vZQIs)kmw1!E88!?Na_9L5aXArV8j7QHOfyAMy<^)QKFZ{%cFnCLt zIG@FX)vnm#M~>eybS{etw+5x=R)9Z(>tSu+mSg7rkB@Ae6q_jdZ4A};ZH{~qCUQVl zK{SWh8kSF>6n?}^Aqm)2hn-BdY!3MT{Rwty$ge$$hciFFBS=l;%j5*=o-$Ws{U5wQKBKUh=uV zKeea@;UJp&jG8$YnHNMMwkuSxHqQ*iw-TOBcFPtq4y6D-U;e~3+hGPVdR&Gifl_BR zUB0UP%S*Tg@rEBzhBV~}mP@l-yHTQ9pgs%Y?C>#NtU%kf0FC%eYZ9#b`~m4v{3&9# zWA)GId0CJYik!_4JMted;jVwNm;N92h5uwf`G-9Ko4>2vi}}I&FVLO4`RBaQLPmpm zvy)Jc91TdPY%juD5t|@PN;%47{AH|ViNCvBSJdB9l&zIe*&1^n_^u2Lzs_uRVkfxA zqsnxv*Ey2~2|yaen?QFn=(&NSGoda+4#M@aTy1TcQpU3&mO%W4inV2->tfkjC$0ta z@_3^TYhrOS{47Y3@> zWrc`p>in%tr3NbFw@7!gouFUYvNTh8?yZVlr74ynh8$)K?==HQVFAwjDY>}M_5EqQ z)J&vsXbj8uFis2GvLZyd)L^7AecmqY!U32n8B-&oMb}q4$={neTQmIkf(4ZVk#ro^ z$)_lv2kH-R4iCadBq}2cXLp|Wjbeypq54yiCwbF&Qx^NH&MM``rb%&fyk5_5@W7PA zrBM^V%*vUcw?D%~3St!wTNf1Stun+GR8Rs=p4qM25v^!v z1f0ERn^=X1xFEWT1N_v@EsQwA@FPt;{H}FGrm>-7yUWemVmu3!%1i2I7FFH|a^?q* zf0C7VYcnMgzBfZ}W6tr-31p+K-Pcjo1ST-ik~)ix;G*4gcE8Crb%aJ7Y>g| zfMdsuw{7gv<56`K(7!9dIUzqQgNQ=&Z3eMf(a_by7g zEPI$+#XyGlj*ZK+IvPKhLKe6a(_2!AHxM5eON;71jf22yk`n5TM&X)_vbKhkO}SC7 za0d?}K>}PS`~UPN=_qjawQIon=&65XM%({O@Myz*d8%`mZD??^Q)G6rkYhl(dpuJ* zt8J-ojINoIzO9M2`5rP_oS#f@93WD`cGlV(|HzhUsY4XrQBwgod&|oIQTjL_$299s zApO+O#r+zq__AwzyL+wmfz(^@>VhO9#m0yd(Y7OKgC151cp(X?nSLgMEKDbRV`>DC z+0f8=R<7>COYX}RP*UOx1ahSd^-crK>|XjqWJ7AkbUWFfSPLx^oDgs5#?QpoMk$Y* z>^~|$e7~yO$5jb$vF9u5Cy52i<~s(24?3uP00O6T3ZauXYDq$W?hnvr;MV{q{G8Sn zTY#~1GN_Br^RC4LU9cMVtX`kG*LTi|48-G|r7DSsLG6F*Ice5tktc-*OO~534PcKe zk^?x{8*Q6{EJ#^QK^ctSkTqIa6Pw1iOzW{{l%w{CtsO90no@WhC;>xUHyvxWf+&J4 z8*{>d?&jVgYzVP_cSDc@6Pb+^;l#TzdcoaKS&JL!*%R$n!|Z0&%O-hD#v7 z?74plfT`57m0kG>*`I$386IL@7=Iv&S zVM7sT{SpA!Vi8CI^?50UwPEX0t7}oiC!O&ds9|F{)bKryME@H`f{Ju?x#HzKv48Ad z<@(3&z7SPOJFiPax*JSqX3T%vEj0Ec^5;TV>qYn1KXk}3Xh_zu86mCdGGeTGc$!)2 z`oEz(68;CJ0#4%($^o!{Pyz$irRtBgoqEz98493SLHLORI=usp`Zaz7h5BI`;8KOE zN~);-5i;h8Q$qnCeSDg9_PYEpiR+A=Wx&NM>*iIel84paFUH;_J%vFY>T`!rej!*z z+1b7Ia=L201b=6D(h(Ck2wC`!>7kk$raHui>Ey4=fAcu6JhYXvXLO?~x{g+sm3EU? zIuHv)FEv{ZHA<);QaEWQc&FbG&)JA6i}t_+&N@AyIYQ^Je_k!YY09(T7Bk%NOWWzx zgd0rl0AH>Vr{qJ`QaysM3^IpV!LMJai^r>38fhcw?`5bClXRP9j?L~Tp_)*Y6HSX{ zHmu_Yu$FkYs~lx6>R6VyP>}o(6Ie}_<>Lnpt#l_$_cDK&rvJ^v`hPPeO&wA_9^DPH zg*m_<|D!6k63X&MDidMiWsoh30nNP={7RCI3`5xC1)1mZ%!WHs0EtghfW6Fr z(W!{UB$q&&4M?WLj6C-;htvLWX@@y1<*WbG-T_4)>Tp)#VKlAgW*boCZ3|>4{V#fQ zydg7P+A?PjD@pQgm;<^A{evsfv|5DuzmPDG;!c<4TqUuY9MWMVztLg*7s5QOBP=K0 zOoXX_BXs`15#D9qhfKw7S2DZH-A}|Q3ApZ_=Uy>bwCNNMP_ji zzyUo*gNkvkLwe?@EiOPM=5CdvQ|>;=Pxr&S5*Yatwbl|YN75lgAaf2SyTrO&w0$T82H~I7(tlB-0H`6QKYQPkZClIm$@+g$yBJRZsCn4`rk*E5 zjYRlgsIR*Rp*zEK^tQa(zIN$DpH!9iq1Y^B)6)98o)N1DbT)tKI2AyRBy|f@Ly)c= zv{NTB-nAKsXE!RDsT~yT+V4a8>}3~Ww|FkX{X_oXJPIIJhWv}Xg^3k4lKy`opVODz zd5TWi-f;MbykB4PNlEPyMy*8=ZNA@W9`d(xTO31|p6+&+e;eOpBTG9>7XC;3?{TU8 z`^S~N)UIN%lEN2Sb%coHDBHTkVei#kA?lx8stX0avRzqKC)cjchq1I~os=;G}ZgjE!(D%Z%i=MB- z0;f$)A~;|!&zm&;L>A~=fbkW2n_1(uERB2h*fs^by%c?+dSQP166h* ztQdNAT4jnuZlSQGJi5Jem$mARUp9TA@flr|6<%~<9I$Ziq^mxx*x9cbnzbV?=jG=~ zE+`1!+Xa~^l57H7&-HAXTsk@SAJGNYd~=XymT$LF3#`XwN~H(UP69+!go=J>hhAX7cRj=GzG*wYP#sw+LBKCt_k@)U64hzH{c_go3`J@ z{Y z(1G5GB{iZ+psQ<2(1$M39JY82VU0f+-&RU(>lrvax%pVkDsq8{^l8i?Eoe=0X+eQP z!FaA3BfY_RthNpXx+2-4L4lX2^XCxzdn}msLj?N~&X@&)w*-H|;0E+Mc0j}MfQ0?R zfDOP}i6j$=7)mKPg{tn2L*qauji6{4yR6u=A+uXkn!+&@Y`?)X*mcC1UW0VLQ0@jB zGBoJ(5<0SvX-(EbI?I55eocan`m-*8h5_$_1JF7@(cFZpAT>j;KhYTM9w4TMS=3f1 zeh$Kxwv>lpwpw4+y8&-O#9RpzpB+6IGVPu%H>MdN_Q4`iA$0=9f%d{8F%fkFVSWk6 z`~`jw&Ophwf6S=s=MJ|E{?MY6eKdv9ue(gHE7W7tK$bh^hHf#Da z@qffc34Myg3c3=$wj3QZ+~GQ_C1e^PX!HRl0{`4V)&n*W%|5`i5-x86jk(=B;6>+S z_`|S_F~ps{x@e3y;`}dK49O`??LNS_s!LZOuAv?n485+UsJfIFt{KyiMslkifbh=C z0pXoPL5})cwSxU;c-A@E|AbfDW!0TJwVJ^Ak3yIM*n?BN-3eTZsa{YEePxQ=GB-*n zk1{+IkZ;tG;5+f-OhQDWb}EvCisxS5ewb0V9V$}5wb%o$1$upEcydK0%`k95e+C1> z#`;HP_-twyBH))i@3CybFc`ZnUf&I)Hqh&(iHk-A@~JkH*_F-Mjm;LdB4hwJhoS9M zYK<1FE+23&fQ~a~U0kKTJ9w@;5UzMAQsIs^yqg6>C>SYA`Q-0wV|{p+3i@%b!lG%` z?Mo~+vhBJsnx|X(9y)trR$*_#E|IrMyGx>w!!GkyhcaGBrz1!KvdJq_UhV)tOIFT)c(sFupbH%Bb285rBRbpT)6G*tLt<)0B z?LGTnHNOYUgWSTBcOQB7%S%qq0NF`T)%$+*^ z?-u$0{N$mr6*4Jn$t5{l0Y2o&nmHn!)^))he+7d8Z)zg`KlEdHJRi zwT^kX;>A%jXP+;*=`oRMR%@scHK}F6*f* zAML93O02iZa?|NhZA)fW$(CGVvIcb0mf0?A(Plv=h+E+h5MIy|G#sqH4@f~kYR*+_ z{A7*8MmA#)1`cX--z%*E)GE5%vNFmo3(yA2?P)%8*wZd!PaNi>mHv#(DIIgqLq>8r zi@>);5CY6IqWiz8FqV~UVF4k4PR^vwV8Eu}=aEw0qGF*n&eV9QkMj4NC>p%HijE|0 z9;va}=%wo2(wVNW9UVa^@0NTyGy`fSJ6sVXMY&1{iwZ6Eu?0RGE=NAzB zB_wt zZT}(YscDwBGwSm7wRbnMSL45zY9`0yObL^vs%7-`r+|duKl#}~mg$@pGxyxQd0$z3 zFPMg9D>hPDZVYxgE`uvl)cFhDNm_k}3P!=jPR=zRPL@?7G5QlE*JQ`pPYxNvesCqR zs2Kq^I2hZ4Ct{c#ii2zt;4g;YQ$h-qrF?q)Ty7(}fZyihOqc&{yJkvE`c;Ch631|B z^hsWi5HJh9qbWZ^0-Ik}QBJi9u2U?}TP|0)6vzHcql(2Xv92jVEQ|o5@;7wWvQb6O zvIrT!6q3r`satqW5{tc)(DNZAANmtg@!iH4>Kaxqb58e`?Req}?oo+wPFXPj9bRb- zra~Fw(yGcCi}SOhGwGBZ3+c8+)|6|_M(D}D1$fVm$WN<#k)NeIU#S9MeDE0_n;g*6 z>D{(pb4vmU`wO#q>?m^^Kdd?e2V1+#_?0{ zxCi6CDxBH3y8;NyV=B;JsUI%NbEYK01*DKwu1-DrYNAjXo%>!s1-~MZ-*0d^0t5&A zAHe}RW#9sT3-0?AeDx`~8u!%Mh3QH4)T-MPTtJ0Tjpi|laLlTLa7^YOV7I=Sq`;Ve z0V}jS8AoGI4FjRS-rf5s7k6%P3ZTEr&^_iI33_+=!T6L87XyeEV#;yNU5xqu12}3B z#wR6Vu59NkxB$E|82T$#jq6*dr_NRPlaM^Pzz=rQHRYlPCP8ok@2>4csv3@Iz+Poo zpWj>xdJMS$*L7t(W+!(A8w0k#qP$!-Q-|T`YPlm%9l;e8{ zfP8apox64b6=en&uyudD0W5`~R(ZWy%K3cWgnJ?nh~NMU>aM+C|Dx;O$P=`9<(|8&tkAr7fR9 z@A8*wp(fT5?JYd>lkjoSZ|GJ&c0iTD2O%eObF$w+N)>v(K?`k+{W%rkzv=dB@qxAu z*a7QfnjR%Xk|XMjB-(H|>os9uCc@f+fNR-QWHhn8B_Y}p_G8tLc^AAcPF#a!jINLY z=hWq`ZwDIb8~KKccZrIJ$=?^f!`XLD-*3NCk2i4$2GnE>x%m3^>Qm80O)Z4mmL z>lcf*C+6Hj|L*|y@}B@F;eP?x{c#Q02OH^t8aeMJh+f@xpaNo7DIk$|UV?eI3p)BdJEV*Q7{#K??y2OMDjaJSXA zBNDjdaESH4pH2ljvj6yYhk=Mk?gxU?)9K^t4vH437b^*?&I>6KpO_^6g)Yyo=;E@i zD}GG5h+R6l$aO0hy`1`M)sB#KvByEo)2yr6A0DTm+9wHp z2ZrJ`bR5H=SSj{4fyd3(dGBA~i-f+&cN(I8K*UX)yYCfkt;S=eLc`In#4)p!f9qKFJ;aHu(VtY32@ zaO=LRLZL}8GZ`8#=2eBbw3Vuy1XCpkd|xJwx+hnYgbWmk~rrOgea8FokH+D8sZ?2ckj6N>Wdo zuCzkCVRq@FTUV%ctdt>g2~ToPOp1EF9yQHD9JMNttdt??I!w&SK%q}LH8Fw5N>xvj zTNX4j$v$0oj6>)+Z>SGGa%Z{LqBAo&fh%4`NgdJO$?^~HBVxeKi3t z2e|C}J*ofM3ur1kiw~VHGCBDngSV zow^wgBY;ijRCh)~4=cmb_HWO+lG#bcOdhW4=Ru@kf#)N1_mKu+Gs+hob1T_JP_+J9$tLcpTtY zEy9L#MedKRGKPqr(I-{d-}~5^VN?4F=Wv@QY|tX0%W<(vW*mZC8OUR25o2e)zG?R5%L<$5*GDmjcObyvK$(1V1pU}ah?|5%PQQv`5vu<}(*eVeJ!15)j zyKHbNjqS*TQ=znyB`+0J5W+0odG6*wnf_)i4DO2o$Hxw8v}KW{kXKlughSnnOO34Z z8&c(ax1`*5ZvScyJzhAuYm-Ru2E0kGa2_J55O@Ggx*#~i6?tZs13(0|3YI&tnE?2$ z>S+)RSrq@g0`S&BV6HGjt}tvC?lS~Bh@}K}OO)#<^Ey3^uG42u6!0gL#z zis0T`e7Oom)oKgps(>STE_m&Ft#gt=42_G#UW$raYK>`uh(8IqJk8iBEogWte6Uys zAz8Vi$%x@Kz+&b3hl+_nH(c|6+3(j~C6@z?QN;=s>M@z4&~`kDp{bCRN>Qmw&oL|z zsU8cSjQKITFXf1WpK~-w3mF0T#!UxE4wt_b#0i5UM!H%#G2+gw!d7YkfRz3LLjMHP z`Y#~sPoPEL$u1v>ymzx@D5@WuWhRllR+zDWA@EiJt}XTqR;W~fc|Q^*$~EXTahR*D z*dR10s>KMj#0QwBP_z>PIZc7WzkHyH`?KITxE3&aYGXyA;kc=Hl7dpZ!-|AZD z~OPS`cl72;cFv6(X;B~?)k=Ue(PMP z=dI0G^Wa--{gh(r5~j5OCqGzt{8O^AKFB80rgK58SgIL&BdhAEL=h2~T<%!% zb}(&QJvZxEBJpJA#+RNED8gj+eX3nILx8LpS$gZpyx-It`_{vdy}ivdJyrHpefR6u z@a@UVq3!))o3Q>*8rK~Y)6=_8-P^;!+0Xtzm&}`X&!j7g;r?o>+g%vXHh2(`i<2cd?sNha^+y0D^JnXh&l3~&c zyfwN%)_c9y%FA{32&l^=yuXa-HCIfrYiw+9%a@b{5+*ZL5UR$+Ox(Y`>^}A1FPzvv zePkz}`d%i-tn7c_5*~h(4TVmvd-!_gN<;Ep5)=p!B-b40XKL5$77n~RK35#wQFQ#M z6T!8uIHki!M3W&zc>ieF+-)lum*JzsJg)ZUsBB^fG`y#v^V1=z*% za4+Dgj`!aEv?~F})>Hj3Gx77@TB0s9`ys7E4`Y4k=zQ<~nEn8qqxdBK>FU9L#&tm? zAmhDu+eYa@%V@$L%1Vr(Mm}=WLd`bHkkdz2V{3D}rD8TUC+Y#lu1O%9wfgg!ccD&&=hF|c#vMI1>aChC}!|Rb- zw!${3(dnD@9uN1_ZJK8|W-`u8TFfrKnb2|^F}OSuh}-%iij94 zG7f68w4~mfcv4TRA7Sc^!6?z70E_iSy$-x`jBfKo^S%3L7Ie#F>m_q%%LB${JOZ*I z^T$i`+Dd|PsBrtEeV1Of>jV#f0zJ6r)OjIDpnPo+j5_J67I-DHRXxZunyZ$NwCH-Z zpHRS?S}#tYIIVt^-Pgk%ZxtTqP^xnLv;nm9=t+ZEm#;R%p(wTDJ2KGfq#GcdmB=>0 zQ;!-T%VEua9@2waK%qkYbbbRkyBNI&QFgF9SL0>PKnThzfCE%N0SAcA0S96M2WrJz z!R`JF0&f|r1?Vjuw}))+v(dlK{%qtnWetp1T>6R9_zC|P%D*@Gca;BG1r}QixLs=g zPY_O-IU8U+2=f*oguoyG7~6kn{YTPIkP|v&TR<~tKr_pKn)TY+!0s@LHGSf2f^fpk zf8zXmgMaf}E8Ymcs70~`Xodo4_Gt~l(xF1~8R6mfCi*4#fcQX*{Iy0hp%ci*YtffZ zfUafY9(3fC4o!7thFU*)5B^TS;mKj-kEEYg03MTPMa)da)NWC!fGyk)%WeISBfwAB z9vozi_y0ltfh#HCHsQ17!s+sS!QJNdab!7vV)?*UHL}kETjDx_i245L_5^kA;CcME zk=2dPo7J)Pa!g+h+1z0qkzGvyx7Q}%ynhN$@MCd%?Lb$KkI{I0>K?bb;w>i9xbnS? zzH9gXCdT`C>}ctE;_27g-K%-sl(qwY*ln%B>v*Be(`k87}zK-Kbu z&cn|Az*x+Le1`SB_tr1J=>^xs6t)Yy`$Ov-AJM0U%b66OwhiG6((#Rzs_hi-_4Y^k zp_Z!Sv3Xl9N5J@XJ)L0McRfAY=px4b;+k;&ZReG?S|FkX5{&RC&l&pVC1$AXo(Jb9 z)&dvy(GO$(oGdgsWB%+cW6#q?5g2`!^1ie0U=5^Thp*3OK%??Gkd6UftHiOM*Tz^u zCPWPWjd}>?IT-UcY=t^eu`VxQ<|VeV#r`E~@bdDcynMuNx{~H*M5jOD*S=jKvh47d zhulh#W`6Y!Z7}1{bgXsa<=~H4z&mrpTL4+Afhey*F7?^==Vm4>-LSN*ARe^+9;sQjwe%2|Ju5C$-#g}XM5s#3nhuj+fjfk3c-F>etZ}*OBU4Rrbv7G-ea{D>>|mL8CmELe~Ug3zq`RX>IS` z%~i9sopTs6=2u3{8)KJg#G|lN9Rm*9v*yX7atBX*2iq#PEX!#dV`nI3Bo;Y7Q#^-B zPQGE87i1x!pw@dR`!VD_5aJ~$MW>1A8f7NPdpD^-0hjNs%hkg&q6J+1-hbSkp#5x6>=G?w+(hI|y#r{m^Kqi*@c=yg6=B*EZS+ z!vps9d|OW1&!Tdh%WlW5og_XEaV?m%TW6UmIh;kXhof`N`ntfn{B^%o$M<-v(xjFv z6Y#;2J@LDLMVXQuI;ajL^qS!VnNE+Txx?P^GCZ$DA>0E!;W6=k8<)rp6 z*-z?UxNfYn=UP<>NVX|5k_iMn2iCCa3?XoKK(`cKjV+#LM`cWWpm%ITyyIa^vvfj4 zQJk*#d_9p{E3|aOoYoD)9^*@ZGSAXM#pgMxHnT0V#^q$w#gEm0`_rVG!K}f66Z*-y zK5xJyCd<@&oX^Zzex6PtC2#*?^#(!3Uv3QdWQ795{cF~}AKqmi2WUW<@D?R?ymgx@z^svN9$Zk2Jz zk5{YuJ;@D;4i5RElE3@XO~@~<586wHo*gwu@2^}zWysEx;;Rl-L<@K69q|RS5n9`= z&Kj3Z$SjZYCPb5`iaV@0QyZ7f`qpo6>kS>YvgjEr{@6H2{~C=+*-nAQpK>x=+ThbQ z*g&g3RxCLns7n7?LcnGnvT|3tt{L<0te2)%J*b$xTI4vCR*!s&VByQ;!PC=oXhF>0HvY5aopK>{yxNQp{=9*@a+j_ z-?UqyguQUul&8t!M2~x^ag1TH403#1u;$(9x^^=$a*N^k7zKLoMj1aqQC9B)lhC!z znU%}#-TtTlF-y0N%UH9(w3Tv_8bauro#TDczSU^^jnW9dTW5+~y@;-R*=dv;;e@oC zvX55VLzaXJ#}wH^vkpFZok-)k$CnyJ9c>WrnkO|V2X_@_A@9~8P9XcNukjum@H?^u za1WXemA4~jH~UoY_o**r5h4Rku(1X4=F|d68`pb%y8;iP%by$wx%~%P;i~6e+~S1W9zbkpNrS z!C2uYuNME}X)pFEJt{eLL6W2-8gvLtPLxta4-FIn?B@ZdO(zrOleavazAT}LvdxCBw`eB6^YgS@VMTO35l;`!AvH00L;6-37Q zzJrz<=1Htv-S8B)@kXZCUIwWUKe?8QWzfn&x%pvcv0_!y5;ykG14PmD*W&qUDsN+h zv+he1pUL$y-_jOO>Jg2HY_sCU+Gmg**hlAd48Pam;kST^ryW_4?8#`==3YF!YhUYb z2*5})bV)B|8XqGibs#u=?I)}=twusT^w9NB#1WFhMUNg+dj$9%D~2jBO>5T|Fu-C$ zgi)FJepaqXgQv4KFUMj=%ZS@zL1B2Sg72C76|rD%UQLZmt^m zS@6!pEkOecx}IMx@zMyr)Gp`OI}Gk;S+lC(y+`0zkgrXlJp&-Ayt913w1W!Ut#dKZ zpjhwC8yA<73fhp3$$oa)%-Qs`SG(?Qs~BxwH%BE)w?aFTA3Cx4gb0Ug8Xjkq#2xkq zBT2pM21q`uRv-ODzX`$6w-46WB>SrW7+gfBs3z@Sgs_mN)pXrnz?tQ0czmEk84ncs zON+p0SQjdtAZQ$zHTEq2s9kbO$174=0 zr=gLob`;a!Rp*2SwUIF|6A1UGm}FO8i6 zmJ_ehCB#au+{Z@7SnnTGIgOsu4vx(8fi8bf5d;nE#lNg3+u8nQ^-u9iC-;v5Nmhd! z3kFxTi>RUj!JVxiU>g}$>%zg|3F;8a~U@& zO4sq!{?P320)|*0Cfdl*y*=Ul(OH{XTLGxV7N8PJ7gO>To899jT$yTrjOxvoe@H&s zw50Uq#I*4?boRAn+m^7RNd8%3YfmEB8}J=cd~bDoym9Yvmu}ATWDnih2xv{Y1^HQT z&Y09Plg$GklhG2ha(q!yMdq<0v`Le<+=OHkLTn>$L^bU1ExStL;sykz1w?%Aacx{F zS5qLP2Cql!sj)v+I7E?6Tvl#ELBMP*yX z@5@6-%W`3hYOfYQHdSX6c_-Ub;R?5sCPyY~hR0lRi)m3y2$%kEyzlE;pp2RjA>}Qq zY4W_MRf=CwLtB!&Dz8J%0vBHmi<}@@{-l0yKVziQ)QSsZkDPZmZ_j2)Bep}Y(NDj`lTM0No!jT zTR39nu5OlV6FBmN^w%Wy*ydX%B?R@O16r1M9ZkGjH)*y2iMv%}X6h?(0$sas=Zlf_ zooqB+Y?HtuM}q5HIDT`?j4EAC_-7IgQ_niv^Z8>*&@AF}8r=)D*9eZcFW}90e^c&&esBF(K*O!cvQd~G| zE;3C}6MDHsxZjf(t_g7%RE}mBUTtyGL#55LrQ4!7PT%OQJ^$2dzNI5qUHNY)E#|27_iCV!mA`u8zMH}FgQ{2`JJ~0ov#sz{*@~4 zAwfkekL}KSFMk~Tuu42>DEe5m{Cf3zboKdMOX&AKFiZ031JMerRXJchsCPO!12lyJxR5)%z771@L`v7dJ@suJv8wp-AVl*C?paf z{91duW0f$V-dQ*}rhC>15e{Qar!m5Fxv+nyL<0U7<>{&!fYSNwFG}u*ki|N)e<(8{ zkVpi>dJ$xMvz5k+h(R1Js4UU3)~W8Jkc1+YQyE0{XV8Y>Yz!bsMfI;q0})m`lAWkU zf%Lyagyedhd{yKGxGgWSx%loX3?`V1k-k6~S_ksWIs^*H;YFyLM|9^p1gid-PZ(@C z20a^2fB!TKRY8xpUv1;c=dL3mh!FR%+dhst#t#x0Sd(q`MN%+ax)R@j4} zxS4~wERoe&f|&xfQv0Bg)n7+*K_9BgvS5&bu+sgBOS8G>Xs0QRd(y`NpN4-g&5|Y< zP}@Dx3O>n|y9gM+Fc^6V)ZX>tAF0^`%vZ2$Z2I~3$yW?>JwumBRt9tuBo3lhH#?mF zu187)%#hrPUP}{P{JjaDI3QZapc~1bPZ^7)H5mH`lK)T)9Jl_Z=6o3vuwNcFmf?vx zp13Y&>u14y{^x?p;gdX$+}Phg+yLf%Q#W1#y#h{MN7we>7bN~PV374ma7cK$Pd@sw z?=*WBJ+Gw7K5wnb;P!n6v0)J7xCt=u;~5FzsN-4*FAsv_1pPpV!NAnKmjnI-emQ-} zgzq#6FC#+(DKqO+TK%E7$?KjC@($drosF#Bt*l+0662x4(om(hJ6C%C+=Q2UX{5O5 zD2(3{M}C~W{#c|MZ6OI?z)e!2YfEW+B6=IqKCB=4f!-&xO09V;A{ zJIUHJizTwv>BbCK9TN*5*SBChyfCtHHnkBnvfVyH*lvI)Mh2_w&E6`*R>V zbtUIb0#UbzN%w=70CGRxP(|(lf~@J7CM{v@CJ9c;>QU;Uu+v8)^6Gi_o@4KRLOy&L zGYum-?GO{k==Zu8BaWL@&9q%Im@`c0a8oN=t|4DdS3tYTvg+4-QR5Bt7sD0^&UUpWuhw}2CV1y zwl?t{=20%Nuhls4hK7T(Ojd6!Q^gwrJ&^f;TjgvF9XPr1fAMpIZ~&{@_n&@jeX*rU zo8eDSzi9rxzcslokl0GO-`o8K%k?x+4^JhpX5p$d?Xn}(ANb{-sO{QQgkM9N61X20 zs9d8;5wr?9?1;$gWq;X=$}cgn<3KHwR6-gv6JrA%6;pCq0$44I-UlB@1>ev^U^;%w zx8#KGs{4;u=I4`5F(*VWvn^MCtdA!I(yVeC31CbCbHM!mNScO^8<5e*1*ltdSZ*Rd}2Je^+z)G5}?-y ze>Y{2Ax;-!ZE$=#1uEnw-u;bl9%gzNCXF<80t~?nKL3RY43DVSAFx96l7kXcOKNX5E zcwMCMbCY=XfIbFauV688Ixx6+xM_FlcNZ#GfSyl&2v*{BgW#1y@gF7KBM)S+Ad|%D z;d^NL*w}xYarj@&d{<+AF>k7%N=wrfQX*%0(bVKQQ75S9y232i%<0XcvCIPPn$pz5 z{>k<1XT(g^grHL`lR`tkx$f4mbve&f=c!)hBinKJ_BOF6ka3RKU~DgGYo5mVv1ZdW zn*Bp=Wd2tEICxTz|Lh@cpzp+fDI%v7-gFR`PQ*aTp)RD313$FV%noNO5Z!aFTu}v0 z?`B;@Hu}5P9)on)6 zjfyFhbFYAHJEUR|LswJS>JKhf+!98w+Nj?{QqY}#5ONoC#|6frtRY$0y)c^)M@hsK z{0?}biG4rP+S=gF*Ymti974&g8`Ttp31!^~9IM>UU|89L&R`s@Hj^Q;+|JDNz?*;@ zb`VwtU9sYU&6(t=FO&>^vv3FZ1(bM9PkEL!2TOk>P7+(%!=$orlvEUe59qYN;~dZ# z*G|*X5C9(>SP>>-CVslOp=QSa+l4!Dkg2X!*np(U>-){Cf{W5WK9qBh06yLw|K;O- zY@?o;!ZaQ$M44Q2H0dLn$B%)c;Eq!v?>ChkijEh1MtB zSa^MLAD_5h!x>t!=r(|B;qw76v#&iGER(V1g=IJEr=EaE|IuVgIrR6t6Ua=7jY=nTB9;C zQWS`g7joTR$+qUjL$}n(2!~|JNwgTRK5%;jXEJRT#)f1maU&b)h%ZvFF%fV1Wg#;OI3Fi zRB8OwLF+;al>#_dmIF)pFv?v{v&74c-92^14{9Yt=@=ovhVYO< znkbf>)Pr1!=zB!Vf|bN&aunBNE!a($#$#+!r$UvxqTk)8aq>uXRcFVmBiRf^AOPf1 z82a}{i&GeuDpHJwr^>yEpCKhS!K{Qlb;IMnSu16!Ftp z{F2UMDnF*E~*)6m0pj5Sj)#&v7zbkK0AAj zDrj6xD$Eoj@PHmztO%K>(p_wCK9Nvj6I4WLPd2KAA%uYO7e#|;e{vj2RI_~|geQtr zcu~cD(lX_tlL%w?atXyaI29&OY+3voH@qLx4usrGk+~{5aOjRoN!==N$Y zkP|)B6o)bwJ0hqdOt!wM)KUDY&Tki+b44fnOYc7TC-P=T#Em1I%A7-*joss zWx$#sIvamH_qWPv(Ug)1w6x!X=nW}zzicxg0`130eyaf_1LlG!B~9D_k`wa3{x``a zApa?uGj+z)N_Qw-pIt#LD&~tkIv2lL-eZKxJU5GIw4o6f{a3=wbPS5dSL=ydwfAMR zQfl9QrB0PbcOjJVC0;BuNQZL?Itzy%iod|;ei544!k3)<5{lyESPkAQTvyZ*w860X zqNv)NmLF+=F$;LP*@j->RckON5*o*_W%c_Wm0yYX)gnOZ_^TMY|h36q^P&-671cdLUJxEKpTP;&!U0`ZX@7LhSeoFW9`OoQxU{LYm61`VSWga zEL91fDy3P2|4flIrkU;3-qJJx%{RArf)ngN7FE?mCChX}30554)Qhzv+SLx(vKzre zL5Kx`F1g&X?FeE$Xo zL10@A(iFB}6&E_R;3iE(;|UH0;Y;R?G1ccp?pow{X)o3nhh3;f`Xtz|x!!5ooFG#Z z2mQ$GMCq`hGeBQ5Y=ooE0hZv*D)q3)4?_J~r-o8w{Qu9H$F2W6PQ3`448OjAkdgeR zxe|0}#y`A3sZ%kAM`U=>c${cuw#8`+=alT53tTt9xu$r@y^Na>gkY6CLUZAgM4jpmI6&SCXxLiSOtjsHBn!Y53pNiZ(n@4$&6^_A_v6y$x~e5TFu7ILok`T~ z;2Kz#!OE%}S(1^CtmQShX;SM#Ce>l)=9j6~2c61+xOe;Y18#~u^^U0|z>U9IU!8=p zSD@y_lUT((`5ujd@%d2%-Vv5GSmz=js^CUjbeY1Hto<}i5%$}?i~b!;I&0_i_3pWz zgajdslW5N`Or(VbArE($tZWt85r{`*vQNn7vuTodzsEp$ zPO(?uYsdwrh(`d+`^M_E6|YgsrE%M4m;iuC;BO+{@Z{-hNMmhbK-*BBLBe(%->U-3 zNi`i#hQ+6O;xGZf9O8FR2zmVn}d`9kkCZWJW0W5OdLf65|c_G2+<) zGW$0xr2dZsP=6;T_?lO74M~wc^pxm!6wLkc4eam4u!O2R_1SY81nBXvZ%e78pd2x- zAtyCF4{1Mzt@R^A(vVX!t+9c=YCTM@FsXEnGiXFly*L*m*2s7R|Ei=O; zaKJZMqgn60ZU(;CG^v#=ewtgaDGiS8oV+;x&cmv-Ee^c*I}vjbDLDk5C4NH$(+t7O zRim5se5_{jmC5K`4ZfK5_Xb25U|=+?pGvS6@Vkr;4vM*g0sP=4{@;KHO7&`c87;8H zHF_TJl(uSz1^9bnU7hK6C9Rr>tfBt2m|O%ayG8F980f*h}2`vEX@|7tV}B zQRP@NO*yB$SHrzWuJKxo#rzgF7)snv+PY7#1A*lnU9%1WFeRTbC4a-{$dx=PP2hi? zr(dIn@4}=aIKqDcW%YgEi;-3ZRn>U*gp=TY&pJZ~#u?U&SaZcH#XE>+3OQrMzgu#`xG4NbFokc;K(12tf z`fyFfoz6g>sY9T`*`;@!vbOkxb57~tNN`R)z!jD*c&S4Qbm7a8!BVZ8@#{Icc1vv< zO&4#oPaDx+9WChEE60wi=%sh(bfCY1|r)og=F}hF02*3ZcqC#0+9vZF_eH61yOc#a!kbAEuM35x;k8 zF={AX*!=b9!>)jw?!k*F;um^PC@;$N_kAxSm?EDp87hW9uLlnHH}s4jRbJMws%TW|!q72JT$^qUqA7ra4Lg%k( zn4`Hj+4Yo~HHYaDZjL~^ji7-w-_P&Mzmab^4{?~AHY!w|B|ohR6lSyZC3W%$d4^@J zAY&46krv;G0XrCkJ18vd)J}5{Ry08vm)z~orlKIJnxLfkq@(~)avi5QpvdPlQdgL{ zbwCSq`8$9dh{D;LQd8{LvAC{Y!n0Ts3vsn&vVY^Ef-^Vh;v%$BtIxIk?laLCUn4!+!xa_p4x zevffrMg&~rKO{)Tp`*kVl$7dZNOMaop`vo_^6YW^!*FSyq+gT`& zVq{K5yoTVL*N((ls310w3$ZZ*6v(Jt8XSKPSJ0kHw;FP8gs7d@Sxwe}{#cBMr`uf& zwg7fU$S6Sshbk)uYar1UamJh(NCT#fuUrH5LZnc8`dIZvc*~@_=P)c=)s$rw8pW9k zi7P=4O0Bb;2Zainq+fAfH*V;Y=1BFA5H8m9*urnloSrJmJ|hF zVS(nd=LQf5!m?PRhH9-8|EU5a zDFKkof#`oFX4AySuwnx;rGLyBj413CW>DI;4@5p}Pd>kPgA2 zB%~w-{?Ye*@5%b_teLykUHAL$+56se&W<^Eua(j2gimN*t6f1-BrQ43Pw7~^U-G@Y ziobkibdR8AUXUG*I-|@~Nf?rb&koCWXsIKFsr}c-SWZ%f5A$aVGbtspQEP@XQtl+- zAu*G#)EiV-4^Ao6z#X#RkV=>l!#{!&g8TLPWQ_}c3L^yE49l%Ig)(zy|v+;#){T&4h5^8S^L{S%^(a(N0!1wcea0)e&=-&;X-+~vyBN}$+&GCnpRac=c z4YwUioXMJ&rYxl_Rg#lb^A7v|#Z4Ywe628+G}HRD&A>w`(Ut(* z;6^oMPjQwTk{#VbWch;AGLH6a#P(OCD$X#1vqQ3(iQt4jNvh>MwF9qdI8l~vutr;? z|D}*c)SvB1g)sb5NJ$zDq&=sk@wx$&T!h~D3>`_$3Q)YF-W2tA9aM!(M^3% ztyP$)=t0mHN%p1Is*L6`O!=hDc#+y(af)J2Hwg+sh`>d-fD*%GZH^Fp^0lai?G*eA z-e#OC>-eAl6c*({`%#zLIXy=CD?;*~W3iixPYfF>=G{nVighCHVtO|vV!zLz=AGlld2mu~`{al@qM>KnM?YpAUa-T^G6a7#@j!(V#rF zS)#XnQax)DwJNs0)rM5n(372l`Q0GjyXV!Nf{$E7m3N9*a=P2>oUMV z$G2BtFdU(lhlIi3Yol@|zrVRTCa7O=(?DTu=2 z8#H6G)^o6G2@i)JvT`5y)zW5>{?ni$k!&CBi#D23BS4@{qVsv`#U-`;2BSr~kJ*2u zBMSK`oiygZ(mA0*q!UE!2)_G@_YavB_{KBQtMo4-7knawv&C4|mfwxyW<5O(O3wN5 z0Qhsk)mw2n(=HeQU|by^HOybygtVRgWb>+|KnT5AaT}$GbW``#-32WTQRLM@zL3L*@vX z0?072F!P^H&6hg;Fz4k=i;U)EG7}RHCJJo5Kl~!bXU67`0p*8DzqJ+64AL!5j$&%+ zj%rCjh7EBn7pl7|7r;?F_pBN$21n}~YRDa$W5Y>uAFK>r*UnKN8pR5+fp|Tfa}=59 z9Sx-}zp$MPxj#!TW_3jG<;P+mCfueBU(~X07q~a=plbfE_WT=O-Ivk*!@ke49+z5r zHTXM4JE$pXbcCS<{Tb>B(PC~tLf_6W5D>Pp)VYUmn@?unjG~D!B;xz!htuDUJ0>AW$a*I~Hbgzh2j`772>3;lDw31p%U z3z`e!)6;XrhVp2stL6L&cPA3)^^NihYjH@z_+gfHu4P?Gc+JobsuNxD1?t$#7iyGI z+Ew;&>ea(7PdJBa2eV&>l4!2Z4{Dt+pmuXu9h*Q?8i6MiVoF0pP$TypcJ&FBec!)Y`zD9qc_hNV!T zV_i);FJ;rAIq16%wYtPZxpkGHS51_|-WQ!-!6Vl4T8tF`mhzaDXGkk<@)~Rv6C$hU zkX658AcZa)R0@T@RXKwGE61Zqg#HB*>EVDY45D@M=U%qLFW!aYX;xSV)FJIi%LzOq z5$1_8#p|pbldp>sW_7478_2}aYPHa86FILR8i_kEG2uV7u1g>2IG7$`_cz$Ij!JfR z|G`&%V4E!+Tdda3GMY&yIO&wpsMh7C9Je4U2Enq`+9z_U<% zY*9CcC&mEt)^1=J#l!(~Ec;9?i_iZSSlyRh@3&t-opyD1JlLEO6|}Xv28mMyoxyP2 z>}(aX#b}1csB9=(6<UG!8cuY z^XpK5_V!)FEo}g#1XUyCi~GB`zp%E@{!fPoPWCwTaiRhy{X2WXN!nkmV!5P}xCzPH zQY0HO+(_xTK#;{yV>g#P2KYfXUQf*}oUDJ= zl3GpcaarOd9sCv;&6u98fsjq_Gq8CVrJY374?g8dz z6{kP3rqqw+Bb$u;nh^tNuJA0!66q@ zeckc#OnxDolKYo~@YG7hPh+_Vq9xv{yMdSU!Io|Ni#>$OvgdyM%yv{ZyqQ(B*>;+k zmKC8VN?B%#>6NUz(Q&bvWl#(6dd8V2n>L=q9gdc}>V?df))~JF7upMb<}z4+r78CjjXd>atHSIHkN1lF!oQ*Nq(XKo(7Zuc~9}}na*osl_K9X?yiX^PspQed7 zntXn0<_7LbI}=OO{_w7L(-jVyW32AmR$$b)_mA{W`u$Qr)oQtlz!Q=`AITI+>gGXs z0HBQ-0KohGNP5{>J6m)7`sMmn;mlCgb(x>A^HLA96+C;h>>b@Id$4dgSAvG!Bpu%% z^UR4+lX8!?6YbEwJJ@`+wh#HBv9GpD0_9-(F4Kjq5q;N`kZCcRQPX34Ky`@@;RE%x zXh4^#*72wP2y&>~NOzUH3&SlfUo^_~67-7?hamsZ`++&)&(JsMw6pSuAf`>n`5NP9 z2CR$$4*&=d4ez1F@OEp1mOT!<)g z9=;><#F;S+CnCio+-+PxLdwM&gkh_imY&_7O z#0(`iXCc^zOIf+TL2Ih!?W{ufb9d^vG7fyJLIet}x%B;pRV3U61PkJPtOmMj6eM!) z09wgr>hReZPInasTp$>1zM_g==mA2r!h~y&iOP&}7Dc09B8OBn>Nr9*V7fi5Ny(V^-*~4O2e^-d=IPaIZ~l|B^!)BP3D$2 zZ1F6znaj6~3AA4yrSKu`b@P@Vu|*sox^UCC0;QczR(JQ2&65<$G{4&(c(rhZgP5hjFi?LhxZ6-OXA^ zj?2aW$S$q)es?Z#vY^PVPqm>&+NxDbs~L$plfb1rD%hk>calbN$eD3PO7?l_=p5;X zaMThmYTR?ueqX99_ACeH)g+L+q?L1Gd8zc9ZvXIv<%DTktK=hZ<6XD`Kl63f5V1{v zZf(kil0tp4ik(`&w7Bs5&B)gHME!cH)jrF4(pU$ZUSv-^&5qY9!-$3b&nu{G{Ib5j zSP<9kI6VJSsNzA3552WNT8@UD>We)C*EWVwx69va` z6ux5Va#%`<)sG_OAw-9k8(`3HZevF+Qo&;Z^}TVd?|(~~Z?u-j7RYQ`cHX*shntp$ zPQZ75DKAWc`)oF9?$gKZ@Pfj#K<&-6l=c?p+1WXUV!6Xp`*O`FLUo0Br7v&%z*mQ+ zdsx7tUX`31aE5xC0+Z@{Vta=7*x2AQPF1*T(d-G2SUrzya;(-#$qxqUwJ(dGH@+?7 zEKi@jY$&X1XI$zHaV=Yoo)f_L+6)bC1g(|vvzqngI|IRF@-M$bw@~O+VI|eAH#+r9 zPdOaGeYi|?x%KueEQP6ZGE8&4$gakjhL4R=9a@bPG)iq`KS3+0;Q#uOt`ekU|H*LH zF!fR=W_K8K!;V*~kyFmsf*It^YsuW^MUA=aodd&3i_-{G?EO_!SoqBdjDh!kx7Dli z32q&Z<8A1)m)~5=JU65ipb5s2)mXaLWV{w*Be&H3d-6}G+&;=x)*By^EwPu@XD=U} zI}22j4axH{SRy_%Q6q${5Nu%k7^ZC9hGOJ&nbAJ;=4py9p#BXL3_$AcSX}zHd{8Kz zVROPs8LXpn@R`d@pWl3gJFIbFbnU@qUg?uhJ|fD3Q?g3<=#rEHBj+32$O|l@GK;mR zF7?48u4;>|l^dSW{Cw}`=Qf%jx;n7u*0;(vv^uT!XP2H!6Z@suTQttoVxXZx)$E!> z%;h&~2aUnq!uQu{)L4!}m+MaNa>A%tB0;aIW>K#L+ZD7eOI~7`sCD#@DDWj*TfY&8 zLZeVZ5|~0%Q`p?G5KWMd%Iyzz)>RV4DChYkj~MS~;1O$!Zr{HyNfVqSElpiiXnrwM zez0Y=qfoyv$>r!QG)EM%Awk5Wmu?wn;FYme&TNCePRn7&0G~kcXK&hj`cfEhjg*#2PP_($HbN%5Bgvs#gdjSN;Kk9fhm8sjU3KPSH2 zVBz^v$b<(Ev0iZ?drNOmFIQ)MXD1GOFKg#t(_U3<9da)xF5vQ|>~PX>iEt$Dj20#X zRsnLg;>{9#QhQR7#lu=;*Jqy>ZXdRtRqvrGc!kxPWEDN#ko^zk)F>{`wk6Im!}r4_ z5wfc>?X+#>4ZNFu;HcDL2$+Y5alaUG;m^YAhC$o9m80!eMIzk|xe+#m;8YBR#5n1t z`O|}ViRC%A?diG}gLKIVHLz~jtKkLB53AU6SLwoQnvt`tJi#ypt|48?%G%RqU4q~5U!hh~ir)sdPu(o9^(7(WjUX*g9s!W(@j4Z}!RaRK* zEYyY};$9rB}E2&5g-gP^7=l^QE5ag0d+34QDBFFg^s_5qE?UNpd z7Aw1xC>cp=q883l*Q#MQOjeyYlxZVjLi+5Mx!(0h7PgaFt@qQ{T~uuh+N5$cXXZ{t zgycwTb?%w%p=7O&!9yI(4Q<$#f)U@})bU35Y!fXgOkm#Ys_Lkex9N)C&EG-)c|$>M zDykb0fh{0{6aFFiPmwh|T-`i>-PN3gI+svRT-g_$y{DVQT=}qexRD9~CdW@o#$-Oh zbWSwOGQf&^e^p^V%MUNAy^cPKkcw}GxtP71WM-J6r$u~PDN^t{ySNA&;_5e?~6M}YS{@Wki{K#KUr@gZ^RxNei z+iM~jBFjHVqaYWz;yH$6)+~eN-03wo;pp|rdG$1=4hH9RYc+e^wLcYb(dcyB$tz}z z?t7d`#T3XyDo2k}@sPVRS#YyV;768)2q_B)3VoeRQH2wrQ#^dF&flgUygq)O5$w-L zip0Sblo84}%u-_uI}R6T7me($h~zrY$|4kabum^Xg!f`qZCM;{onD@QCGIe)L)WMR z=Lfpp#?;>2^z#8xSF=KNOrX5F;~<<7rcR<(dug7+z6pq-S)n+%?ni5JhrkQuZ!7Ol+aDe$m*{;Q$E|jclDLb$URwJJYDoD+~F92r?0aG4&>gd33?el zNXH!Bf-LskE-l*V>vn(xapbQ^P&*XmEf^+FB`Q+8K0i&b?o{-dKkr3y?3mm*>Nr+0 zkpXrbORXdH80#4ig2Vk~IpAG#@PwB-a5{UUFnOOtqjp<;RW)qLA4tQbonXE@`xbQn zfZjk6Wf3WuT&~Lpth>QK3CKrLLDuuc{zyi*bP{Gk&?RSuPeWCI-mO2fqH(#QD33v{|6E^N%olbmz! z;`ha=rKUFD($=h+2!FO)l;@xt{^IDv1=jX__t9vrBpNGcUpw(aH>#(jSpgBegPAnX zs8IMK!$ZN^1InKxR^iZ`Z3i3x5Jm|A5I{yONa5~Z!xY5xg7i-pb9*Ot2RCcmLtRHV z935P-Hh%#o=P^u1He7_>Hty~sHYpZpe*2}86#gQ%8u!@w#N8&_a8&srF^ zI<+XSqp-$?@D9D^O@D?=AVi869O|&q>b{4_iHo65vGPzuGX@z20rYUbLo_WUiA{iG zs2BPvP+qo^CX=iYiTmGVa;YprhQ?CnE8E|k3a4`D@bam#cx1-(9D4dDG*RX0rd!ph zZ#tlV9Ad-^3E6#-Wye8kF|?0?sJOS*9~kqN3p1)l0REd-d4V641$xygLz<9fd*5Nb z4ozNUK#+c;#;p}tT$b1&CP5v}EW&pn$xvrvZTV}ZL5L_$%Lk5SM~jO&Gh^#i;q*f% zL^iiU-rLnAJb(BviFv0;7sz}R=%P|}zzdXXLenBv{5+QQ%nIid!74GwV&VuKz1ELp zL+=x7aHPkX`E0AT5mSUeU9GIu9z*}Kl5R=qlOQ+*^Br&iEbnJD(9pz_FcCTsivo)%NhY?6 z88%`D&5#lT$AwDm*Zw&IU4-xm|J`~40# zk-KiYlXt2!$y(WMsdCjl5F~oh`%`C<_t)ny?uTSz$)~*^HqHZ`HN4;7pW0r%>_o`x z_%R$7BHokNUr7+n*%X|lNwfBn4ugp)6inQDlGYPGAvPPHmX$rj!ULHQ&6hpvi%G%!+17AR9?{9P+l_cNd zU%jZAC8YmpFSgoCqD?Sd}UC^H>pipjp3W+9i5&yp}YtTs?p>a!mB? z>u1OER!HHi0)ui1En(8IPxA*43r^gx!PvKaZH>W4Tg_6oGkE*a-9=dyEVEl*KQhJd zlxBr=N(C%cFL@u4Jf);9PukC}J`irz+dH5iV0Z@!C%d^^V_;-hm1t$|s1Vvn)eu|w$#407GNxY4>jLy=620^suy1Zrat#o08n>{5 z=jnpqWgtC6&yAunf!)pAii=dO+{MBZ;yPr3+b&95N%!(h#T^uJVn@B>Vj^HhkW0*W*vGi&Bh%$D`31eDLD=6>H zt@Y!Mg#$k(%<|$M5F)eoxwCHgsGw8K@J z?1*vI(HflPh$0&sAZh9o`_q){wvzF7|G9&ZUjKIkjY-qo{=VL-hnsX)eyij?&%T}2 zq<|H)Jx9LIMUcM)Pl5Ky{R6&~l;*zNUfjtID)1bcOE-CGym+{SAy!b<*H&-`WikO}8 z0_CTPCHa3z{;w8*mG~kt8~}ic4jcgE z4<=KFznMI}e4VU+r7Iun;PDG3f8&Fp2=x8{KYG37W1h!((tmj(V}JAfCyDYH{y6dS zFZ_AJ-|$Cin8yr{6A}M1lqLSn@JCwWG5&GX_+Pw8%HR0MG33V-kNxj|DR{H~uQ&df z;IX6oF9B-ye+mAd+xwX7vG4dV7hKMNx&HJdAG17mwfh%`@sI7nfALKP d|LJ0XT8A3SaF8DKvrA(E%pu*Q{AW-D@IN|L?e+iw literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/common/TimelinesSharedFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/common/TimelinesSharedFeatures.scala deleted file mode 100644 index 99698530f..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/common/TimelinesSharedFeatures.scala +++ /dev/null @@ -1,759 +0,0 @@ -package com.twitter.timelines.prediction.features.common - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.ml.api.Feature.Binary -import com.twitter.ml.api.Feature.Continuous -import com.twitter.ml.api.Feature.Discrete -import com.twitter.ml.api.Feature.SparseBinary -import com.twitter.ml.api.Feature.SparseContinuous -import com.twitter.ml.api.Feature.Text -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.TypedAggregateGroup -import scala.collection.JavaConverters._ - -object TimelinesSharedFeatures extends TimelinesSharedFeatures("") -object InReplyToTweetTimelinesSharedFeatures extends TimelinesSharedFeatures("in_reply_to_tweet") - -/** - * Defines shared features - */ -class TimelinesSharedFeatures(prefix: String) { - private def name(featureName: String): String = { - if (prefix.nonEmpty) { - s"$prefix.$featureName" - } else { - featureName - } - } - - // meta - val EXPERIMENT_META = new SparseBinary( - name("timelines.meta.experiment_meta"), - Set(ExperimentId, ExperimentName).asJava) - - // historically used in the "combined models" to distinguish in-network and out of network tweets. - // now the feature denotes which adapter (recap or rectweet) was used to generate the datarecords. - // and is used by the data collection pipeline to split the training data. - val INJECTION_TYPE = new Discrete(name("timelines.meta.injection_type")) - - // Used to indicate which injection module is this - val INJECTION_MODULE_NAME = new Text(name("timelines.meta.injection_module_name")) - - val LIST_ID = new Discrete(name("timelines.meta.list_id")) - val LIST_IS_PINNED = new Binary(name("timelines.meta.list_is_pinned")) - - // internal id per each PS request. mainly to join back commomn features and candidate features later - val PREDICTION_REQUEST_ID = new Discrete(name("timelines.meta.prediction_request_id")) - // internal id per each TLM request. mainly to deduplicate re-served cached tweets in logging - val SERVED_REQUEST_ID = new Discrete(name("timelines.meta.served_request_id")) - // internal id used for join key in kafka logging, equal to servedRequestId if tweet is cached, - // else equal to predictionRequestId - val SERVED_ID = new Discrete(name("timelines.meta.served_id")) - val REQUEST_JOIN_ID = new Discrete(name("timelines.meta.request_join_id")) - - // Internal boolean flag per tweet, whether the tweet is served from RankedTweetsCache: TQ-14050 - // this feature should not be trained on, blacklisted in feature_config: D838346 - val IS_READ_FROM_CACHE = new Binary(name("timelines.meta.is_read_from_cache")) - - // model score discounts - val PHOTO_DISCOUNT = new Continuous(name("timelines.score_discounts.photo")) - val VIDEO_DISCOUNT = new Continuous(name("timelines.score_discounts.video")) - val TWEET_HEIGHT_DISCOUNT = new Continuous(name("timelines.score_discounts.tweet_height")) - val TOXICITY_DISCOUNT = new Continuous(name("timelines.score_discounts.toxicity")) - - // engagements - val ENGAGEMENT_TYPE = new Discrete(name("timelines.engagement.type")) - val PREDICTED_IS_FAVORITED = - new Continuous(name("timelines.engagement_predicted.is_favorited"), Set(EngagementScore).asJava) - val PREDICTED_IS_RETWEETED = - new Continuous(name("timelines.engagement_predicted.is_retweeted"), Set(EngagementScore).asJava) - val PREDICTED_IS_QUOTED = - new Continuous(name("timelines.engagement_predicted.is_quoted"), Set(EngagementScore).asJava) - val PREDICTED_IS_REPLIED = - new Continuous(name("timelines.engagement_predicted.is_replied"), Set(EngagementScore).asJava) - val PREDICTED_IS_OPEN_LINKED = new Continuous( - name("timelines.engagement_predicted.is_open_linked"), - Set(EngagementScore).asJava) - val PREDICTED_IS_GOOD_OPEN_LINK = new Continuous( - name("timelines.engagement_predicted.is_good_open_link"), - Set(EngagementScore).asJava) - val PREDICTED_IS_PROFILE_CLICKED = new Continuous( - name("timelines.engagement_predicted.is_profile_clicked"), - Set(EngagementScore).asJava - ) - val PREDICTED_IS_PROFILE_CLICKED_AND_PROFILE_ENGAGED = new Continuous( - name("timelines.engagement_predicted.is_profile_clicked_and_profile_engaged"), - Set(EngagementScore).asJava - ) - val PREDICTED_IS_CLICKED = - new Continuous(name("timelines.engagement_predicted.is_clicked"), Set(EngagementScore).asJava) - val PREDICTED_IS_PHOTO_EXPANDED = new Continuous( - name("timelines.engagement_predicted.is_photo_expanded"), - Set(EngagementScore).asJava - ) - val PREDICTED_IS_FOLLOWED = - new Continuous(name("timelines.engagement_predicted.is_followed"), Set(EngagementScore).asJava) - val PREDICTED_IS_DONT_LIKE = - new Continuous(name("timelines.engagement_predicted.is_dont_like"), Set(EngagementScore).asJava) - val PREDICTED_IS_VIDEO_PLAYBACK_50 = new Continuous( - name("timelines.engagement_predicted.is_video_playback_50"), - Set(EngagementScore).asJava - ) - val PREDICTED_IS_VIDEO_QUALITY_VIEWED = new Continuous( - name("timelines.engagement_predicted.is_video_quality_viewed"), - Set(EngagementScore).asJava - ) - val PREDICTED_IS_GOOD_CLICKED_V1 = new Continuous( - name("timelines.engagement_predicted.is_good_clicked_convo_desc_favorited_or_replied"), - Set(EngagementScore).asJava) - val PREDICTED_IS_GOOD_CLICKED_V2 = new Continuous( - name("timelines.engagement_predicted.is_good_clicked_convo_desc_v2"), - Set(EngagementScore).asJava) - val PREDICTED_IS_TWEET_DETAIL_DWELLED_8_SEC = new Continuous( - name("timelines.engagement_predicted.is_tweet_detail_dwelled_8_sec"), - Set(EngagementScore).asJava) - val PREDICTED_IS_TWEET_DETAIL_DWELLED_15_SEC = new Continuous( - name("timelines.engagement_predicted.is_tweet_detail_dwelled_15_sec"), - Set(EngagementScore).asJava) - val PREDICTED_IS_TWEET_DETAIL_DWELLED_25_SEC = new Continuous( - name("timelines.engagement_predicted.is_tweet_detail_dwelled_25_sec"), - Set(EngagementScore).asJava) - val PREDICTED_IS_TWEET_DETAIL_DWELLED_30_SEC = new Continuous( - name("timelines.engagement_predicted.is_tweet_detail_dwelled_30_sec"), - Set(EngagementScore).asJava) - val PREDICTED_IS_GOOD_CLICKED_WITH_DWELL_SUM_GTE_60S = new Continuous( - name( - "timelines.engagement_predicted.is_good_clicked_convo_desc_favorited_or_replied_or_dwell_sum_gte_60_secs"), - Set(EngagementScore).asJava) - val PREDICTED_IS_FAVORITED_FAV_ENGAGED_BY_AUTHOR = new Continuous( - name("timelines.engagement_predicted.is_favorited_fav_engaged_by_author"), - Set(EngagementScore).asJava) - - val PREDICTED_IS_REPORT_TWEET_CLICKED = - new Continuous( - name("timelines.engagement_predicted.is_report_tweet_clicked"), - Set(EngagementScore).asJava) - val PREDICTED_IS_NEGATIVE_FEEDBACK = new Continuous( - name("timelines.engagement_predicted.is_negative_feedback"), - Set(EngagementScore).asJava) - val PREDICTED_IS_NEGATIVE_FEEDBACK_V2 = new Continuous( - name("timelines.engagement_predicted.is_negative_feedback_v2"), - Set(EngagementScore).asJava) - val PREDICTED_IS_WEAK_NEGATIVE_FEEDBACK = new Continuous( - name("timelines.engagement_predicted.is_weak_negative_feedback"), - Set(EngagementScore).asJava) - val PREDICTED_IS_STRONG_NEGATIVE_FEEDBACK = new Continuous( - name("timelines.engagement_predicted.is_strong_negative_feedback"), - Set(EngagementScore).asJava) - - val PREDICTED_IS_DWELLED_IN_BOUNDS_V1 = new Continuous( - name("timelines.engagement_predicted.is_dwelled_in_bounds_v1"), - Set(EngagementScore).asJava) - val PREDICTED_DWELL_NORMALIZED_OVERALL = new Continuous( - name("timelines.engagement_predicted.dwell_normalized_overall"), - Set(EngagementScore).asJava) - val PREDICTED_DWELL_CDF = - new Continuous(name("timelines.engagement_predicted.dwell_cdf"), Set(EngagementScore).asJava) - val PREDICTED_DWELL_CDF_OVERALL = new Continuous( - name("timelines.engagement_predicted.dwell_cdf_overall"), - Set(EngagementScore).asJava) - val PREDICTED_IS_DWELLED = - new Continuous(name("timelines.engagement_predicted.is_dwelled"), Set(EngagementScore).asJava) - - val PREDICTED_IS_HOME_LATEST_VISITED = new Continuous( - name("timelines.engagement_predicted.is_home_latest_visited"), - Set(EngagementScore).asJava) - - val PREDICTED_IS_BOOKMARKED = new Continuous( - name("timelines.engagement_predicted.is_bookmarked"), - Set(EngagementScore).asJava) - - val PREDICTED_IS_SHARED = - new Continuous(name("timelines.engagement_predicted.is_shared"), Set(EngagementScore).asJava) - val PREDICTED_IS_SHARE_MENU_CLICKED = new Continuous( - name("timelines.engagement_predicted.is_share_menu_clicked"), - Set(EngagementScore).asJava) - - val PREDICTED_IS_PROFILE_DWELLED_20_SEC = new Continuous( - name("timelines.engagement_predicted.is_profile_dwelled_20_sec"), - Set(EngagementScore).asJava) - - val PREDICTED_IS_FULLSCREEN_VIDEO_DWELLED_5_SEC = new Continuous( - name("timelines.engagement_predicted.is_fullscreen_video_dwelled_5_sec"), - Set(EngagementScore).asJava) - val PREDICTED_IS_FULLSCREEN_VIDEO_DWELLED_10_SEC = new Continuous( - name("timelines.engagement_predicted.is_fullscreen_video_dwelled_10_sec"), - Set(EngagementScore).asJava) - val PREDICTED_IS_FULLSCREEN_VIDEO_DWELLED_20_SEC = new Continuous( - name("timelines.engagement_predicted.is_fullscreen_video_dwelled_20_sec"), - Set(EngagementScore).asJava) - val PREDICTED_IS_FULLSCREEN_VIDEO_DWELLED_30_SEC = new Continuous( - name("timelines.engagement_predicted.is_fullscreen_video_dwelled_30_sec"), - Set(EngagementScore).asJava) - - // Please use this timestamp, not the `meta.timestamp`, for the actual served timestamp. - val SERVED_TIMESTAMP = - new Discrete("timelines.meta.timestamp.served", Set(PrivateTimestamp).asJava) - - // timestamp when the engagement has occurred. do not train on these features - val TIMESTAMP_FAVORITED = - new Discrete("timelines.meta.timestamp.engagement.favorited", Set(PublicTimestamp).asJava) - val TIMESTAMP_RETWEETED = - new Discrete("timelines.meta.timestamp.engagement.retweeted", Set(PublicTimestamp).asJava) - val TIMESTAMP_REPLIED = - new Discrete("timelines.meta.timestamp.engagement.replied", Set(PublicTimestamp).asJava) - val TIMESTAMP_PROFILE_CLICKED = new Discrete( - "timelines.meta.timestamp.engagement.profile_clicked", - Set(PrivateTimestamp).asJava) - val TIMESTAMP_CLICKED = - new Discrete("timelines.meta.timestamp.engagement.clicked", Set(PrivateTimestamp).asJava) - val TIMESTAMP_PHOTO_EXPANDED = - new Discrete("timelines.meta.timestamp.engagement.photo_expanded", Set(PrivateTimestamp).asJava) - val TIMESTAMP_DWELLED = - new Discrete("timelines.meta.timestamp.engagement.dwelled", Set(PrivateTimestamp).asJava) - val TIMESTAMP_VIDEO_PLAYBACK_50 = new Discrete( - "timelines.meta.timestamp.engagement.video_playback_50", - Set(PrivateTimestamp).asJava) - // reply engaged by author - val TIMESTAMP_REPLY_FAVORITED_BY_AUTHOR = new Discrete( - "timelines.meta.timestamp.engagement.reply_favorited_by_author", - Set(PublicTimestamp).asJava) - val TIMESTAMP_REPLY_REPLIED_BY_AUTHOR = new Discrete( - "timelines.meta.timestamp.engagement.reply_replied_by_author", - Set(PublicTimestamp).asJava) - val TIMESTAMP_REPLY_RETWEETED_BY_AUTHOR = new Discrete( - "timelines.meta.timestamp.engagement.reply_retweeted_by_author", - Set(PublicTimestamp).asJava) - // fav engaged by author - val TIMESTAMP_FAV_FAVORITED_BY_AUTHOR = new Discrete( - "timelines.meta.timestamp.engagement.fav_favorited_by_author", - Set(PublicTimestamp).asJava) - val TIMESTAMP_FAV_REPLIED_BY_AUTHOR = new Discrete( - "timelines.meta.timestamp.engagement.fav_replied_by_author", - Set(PublicTimestamp).asJava) - val TIMESTAMP_FAV_RETWEETED_BY_AUTHOR = new Discrete( - "timelines.meta.timestamp.engagement.fav_retweeted_by_author", - Set(PublicTimestamp).asJava) - val TIMESTAMP_FAV_FOLLOWED_BY_AUTHOR = new Discrete( - "timelines.meta.timestamp.engagement.fav_followed_by_author", - Set(PublicTimestamp).asJava) - // good click - val TIMESTAMP_GOOD_CLICK_CONVO_DESC_FAVORITED = new Discrete( - "timelines.meta.timestamp.engagement.good_click_convo_desc_favorited", - Set(PrivateTimestamp).asJava) - val TIMESTAMP_GOOD_CLICK_CONVO_DESC_REPLIIED = new Discrete( - "timelines.meta.timestamp.engagement.good_click_convo_desc_replied", - Set(PrivateTimestamp).asJava) - val TIMESTAMP_GOOD_CLICK_CONVO_DESC_PROFILE_CLICKED = new Discrete( - "timelines.meta.timestamp.engagement.good_click_convo_desc_profiile_clicked", - Set(PrivateTimestamp).asJava) - val TIMESTAMP_NEGATIVE_FEEDBACK = new Discrete( - "timelines.meta.timestamp.engagement.negative_feedback", - Set(PrivateTimestamp).asJava) - val TIMESTAMP_REPORT_TWEET_CLICK = - new Discrete( - "timelines.meta.timestamp.engagement.report_tweet_click", - Set(PrivateTimestamp).asJava) - val TIMESTAMP_IMPRESSED = - new Discrete("timelines.meta.timestamp.engagement.impressed", Set(PublicTimestamp).asJava) - val TIMESTAMP_TWEET_DETAIL_DWELLED = - new Discrete( - "timelines.meta.timestamp.engagement.tweet_detail_dwelled", - Set(PublicTimestamp).asJava) - val TIMESTAMP_PROFILE_DWELLED = - new Discrete("timelines.meta.timestamp.engagement.profile_dwelled", Set(PublicTimestamp).asJava) - val TIMESTAMP_FULLSCREEN_VIDEO_DWELLED = - new Discrete( - "timelines.meta.timestamp.engagement.fullscreen_video_dwelled", - Set(PublicTimestamp).asJava) - val TIMESTAMP_LINK_DWELLED = - new Discrete("timelines.meta.timestamp.engagement.link_dwelled", Set(PublicTimestamp).asJava) - - // these are used to dup and split the negative instances during streaming processing (kafka) - val TRAINING_FOR_FAVORITED = - new Binary("timelines.meta.training_data.for_favorited", Set(EngagementId).asJava) - val TRAINING_FOR_RETWEETED = - new Binary("timelines.meta.training_data.for_retweeted", Set(EngagementId).asJava) - val TRAINING_FOR_REPLIED = - new Binary("timelines.meta.training_data.for_replied", Set(EngagementId).asJava) - val TRAINING_FOR_PROFILE_CLICKED = - new Binary("timelines.meta.training_data.for_profile_clicked", Set(EngagementId).asJava) - val TRAINING_FOR_CLICKED = - new Binary("timelines.meta.training_data.for_clicked", Set(EngagementId).asJava) - val TRAINING_FOR_PHOTO_EXPANDED = - new Binary("timelines.meta.training_data.for_photo_expanded", Set(EngagementId).asJava) - val TRAINING_FOR_VIDEO_PLAYBACK_50 = - new Binary("timelines.meta.training_data.for_video_playback_50", Set(EngagementId).asJava) - val TRAINING_FOR_NEGATIVE_FEEDBACK = - new Binary("timelines.meta.training_data.for_negative_feedback", Set(EngagementId).asJava) - val TRAINING_FOR_REPORTED = - new Binary("timelines.meta.training_data.for_reported", Set(EngagementId).asJava) - val TRAINING_FOR_DWELLED = - new Binary("timelines.meta.training_data.for_dwelled", Set(EngagementId).asJava) - val TRAINING_FOR_SHARED = - new Binary("timelines.meta.training_data.for_shared", Set(EngagementId).asJava) - val TRAINING_FOR_SHARE_MENU_CLICKED = - new Binary("timelines.meta.training_data.for_share_menu_clicked", Set(EngagementId).asJava) - - // Warning: do not train on these features - val PREDICTED_SCORE = new Continuous(name("timelines.score"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_FAV = new Continuous(name("timelines.score.fav"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_RETWEET = - new Continuous(name("timelines.score.retweet"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_REPLY = - new Continuous(name("timelines.score.reply"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_OPEN_LINK = - new Continuous(name("timelines.score.open_link"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_GOOD_OPEN_LINK = - new Continuous(name("timelines.score.good_open_link"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_PROFILE_CLICK = - new Continuous(name("timelines.score.profile_click"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_DETAIL_EXPAND = - new Continuous(name("timelines.score.detail_expand"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_PHOTO_EXPAND = - new Continuous(name("timelines.score.photo_expand"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_PLAYBACK_50 = - new Continuous(name("timelines.score.playback_50"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_VIDEO_QUALITY_VIEW = - new Continuous(name("timelines.score.video_quality_view"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_DONT_LIKE = - new Continuous(name("timelines.score.dont_like"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_PROFILE_CLICKED_AND_PROFILE_ENGAGED = - new Continuous( - name("timelines.score.profile_clicked_and_profile_engaged"), - Set(EngagementScore).asJava) - val PREDICTED_SCORE_GOOD_CLICKED_V1 = - new Continuous(name("timelines.score.good_clicked_v1"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_GOOD_CLICKED_V2 = - new Continuous(name("timelines.score.good_clicked_v2"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_DWELL = - new Continuous(name("timelines.score.dwell"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_DWELL_CDF = - new Continuous(name("timelines.score.dwell_cfd"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_DWELL_CDF_OVERALL = - new Continuous(name("timelines.score.dwell_cfd_overall"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_DWELL_NORMALIZED_OVERALL = - new Continuous(name("timelines.score.dwell_normalized_overall"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_NEGATIVE_FEEDBACK = - new Continuous(name("timelines.score.negative_feedback"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_NEGATIVE_FEEDBACK_V2 = - new Continuous(name("timelines.score.negative_feedback_v2"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_WEAK_NEGATIVE_FEEDBACK = - new Continuous(name("timelines.score.weak_negative_feedback"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_STRONG_NEGATIVE_FEEDBACK = - new Continuous(name("timelines.score.strong_negative_feedback"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_REPORT_TWEET_CLICKED = - new Continuous(name("timelines.score.report_tweet_clicked"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_UNFOLLOW_TOPIC = - new Continuous(name("timelines.score.unfollow_topic"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_FOLLOW = - new Continuous(name("timelines.score.follow"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_RELEVANCE_PROMPT_YES_CLICKED = - new Continuous( - name("timelines.score.relevance_prompt_yes_clicked"), - Set(EngagementScore).asJava) - val PREDICTED_SCORE_BOOKMARK = - new Continuous(name("timelines.score.bookmark"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_SHARE = - new Continuous(name("timelines.score.share"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_SHARE_MENU_CLICK = - new Continuous(name("timelines.score.share_menu_click"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_PROFILE_DWELLED = - new Continuous(name("timelines.score.good_profile_dwelled"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_TWEET_DETAIL_DWELLED = - new Continuous(name("timelines.score.tweet_detail_dwelled"), Set(EngagementScore).asJava) - val PREDICTED_SCORE_FULLSCREEN_VIDEO_DWELL = - new Continuous(name("timelines.score.fullscreen_video_dwell"), Set(EngagementScore).asJava) - - // hydrated in TimelinesSharedFeaturesAdapter that recap adapter calls - val ORIGINAL_AUTHOR_ID = new Discrete(name("entities.original_author_id"), Set(UserId).asJava) - val SOURCE_AUTHOR_ID = new Discrete(name("entities.source_author_id"), Set(UserId).asJava) - val SOURCE_TWEET_ID = new Discrete(name("entities.source_tweet_id"), Set(TweetId).asJava) - val TOPIC_ID = new Discrete(name("entities.topic_id"), Set(SemanticcoreClassification).asJava) - val INFERRED_TOPIC_IDS = - new SparseBinary(name("entities.inferred_topic_ids"), Set(SemanticcoreClassification).asJava) - val INFERRED_TOPIC_ID = TypedAggregateGroup.sparseFeature(INFERRED_TOPIC_IDS) - - val WEIGHTED_FAV_COUNT = new Continuous( - name("timelines.earlybird.weighted_fav_count"), - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava) - val WEIGHTED_RETWEET_COUNT = new Continuous( - name("timelines.earlybird.weighted_retweet_count"), - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - val WEIGHTED_REPLY_COUNT = new Continuous( - name("timelines.earlybird.weighted_reply_count"), - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava) - val WEIGHTED_QUOTE_COUNT = new Continuous( - name("timelines.earlybird.weighted_quote_count"), - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - val EMBEDS_IMPRESSION_COUNT_V2 = new Continuous( - name("timelines.earlybird.embeds_impression_count_v2"), - Set(CountOfImpression).asJava) - val EMBEDS_URL_COUNT_V2 = new Continuous( - name("timelines.earlybird.embeds_url_count_v2"), - Set(CountOfPrivateTweetEntitiesAndMetadata, CountOfPublicTweetEntitiesAndMetadata).asJava) - val DECAYED_FAVORITE_COUNT = new Continuous( - name("timelines.earlybird.decayed_favorite_count"), - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava) - val DECAYED_RETWEET_COUNT = new Continuous( - name("timelines.earlybird.decayed_retweet_count"), - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - val DECAYED_REPLY_COUNT = new Continuous( - name("timelines.earlybird.decayed_reply_count"), - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava) - val DECAYED_QUOTE_COUNT = new Continuous( - name("timelines.earlybird.decayed_quote_count"), - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - val FAKE_FAVORITE_COUNT = new Continuous( - name("timelines.earlybird.fake_favorite_count"), - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava) - val FAKE_RETWEET_COUNT = new Continuous( - name("timelines.earlybird.fake_retweet_count"), - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - val FAKE_REPLY_COUNT = new Continuous( - name("timelines.earlybird.fake_reply_count"), - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava) - val FAKE_QUOTE_COUNT = new Continuous( - name("timelines.earlybird.fake_quote_count"), - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - val QUOTE_COUNT = new Continuous( - name("timelines.earlybird.quote_count"), - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - - // Safety features - val LABEL_ABUSIVE_FLAG = - new Binary(name("timelines.earlybird.label_abusive_flag"), Set(TweetSafetyLabels).asJava) - val LABEL_ABUSIVE_HI_RCL_FLAG = - new Binary(name("timelines.earlybird.label_abusive_hi_rcl_flag"), Set(TweetSafetyLabels).asJava) - val LABEL_DUP_CONTENT_FLAG = - new Binary(name("timelines.earlybird.label_dup_content_flag"), Set(TweetSafetyLabels).asJava) - val LABEL_NSFW_HI_PRC_FLAG = - new Binary(name("timelines.earlybird.label_nsfw_hi_prc_flag"), Set(TweetSafetyLabels).asJava) - val LABEL_NSFW_HI_RCL_FLAG = - new Binary(name("timelines.earlybird.label_nsfw_hi_rcl_flag"), Set(TweetSafetyLabels).asJava) - val LABEL_SPAM_FLAG = - new Binary(name("timelines.earlybird.label_spam_flag"), Set(TweetSafetyLabels).asJava) - val LABEL_SPAM_HI_RCL_FLAG = - new Binary(name("timelines.earlybird.label_spam_hi_rcl_flag"), Set(TweetSafetyLabels).asJava) - - // Periscope features - val PERISCOPE_EXISTS = new Binary( - name("timelines.earlybird.periscope_exists"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val PERISCOPE_IS_LIVE = new Binary( - name("timelines.earlybird.periscope_is_live"), - Set(PrivateBroadcastMetrics, PublicBroadcastMetrics).asJava) - val PERISCOPE_HAS_BEEN_FEATURED = new Binary( - name("timelines.earlybird.periscope_has_been_featured"), - Set(PrivateBroadcastMetrics, PublicBroadcastMetrics).asJava) - val PERISCOPE_IS_CURRENTLY_FEATURED = new Binary( - name("timelines.earlybird.periscope_is_currently_featured"), - Set(PrivateBroadcastMetrics, PublicBroadcastMetrics).asJava - ) - val PERISCOPE_IS_FROM_QUALITY_SOURCE = new Binary( - name("timelines.earlybird.periscope_is_from_quality_source"), - Set(PrivateBroadcastMetrics, PublicBroadcastMetrics).asJava - ) - - val VISIBLE_TOKEN_RATIO = new Continuous(name("timelines.earlybird.visible_token_ratio")) - val HAS_QUOTE = new Binary( - name("timelines.earlybird.has_quote"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val IS_COMPOSER_SOURCE_CAMERA = new Binary( - name("timelines.earlybird.is_composer_source_camera"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - - val EARLYBIRD_SCORE = new Continuous( - name("timelines.earlybird_score"), - Set(EngagementScore).asJava - ) // separating from the rest of "timelines.earlybird." namespace - - val DWELL_TIME_MS = new Continuous( - name("timelines.engagement.dwell_time_ms"), - Set(EngagementDurationAndTimestamp, ImpressionMetadata, PrivateTimestamp).asJava) - - val TWEET_DETAIL_DWELL_TIME_MS = new Continuous( - name("timelines.engagement.tweet_detail_dwell_time_ms"), - Set(EngagementDurationAndTimestamp, ImpressionMetadata, PrivateTimestamp).asJava) - - val PROFILE_DWELL_TIME_MS = new Continuous( - name("timelines.engagement.profile_dwell_time_ms"), - Set(EngagementDurationAndTimestamp, ImpressionMetadata, PrivateTimestamp).asJava) - - val FULLSCREEN_VIDEO_DWELL_TIME_MS = new Continuous( - name("timelines.engagement.fullscreen_video_dwell_time_ms"), - Set(EngagementDurationAndTimestamp, ImpressionMetadata, PrivateTimestamp).asJava) - - val LINK_DWELL_TIME_MS = new Continuous( - name("timelines.engagement.link_dwell_time_ms"), - Set(EngagementDurationAndTimestamp, ImpressionMetadata, PrivateTimestamp).asJava) - - val ASPECT_RATIO_DEN = new Continuous( - name("tweetsource.tweet.media.aspect_ratio_den"), - Set(MediaFile, MediaProcessingInformation).asJava) - val ASPECT_RATIO_NUM = new Continuous( - name("tweetsource.tweet.media.aspect_ratio_num"), - Set(MediaFile, MediaProcessingInformation).asJava) - val BIT_RATE = new Continuous( - name("tweetsource.tweet.media.bit_rate"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HEIGHT_2 = new Continuous( - name("tweetsource.tweet.media.height_2"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HEIGHT_1 = new Continuous( - name("tweetsource.tweet.media.height_1"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HEIGHT_3 = new Continuous( - name("tweetsource.tweet.media.height_3"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HEIGHT_4 = new Continuous( - name("tweetsource.tweet.media.height_4"), - Set(MediaFile, MediaProcessingInformation).asJava) - val RESIZE_METHOD_1 = new Discrete( - name("tweetsource.tweet.media.resize_method_1"), - Set(MediaFile, MediaProcessingInformation).asJava) - val RESIZE_METHOD_2 = new Discrete( - name("tweetsource.tweet.media.resize_method_2"), - Set(MediaFile, MediaProcessingInformation).asJava) - val RESIZE_METHOD_3 = new Discrete( - name("tweetsource.tweet.media.resize_method_3"), - Set(MediaFile, MediaProcessingInformation).asJava) - val RESIZE_METHOD_4 = new Discrete( - name("tweetsource.tweet.media.resize_method_4"), - Set(MediaFile, MediaProcessingInformation).asJava) - val VIDEO_DURATION = new Continuous( - name("tweetsource.tweet.media.video_duration"), - Set(MediaFile, MediaProcessingInformation).asJava) - val WIDTH_1 = new Continuous( - name("tweetsource.tweet.media.width_1"), - Set(MediaFile, MediaProcessingInformation).asJava) - val WIDTH_2 = new Continuous( - name("tweetsource.tweet.media.width_2"), - Set(MediaFile, MediaProcessingInformation).asJava) - val WIDTH_3 = new Continuous( - name("tweetsource.tweet.media.width_3"), - Set(MediaFile, MediaProcessingInformation).asJava) - val WIDTH_4 = new Continuous( - name("tweetsource.tweet.media.width_4"), - Set(MediaFile, MediaProcessingInformation).asJava) - val NUM_MEDIA_TAGS = new Continuous( - name("tweetsource.tweet.media.num_tags"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val MEDIA_TAG_SCREEN_NAMES = new SparseBinary( - name("tweetsource.tweet.media.tag_screen_names"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val STICKER_IDS = new SparseBinary( - name("tweetsource.tweet.media.sticker_ids"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - - val NUM_COLOR_PALLETTE_ITEMS = new Continuous( - name("tweetsource.v2.tweet.media.num_color_pallette_items"), - Set(MediaFile, MediaProcessingInformation).asJava) - val COLOR_1_RED = new Continuous( - name("tweetsource.v2.tweet.media.color_1_red"), - Set(MediaFile, MediaProcessingInformation).asJava) - val COLOR_1_BLUE = new Continuous( - name("tweetsource.v2.tweet.media.color_1_blue"), - Set(MediaFile, MediaProcessingInformation).asJava) - val COLOR_1_GREEN = new Continuous( - name("tweetsource.v2.tweet.media.color_1_green"), - Set(MediaFile, MediaProcessingInformation).asJava) - val COLOR_1_PERCENTAGE = new Continuous( - name("tweetsource.v2.tweet.media.color_1_percentage"), - Set(MediaFile, MediaProcessingInformation).asJava) - val MEDIA_PROVIDERS = new SparseBinary( - name("tweetsource.v2.tweet.media.providers"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val IS_360 = new Binary( - name("tweetsource.v2.tweet.media.is_360"), - Set(MediaFile, MediaProcessingInformation).asJava) - val VIEW_COUNT = - new Continuous(name("tweetsource.v2.tweet.media.view_count"), Set(MediaContentMetrics).asJava) - val IS_MANAGED = new Binary( - name("tweetsource.v2.tweet.media.is_managed"), - Set(MediaFile, MediaProcessingInformation).asJava) - val IS_MONETIZABLE = new Binary( - name("tweetsource.v2.tweet.media.is_monetizable"), - Set(MediaFile, MediaProcessingInformation).asJava) - val IS_EMBEDDABLE = new Binary( - name("tweetsource.v2.tweet.media.is_embeddable"), - Set(MediaFile, MediaProcessingInformation).asJava) - val CLASSIFICATION_LABELS = new SparseContinuous( - name("tweetsource.v2.tweet.media.classification_labels"), - Set(MediaFile, MediaProcessingInformation).asJava) - - val NUM_STICKERS = new Continuous( - name("tweetsource.v2.tweet.media.num_stickers"), - Set(PublicTweetEntitiesAndMetadata, PrivateTweetEntitiesAndMetadata).asJava) - val NUM_FACES = new Continuous( - name("tweetsource.v2.tweet.media.num_faces"), - Set(MediaFile, MediaProcessingInformation).asJava) - val FACE_AREAS = new Continuous( - name("tweetsource.v2.tweet.media.face_areas"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HAS_SELECTED_PREVIEW_IMAGE = new Binary( - name("tweetsource.v2.tweet.media.has_selected_preview_image"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HAS_TITLE = new Binary( - name("tweetsource.v2.tweet.media.has_title"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HAS_DESCRIPTION = new Binary( - name("tweetsource.v2.tweet.media.has_description"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HAS_VISIT_SITE_CALL_TO_ACTION = new Binary( - name("tweetsource.v2.tweet.media.has_visit_site_call_to_action"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HAS_APP_INSTALL_CALL_TO_ACTION = new Binary( - name("tweetsource.v2.tweet.media.has_app_install_call_to_action"), - Set(MediaFile, MediaProcessingInformation).asJava) - val HAS_WATCH_NOW_CALL_TO_ACTION = new Binary( - name("tweetsource.v2.tweet.media.has_watch_now_call_to_action"), - Set(MediaFile, MediaProcessingInformation).asJava) - - val NUM_CAPS = - new Continuous(name("tweetsource.tweet.text.num_caps"), Set(PublicTweets, PrivateTweets).asJava) - val TWEET_LENGTH = - new Continuous(name("tweetsource.tweet.text.length"), Set(PublicTweets, PrivateTweets).asJava) - val TWEET_LENGTH_TYPE = new Discrete( - name("tweetsource.tweet.text.length_type"), - Set(PublicTweets, PrivateTweets).asJava) - val NUM_WHITESPACES = new Continuous( - name("tweetsource.tweet.text.num_whitespaces"), - Set(PublicTweets, PrivateTweets).asJava) - val HAS_QUESTION = - new Binary(name("tweetsource.tweet.text.has_question"), Set(PublicTweets, PrivateTweets).asJava) - val NUM_NEWLINES = new Continuous( - name("tweetsource.tweet.text.num_newlines"), - Set(PublicTweets, PrivateTweets).asJava) - val EMOJI_TOKENS = new SparseBinary( - name("tweetsource.v3.tweet.text.emoji_tokens"), - Set(PublicTweets, PrivateTweets).asJava) - val EMOTICON_TOKENS = new SparseBinary( - name("tweetsource.v3.tweet.text.emoticon_tokens"), - Set(PublicTweets, PrivateTweets).asJava) - val NUM_EMOJIS = new Continuous( - name("tweetsource.v3.tweet.text.num_emojis"), - Set(PublicTweets, PrivateTweets).asJava) - val NUM_EMOTICONS = new Continuous( - name("tweetsource.v3.tweet.text.num_emoticons"), - Set(PublicTweets, PrivateTweets).asJava) - val POS_UNIGRAMS = new SparseBinary( - name("tweetsource.v3.tweet.text.pos_unigrams"), - Set(PublicTweets, PrivateTweets).asJava) - val POS_BIGRAMS = new SparseBinary( - name("tweetsource.v3.tweet.text.pos_bigrams"), - Set(PublicTweets, PrivateTweets).asJava) - val TEXT_TOKENS = new SparseBinary( - name("tweetsource.v4.tweet.text.tokens"), - Set(PublicTweets, PrivateTweets).asJava) - - // Health features model scores (see go/toxicity, go/pblock, go/pspammytweet) - val PBLOCK_SCORE = - new Continuous(name("timelines.earlybird.pblock_score"), Set(TweetSafetyScores).asJava) - val TOXICITY_SCORE = - new Continuous(name("timelines.earlybird.toxicity_score"), Set(TweetSafetyScores).asJava) - val EXPERIMENTAL_HEALTH_MODEL_SCORE_1 = - new Continuous( - name("timelines.earlybird.experimental_health_model_score_1"), - Set(TweetSafetyScores).asJava) - val EXPERIMENTAL_HEALTH_MODEL_SCORE_2 = - new Continuous( - name("timelines.earlybird.experimental_health_model_score_2"), - Set(TweetSafetyScores).asJava) - val EXPERIMENTAL_HEALTH_MODEL_SCORE_3 = - new Continuous( - name("timelines.earlybird.experimental_health_model_score_3"), - Set(TweetSafetyScores).asJava) - val EXPERIMENTAL_HEALTH_MODEL_SCORE_4 = - new Continuous( - name("timelines.earlybird.experimental_health_model_score_4"), - Set(TweetSafetyScores).asJava) - val PSPAMMY_TWEET_SCORE = - new Continuous(name("timelines.earlybird.pspammy_tweet_score"), Set(TweetSafetyScores).asJava) - val PREPORTED_TWEET_SCORE = - new Continuous(name("timelines.earlybird.preported_tweet_score"), Set(TweetSafetyScores).asJava) - - // where record was displayed e.g. recap vs ranked timeline vs recycled - // (do NOT use for training in prediction, since this is set post-scoring) - // This differs from TimelinesSharedFeatures.INJECTION_TYPE, which is only - // set to Recap or Rectweet, and is available pre-scoring. - // This also differs from TimeFeatures.IS_TWEET_RECYCLED, which is set - // pre-scoring and indicates if a tweet is being considered for recycling. - // In contrast, DISPLAY_SUGGEST_TYPE == RecycledTweet means the tweet - // was actually served in a recycled tweet module. The two should currently - // have the same value, but need not in future, so please only use - // IS_TWEET_RECYCLED/CANDIDATE_TWEET_SOURCE_ID for training models and - // only use DISPLAY_SUGGEST_TYPE for offline analysis of tweets actually - // served in recycled modules. - val DISPLAY_SUGGEST_TYPE = new Discrete(name("recap.display.suggest_type")) - - // Candidate tweet source id - related to DISPLAY_SUGGEST_TYPE above, but this is a - // property of the candidate rather than display location so is safe to use - // in model training, unlike DISPLAY_SUGGEST_TYPE. - val CANDIDATE_TWEET_SOURCE_ID = - new Discrete(name("timelines.meta.candidate_tweet_source_id"), Set(TweetId).asJava) - - // Was at least 50% of this tweet in the user's viewport for at least 500 ms, - // OR did the user engage with the tweet publicly or privately - val IS_LINGER_IMPRESSION = - new Binary(name("timelines.engagement.is_linger_impression"), Set(EngagementsPrivate).asJava) - - // Features to create rollups - val LANGUAGE_GROUP = new Discrete(name("timelines.tweet.text.language_group")) - - // The final position index of the tweet being trained on in the timeline - // served from TLM (could still change later in TLS-API), as recorded by - // PositionIndexLoggingEnvelopeTransform. - val FINAL_POSITION_INDEX = new Discrete(name("timelines.display.final_position_index")) - - // The traceId of the timeline request, can be used to group tweets in the same response. - val TRACE_ID = new Discrete(name("timelines.display.trace_id"), Set(TfeTransactionId).asJava) - - // Whether this tweet was randomly injected into the timeline or not, for exploration purposes - val IS_RANDOM_TWEET = new Binary(name("timelines.display.is_random_tweet")) - - // Whether this tweet was reordered with softmax ranking for explore/exploit, and needs to - // be excluded from exploit only holdback - val IS_SOFTMAX_RANKING_TWEET = new Binary(name("timelines.display.is_softmax_ranking_tweet")) - - // Whether the user viewing the tweet has disabled ranked timeline. - val IS_RANKED_TIMELINE_DISABLER = new Binary( - name("timelines.user_features.is_ranked_timeline_disabler"), - Set(AnnotationValue, GeneralSettings).asJava) - - // Whether the user viewing the tweet was one of those released from DDG 4205 control - // as part of http://go/shrink-4205 process to shrink the quality features holdback. - val IS_USER_RELEASED_FROM_QUALITY_HOLDBACK = new Binary( - name("timelines.user_features.is_released_from_quality_holdback"), - Set(ExperimentId, ExperimentName).asJava) - - val INITIAL_PREDICTION_FAV = - new Continuous(name("timelines.initial_prediction.fav"), Set(EngagementScore).asJava) - val INITIAL_PREDICTION_RETWEET = - new Continuous(name("timelines.initial_prediction.retweet"), Set(EngagementScore).asJava) - val INITIAL_PREDICTION_REPLY = - new Continuous(name("timelines.initial_prediction.reply"), Set(EngagementScore).asJava) - val INITIAL_PREDICTION_OPEN_LINK = - new Continuous(name("timelines.initial_prediction.open_link"), Set(EngagementScore).asJava) - val INITIAL_PREDICTION_PROFILE_CLICK = - new Continuous(name("timelines.initial_prediction.profile_click"), Set(EngagementScore).asJava) - val INITIAL_PREDICTION_VIDEO_PLAYBACK_50 = new Continuous( - name("timelines.initial_prediction.video_playback_50"), - Set(EngagementScore).asJava) - val INITIAL_PREDICTION_DETAIL_EXPAND = - new Continuous(name("timelines.initial_prediction.detail_expand"), Set(EngagementScore).asJava) - val INITIAL_PREDICTION_PHOTO_EXPAND = - new Continuous(name("timelines.initial_prediction.photo_expand"), Set(EngagementScore).asJava) - - val VIEWER_FOLLOWS_ORIGINAL_AUTHOR = - new Binary(name("timelines.viewer_follows_original_author"), Set(Follow).asJava) - - val IS_TOP_ONE = new Binary(name("timelines.position.is_top_one")) - val IS_TOP_FIVE = - new Binary(name(featureName = "timelines.position.is_top_five")) - val IS_TOP_TEN = - new Binary(name(featureName = "timelines.position.is_top_ten")) - - val LOG_POSITION = - new Continuous(name(featureName = "timelines.position.log_10")) - -} diff --git a/src/scala/com/twitter/timelines/prediction/features/engagement_features/BUILD b/src/scala/com/twitter/timelines/prediction/features/engagement_features/BUILD deleted file mode 100644 index f6caadea0..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/engagement_features/BUILD +++ /dev/null @@ -1,12 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/timelineservice/server/suggests/features/engagement_features:thrift-scala", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - "timelines/data_processing/ml_util/transforms", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/engagement_features/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/engagement_features/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..b1514452ce5b74d5324761f0260e2545fe3c25f1 GIT binary patch literal 36870 zcmagEWmsIvwm*!!dvFQv?k>UIJ-9dSG#(&01PJc#?(QCfy9G#aclmc_=A1Kg?!E8( zrFp1Y>nCgNUAuaBDa%1ZVS#~x!GVdTacftq7RD!mgMp2~fPrCxM)kx24zA`7u14x! zj^-`~OrG|3jY$eht0HKh&R(#SnT1Gw#8I)!b{uIO8RGFJs?%?Hbe5P;jb-eo2c}}B~A&?_X+MC)P*=ukVvr1l!l??5L5El8&v55kKfQtLiRU+-+G;Z(QU zTZrO0ga|e9$zxoL{Sc&r^OcXP7}_7fTb zBdDJ^HH2$b+eKrON7;F~-<%G`$^C9}LiCn-B^3QSB#Z=U0!0RV?k`ZD_CG?e;N2qy zR^3TIcNXortp??p$}=R>>b)cp6`*&=e|++JL@X|UCn41PyjZ-xCp>mXp7(^MUN=Zm*BKkF=D~*<$ zALA?l1|TKh#QC|nvh|0Z$LD+DCRb_W0FlEuM|8DRMKe}ho&ppZC(LVcnS<$=vbfd^ zoVLeyWh=e%3#OmJ;!0|Up6{<=COa?&cq|(Pif3AOKkPHUrBI7t~g@Waot(pZ5@t+yPU3U=dJT$7u-1@^i*^zOu){KHp{LhIa( z&5)*{385rm@n?Z%pAmJiUsp|V)}FE?>3A!XLi)~n9%nD9Ecr~wdLmWukq~OKAZ5~7 z4dfTX`6veJI63A%O_61`s21h^6jMW2SpK9bl0ef&flRuGMf)o-kT@cdBB36=w7G~F zECanH7d#?);G_JMA=KxYm6?G0m80kE$lUzFHPe-)F~f<8SA+y!ybZ`Vepw>?yfJa zS<}DBU=@pIK*_X8e`n~L%==mI|Muba-4Y@FJ@*9^-k~LmA?>V(`0I1uCBZ-Ya=p5W zdj#r>9TXTC+TZ)~(b4gbwy2Lgtg@hWJkdiLxPG>V6;;7Y2wD)G5nsozNyuoP8zYyE zhiYZr0s1|JWAlDuzKP(k=YMJ#ds-B=fNfB;(!d^n$Qx01T1RNC{ye*%6HKkd4LBC^roQ`D~L==<&2TtxEN zz4m_KJW086Y2&L3i_+(E$d_uXa<7tULCz1mH-|dONysQt5FcOIp~k(+t!b9SrEnEU z30RFg&nK*)Y!H21Z|cl`q32lI>){H_QivQ8GdNz(BHa%l{J=FW*b)JLyODA%&pf4B z1;hQ^a8ysKR#&POei?ld*R3r&oWsir`65meHTs<*$>t-V_ZmH0J8;b@uI0AAls^td z?iK~=kzZ`-8ApO{MI2U_C@!%n71O_V3~+VK&4ZL!c?qcv{`vC9(|%?R<`)rb!sRyf z_kL3|LXx%PHRZB9Oci8;RYTP8lZl>8NC@anX-~Bd4#XFA4HWgFv9mex(cLMxLxHW} zdjM+aFSdes${*ZycS!E6@L$lFF6>zkwjSIB5f43Jcz`YS@Wd%6@OCewQRBpcEq0qJ zNkWraoA3FT$;vfA!Q8pW` z{TXhEixCEjN9S?z?0i~1v8+L-Nk=wd_q6>Cg@>p6UdIt2-uO{Jw(uU6&K#|H~#aAe}ny2k8ucr)Ke z=3>Gb;^ft&XjWu1bDYp%G?c7mN?5l}F(Q$jd(@ZeICm#b2^T7Ymj{5Ql5@sL{KQjK5D+s(Ta|Ubip^9j9F?I$ zA!hc@^93DwVH|rR+6am4^9Lu5RxGK_q|-1RxW}5Iv%5Givb&5Nf?H(Qi7O>roL2|v z{aXRpPH35fWLQ~`cB#jJu9G9x`s}simbDEloigHRqA+)QVm<~MDCS<91uJ0=7sAwb zLV6w%=m-aPGEPGmW2kp`Ycbcj%9#sn%dMIk{&FX2K0EgL$osY3$u-L}JA`g7^VtS? zLA-`eO$*v*8*N^C*1vS`_QIKVMrh;%a=yVcZs|GW5_#`sdl0Yq{ z)GH<0c4IR(V#3rLbG6!qdKjzAP|xb{lsmjjS{LkN5O~*j;fc>PN%%-|@a;ompXKqh zHav5>BYu{KF~hjMFjSc)&db+XR{&QrPj1h?oqlhz>PqKF%@v!a7K#LdI4;{QS2|XK zc>sqTA=hyjWj&O(qJ?N;4j+L=a~GG&Tbt1{#6NE!hX4W$HqgpC4q90WK`ZMYH_)H^ zg1_HJf9?^!h$;oM;C(uKMd%An#42)#e0Q8j)lMf>UFaJswUTfvzPG8jZpI+K6S#ZF z<(ExuKRbD=wy?pEN8cbD#1jR9iZvUmY>pvdiJEfMQ!lL{YFkMP&sWpS)wv`frZ96- zn`BjSAp1q(8KJh7a-a_3ePgbJNGo<#biq$4wS-S~+`14t5;F;3KZa#zxq7#gUrbiD zTy|F2ZV9iax%6%+)@ug!p+nU!%^Mp~a8erYoE?0-xi=&9e}OebuxOYk6ffEfd{)qp z#xR1?yvu;>XTLYL9^188Fa?wF=oU{AXDh79P}_#QEM|`s<)N%gQwy;TeK%>#V{<+8 zWx!hz-qi;dLU>mws+e$xmq^=IWnAmSkzn8XSByYXYI_`)l@iT;<25;+mFt;mDBg$Q z@67+Kb#yrneULRuL z9-bD@Vv2>Ek9H02AJ#A0Q|8;B4rYJdw1cvi-k!ldV4yRKJkV})xBL?*X#N`&99DodwdptbJPa(qu;gf zUhUs_zB?%&u`;>~D_-meHVP5}dd@7vziX$ZN{NX}* zdpIok-iUei2_(v6(|_Xxb$s~baovyS+l#Q+q~M9x259?a@53kMPYe`#?@#4F_=b4f zK6`O`6u2vJ$@YtbY}E^;q|7tN-W={b@S@- zT3Hj85R3H>Wq$2i>uPVV7*85x^|xB=MEb zIw5--sD9`+>8&20r%JAWcGV37qNh>fySBr3o^Rl{rw9YRBGub{`A;y(sw3jAYfzyJ z!%i{yro-w{!>X%uH>kemF^S8gVk8T&i#+KTHS7`EP}2!Jt?jS z+Q%L)?>kmX>eu_#eRu8yMBdVi!MFBsLaJL6881WTe7tS~O@y=^xVo>qvdACHQMXG_ zSyf5;G)PP;ga#!1!fAcOXMt|+UDv}W)`QdthUyOyL9^<>ye*2PY?>B{J!%AEWzbMB zy|79R0QBEJ!^?opyElXT3F#$RAqT}(H**Mlx}vuCCz~%F0t~_=$<@;yGi$nWs%(8> z&BKXHl_>KLH~qhAHvOuwOm%Ebo>LYN_MBWQa0*HuW6{rBpB6t}sngmFq*~qwzjYW? zElfY1%sx8aIlT&EYymA>)-b*BhI*@ z(FjId{3>eLsFdEE5@`eVE!>v=b4{5fj|h4^xCHUX0=BN6m-e0u3WCVBH*Is@ zz^CkzD1cThbEb7iT=VD9MQuKJ+^3V*^I!J#8N@^1(S5PWZsER*`Vtw@$V3%V@FWVI zS(IyxtVukplf}wPt4Nn%sD5ED4`JBDq9>DMT$F`NP;Be2@ZTh4zSkV<7{*$t=wMCH z2UoGX$Zmcq#s8}Nnc?+m-MW*%>TIB3`Ev~``=-p2w*5{bS^*cNESzdO0wq-MfrJy; zVPbv=L!*wWSlo&$Eg78U23C&|+*MHkR*09H2*OGSEh(b?Mnz`6G@L30Jw}jYLURCV z#t#Gj*m$&ptd8=~ElL2m4$r8b2%6$04q8ZJ2lNP|*d66)j_!ssGM*=976ck7MN2)FeEfj?NkJLY@ph~IFY{)$S zi{MO!0yKi~hl=D5XtUh^A@M&@ao(3zI6*0(sJ{zyCjjYDMFV-oYWTrOipcn15*bP1 zsJ#&3{!l%a=+TJQ@jL3@Lj^A44O8yzU6_Vhd=k3zq+P_CZhmJE;Ql)Px+DwjNj!CA8=Eo!Xa&$L(Gjq6C@rlAq58*Pm|OS`8cqeMF!8 z7bo0vt(H8m^zMgdv#Yl~tAEW4DIM(XkLGRPM{f!nG~Y;n9QEsG@S$DDD-fwH=rk?f z+hu)t+w)TyLpWo7zH;;T^*C!ue2-eV;Syf6aKos!O7woLElO)C5vSdzj$*R)wRb&! zNadDJz27-$ZR7C7bESJACiyPs%lAtvo^DqUHLEF=U?ZfIKZg);>iJ`%S2Sub1BB)O9X{|pHXt@lN9 z%Vu?6J7z`;M~m5F52&E^6HdY3cjR$&_i^?W&88=HV8h8R{oekmS?vdt@N-uuf-JxM z;Ly&VzZ@6N2WDq(97`duRc%6pE_()`z?+8?Fi#_dn%Tp;J>M9=-Qsx$&-T+Raqz_I z9-QI_cA)at8LAZe(&#bFc^#&?=E0lyh_i_d;7TTDm5&+p%a#Uv`r;HBa+rR;@T^21d3B2l#vZ)GbTB8|NsBSjhy6a8oc4F0sm=Kn|H#@s6)4=4 zTOS0JmThbD-~Vz-$C@Q+-aI3Jdrg~bpZ0jX9=?3N92)d)e{u2x-n}NhEu1{g{(3%i zWck?f+9I5J%lte&4DJ02hPs^Y)glCCwAtRAGJHe!pc?aE?N>#P>+UF?qWrfRhkr0Zo65CJm8I^T$J^ zjnv2^(Wb(+JOaL6D$yHyVVB#^I05HkNi`idR;4+AK+eX%UTldcI^!UTy3$J>s^F&Z z%e!XrDPh2MU#p7qe14I^EgRw3<=C>_Plb-lgr09>4Ek!Z#}k;2NqP7yT8&yi!;8^M zQX`M%9AecwRikg9_T;|TDELVZjg}4Z9SJW}Gt3Yqv!BaBae9e6l`fx@mf@z?66gAA z=tKwlXC67Q55%ds;E^v9)=eAaDKL<1FA~xDLg|P;(|+M~f!LSB2FNI--+Gz%Upe3L z@)aEl>FCAsM@vm>PgKev-r{GkH?0}-(S#yJ3;3`m4on+nN*wy!ZX199)<3=3w92`9 zc9yW1rqQ2-@agUT^>Kj^w?YmzgN3Ji$&;f-<0EH2f};BSGAllwrLvkM%|WG$y9_&p z_tn30!c^G3wP>md z&m{8LHXvAN30p(&5*Q&ZY1@$};LIwchG~P~Q~$UY!J0=Dvr*Xj#>ZvI;vFK)A*LS_ z{C1Y=PQ{8m?NkpJ&vV#D%o3fV8z|}QrHc5d`c>~Gt`WY~;A|y1-c`{5c%cSj7cO{Q zsn8x~-BxnVkD_#3%`kZtW>#w!lEhb!?!=Fo%q6VwWYX09;Ew=3I}DjVAG$YFo7yPN zuc}gQ(NDrjn%|P{ySeF1?~+y?IJNYqN+`NB7G@c>3TC~nj_ixc(8tJD@`%;#lptzW z_}eBIoUEy?wn{g-v>Ue5WY`N=>>+MOVhJnYVB+c*EJ#`*a~j^-kXkHCw>%7v zj5XQkC``q$@ieC1YHns+_EjyCs@;Nob_=@h|KQ>;>Xo^*F`6ML3&NTq zuq_sX?5yQJwvE{sI-RS-J%%##fbUc|xO%V}^HFw$s3uJQmLB8M5x|`@c>z%e*BNgP z-NdT^g%@B5R0#{%QaI(}omP z9=8vVQ;`b@C-49zhucy}k3oMUI0(~ouO?)}HDec4BY>NFBZC;gOh*i`AAmWY4ZRGl zKge6Z_!C(T1T%>(4ycOwIoZ5E7@+3UzE_Bn(`+o@Mx7eVTnd1s6oqYzfU@G3)!oT? z0|Xc8uXlJEGf}yr^fKF$bvm)lW-DeR~+Q+)fxT01b1U8T)EoDAEPs!Ah07#m&y(OX1^lM z{$a*)P7a(I>paBU8fB)x@KCbTjQ{;=X^x?xQVGXlD0c|?T=~kPLyeQLd=GZUxJ9+d zDyF=R42^n5i^nK$+O1HCEM?|NGVd1k&XN?nFf)GZxu@#>{fJ=q-IN^CySlzq5hhL= z^mpuwSEz1to5~+3Nts}2Pdo`w%0PJR%f3sGpB_c{PT{_p$*gFQJ0-)YLr4g$6@6$RT8+MAS_-v zuW_vxy^*&8Nc!wC2S8?{D+#9-s4|OE_1C8R_?2*d%_NIyyHaz!r2d8~>AGZ@B~;uU z_^pvgYETfNiz+x!*T&YIKY~2U(kJlD=))8-a$HxLb!)6|zD8Mb?ex6XBSrS?z`-F6 z#O2C#ab&>x?Ugzd!&1h|G(r>t9Rxxw{ky_BrtHteR3EsT;Y#E@%QXZKk0lf(MfiLI z`^fl(f9gu)laoRlCH9I?M_GZWf}%(~n}$!bQaj76(c}Kj1NHu2Jc_$AxZvBx7s}{0 z#x93L%q(;za5NxGU%vkmRljE8ZEKYjG3e8)JXAU8Wl)DwXMi}wL&ZW-hnhQoePVrQ zjpMt513v1W(3D6!($aMnT}5Gu8Y6Es-vB4wHA6Q)yL50!50Nl!z2oAB1@0AwSp;&` z4_^wWUBgSH`2Ig^A3y&W8?W2{CmYR(XCU_l^tmN2Z1B+o zj*C{l&jB6vX|s|d_d1iHB07K<*W;Ie2)%*ABGPi770P5(kVFm6Pv68;PCVDN3)0-J z?F12?z?Xa!Q07raSMGm08#XJ@Ik(n>dcP{OqF6*~`cO~08gatq_*hmXDRLRDS(-H@ zq-Clka>*;`TNOi|L$3_gK?szW6bT_GB{E?Aw>bo&Mg_^97+k@LXa@&$<&<;Ha&Nd$ zYHaXT+W)hfG$T-1XP&`FBfo;8(p&$R=COPZ5U$GR0x*+gr6_F^;l#oSb^E4tR5>!8 zo1bwey*W^Bie9HTyWd)!yC8gp-CAjDKvFI>&_yV?WMYJB0xGK_X*~a+Bed>HqIcP+6 z=xW)xSFi%Zb|*kOP@V{lH((T!9A-fC2Q<3TF9f695j$$Oqad(W)4+OIsk_wHxO{@G zp99AD!cPX=DEZ3~ce-_7cY2Qma3F<&ncDJX1WZ8}z7y6Bwz&#qXtX(rQ((@dAF{y* zdSVIK#4= z#~vTDN0NQu?wN@g{OPk}s>UEy%?{gW#yXgP=E(p91S78fD#n!olenCrHtY1Q2rV4z zTVNs>ZyY8KxQPgZlp$K}*Qy%4&lB$C^-O4S{5s@5`_g~YNKu}qt5UR>EA!j;vfyvu zyrrl{Y~Y* z)Nhq)Bn=>y{jk4PLV?$QH5qRG<;${fCXQ>55GW1q_5?W+*zg7!9!O+L${4OKuceJ7 zX~7?_g9|rub35Vgck&;^RgR8Qs3NUZn@Vl@y(-|n1+cigAk;^9X74sIjHoaxtEW!I zSf_{L`?sw$tS@WtxkV4ykQ?hK+hvAWRnN-ch258~TTA%TyYSRKM=DB7y67rgsKjFy zn(PJ}g6-m%A!et>(_xF4|GF!OIVX=?-l#Z8Ua3RnU(n;};@#F+EF4ojV zfovY?Yiua=QmMy5m>e!h) zi`Q&s#>8(D{eD9KeAry?W_W8C?#K>R!IRMsL$h{YW0+-r9Bur0bMP~ILa8dIcy8}u z-#S0a!nTf?rMP(6kkgwGX3F)r_O!oG=Cn;Rnisb2#t^iyPcp*H08l<Y&u@+JmG zMqm}uH(O_Z4*5&YMj1ZC_O0qvABHD|c@Skw&HKeDR?J8ofdTq3N^KJ!2J|||=8rPz zwX>GmCOI23#-Ocuy`Ybp^{vfQ4b+Y1yfJ+9x&=;hkB>bDLvJW$E6^ZSyJ4Hmke8ts zqyJ;XZ)&+es4+m)uyVh5-xIAH3&_dFe^9%djf1H9x&Ea7PKgVaB(4W9%T0C7d zAkw+pi}8DxUHGoqXAbEv@>{nN5V;!cALPxf9GHh(^IznB#xf78 zTK5QA%_>;m`&_@n{#0v?XYMpI-0Tc&6})d?Z$ro=dTaYRCYyJ2zqs?Yvk0oV;E6#S z<@2v-K<$?yzoi^ex)ol{*?fP6&dkcg3y-G#I0nnIjae{Vm6Jw!B_cPE{#C8UPE@11 zv~Qd@1#N<*judvqLdolzp`!zyjB$bRH)1t&K4fT=M_`ngOA`#jM~#i*_)zYT>-2r3 zHdMC2-H&RSKjhg?BeJX|rlIUC%k~MVt-h;id@$H>{Ja1(!kCoNeL)~kgUPeTHu_q6 z_lYcR0X&WB+nOlw)VACd3hw&4-6KYnLt){0NW7TOI?ZeiQ(-o|2!3fweUe*owxGBy zrmbU}qw+;aA#Jwd5nF--Sz>m~$6V*Ivo5^IEuaXVqdh+RY2`2n5<>9hl+prCA(6BD z;#;X=8r8cyiCK<3YltRxjjQNcj$fr^`Ah&l1=~(Q<|#*|J2biiK;`i;*ntA&U-9~T>+KPLU7Ih7M3=#6q+#OmJ8^2q^s%NjK!a~s*6|z7Q?wFRH|*j!8nfdq%;XTe*3$UO0AfjV*(cl<`|~D1ut=s6kwGKhE%ln=rEtZ*MRYB!Y&kHUT|TKNj5Dq?Q~ z?o4Vx3fg9Pf-^~DFpnS}!W$|dA#XEt69SO8+f%<3h z?6dX%Dqc;eUDwyir9_s$6e9E^?i~?sj}uT&_CVSgt5N5adeXpoml9$?XwbnzZzYVe zijqn=s>=+hocQ_$;6?-5)n&nJ-t~Lr8}(WeDi#(uAs~g^4FrXc_KnC3I@HX5MxOV% z!2>|yuyolxznVm^Vb{r#6%GsM(XJ(xPc1v&y_ABF? zyN8@#JO4#H$~iyvSEPeAzb27S)GRb5f=V|vaX^9j{675i@EH14r(&D6EXPiqrm5!M z+m0TDCB)0{GxSZ0uHtC)@Uz^d!SpAJsn6u=ct%h5oO8U{bh6;Fi0*NZjShTQ<@aJr zolfwq-6$;GgT@?=Jm@x}so6a_IZ|}<{bG+r>ahs6iR64$c3NM`oP7G8b*+NFLtG(J zbshNhDalMsgE`7gR7XmY?uVJ;j;H&$Tr_NuU)gqxCh%RUNz!gPZ5IZv{N|wth?L?FA{9&7=J0ADm&Ujk>h>@-PHa)qFU0CA_1TpS0>CK;1 zI18!(L{JeRC#F-UaS&68aw%x8F!8V&rmMZRM})c$RX#pFOAIHiA82tp7=1OmVzgLY zJ~)6;+b({;Zwb~yxxXk$fp#Tc8_9k3(u1RPWPf^P+xf!LCnPNSo2YBL+PyM;>UoU7 zSMLzH3si%E2k70>BS-SNP&VN}QBmaK^03fr+-hR%1x0;V{pHhbjosUjhsJLV9nojc z&pq2;dUXD~Rnytt$EvvOmCYm1E5gzuf7Qxo2t43Vf4|kq0Fs63|=dEnTHy za>TsS@-o_WXoDgpfilH{`FO4$I+g66UuqkJB*TeODt^LeE|`{QFNjkL$)c(69C=1m zC$T%Ziazec3SvK?6~Umb-Cnb_S7@ z#g=0~)7_qyWlzdL3(KObpC5VmR!3v9xb;5$7W|Axb+g9n0umhbAHhM{rO?8E3hw8{E9%(b5ypO&XS~ln5b^5_Kme8u6@iFmW6KDv-OU950USMm08B}oDc$-2EsU%N zh5d|I?eWs#V{qQ}AgTl{9K~g^tX5dhDgrI+*SYzHwwikiG^&OO{K>0q#GC_iU0b?k zd3c?_)(`j*?d!h&b&#lJYf*Ib&>Q4ucpd>*rQJJS7(@b+rT{95X~%|fFY~!?*cCF& zQHu-R{V(im^>gvBbHNvLZcER@g+bXv|7zy{S{wKL2a_Qknz0=eP0Iz3*@372O^0}%Y!v+%x3w2@<2e}mBa zFk%c+1KSSh2vz~U_vvtEMnMCjM7di7UUY5r?nqqdvdgy_2yY*>1=Y(sHA0D|NZJue zy5@Y`W6sP*injrS)V!|3Vh*?>C*2SW;4qGT6}c$-vW&kVmVCI}aJ^2uCo?2G z8(-Lbz=xfZO2LLBD-#eM3D>An|D-?Q_=~>S)KXvz8f1Qdy9Ll53EsXx$noFlw2;HQ z_b=BtsDxAj5cu64Ko2iStVp9c8ANRXSm}f>NmB0_a~%s$&ssYZM%48dMVv+fsthKoDa7K5P4%oG?57!HM zHzAfAF^BZ9u1?b9Du6{PKb+^nco!=ae{ZwMJpUHueFUk0nAp2#B2~@EJp_rD;^Ywg ztI0n1^*wT-=zFCO6U;X_#bBoM=P(Qi%GyhwN9+z25d-Vy7)R*ER%q~!xPod8`PGjR8Q$8KY==e$M$WUhI>Jyi`Wlv(yuJcL^`b10f!J#4n zO_(!)Y{dkWCKc#;nKYWG+@KPXWIZt!6mj;@!PGK1p;!^6tplsQ>}kiyaEp&;@g`wn zj`54Lcun8ffN61j44;LimMya)aA@p##+S_!z+t8kZePd7{59J0SaPXCk5ZFrdhGLy zy;lX&#(uK)J2v|9o2oH+5tJ`UdylggFpWB;xc1s$^q6=_+No0&c378e?wyRQ$~7(( z@}%w&Np4?~qMt8DEV5BY?DAzQk#FrWi!)EK6*?}4bZ2dA9r(~LgF(iG;H`t=2KJlfl{-G zmHw);2YD$`xe43yKs#0B7=!+ZhQ5C2)NZ0`gpJ@Es6EovynFjaA>(^#cgFJoV-s^w zBLS$%M_xicYHYS*c5bK(BLok2b>nRsCgztF6-%TU!(&^1eGy4y^=#mZ)N;WyN@T!NFp?io}%up4M<1RY(YQyp9BV_)w1c&4FF|An7Ca zggV!2FBco)*FKUNg2r(Ntk3Xe1bD^M&LJMmRB_)>LrWyNQJ+RHa#$fB{Nnlyh;Fb3?fzps?ZS(9}swNd0?k(So3FwJ<95 z=c&};7yze}gMdcG66NoQjL6tqej9Lf*N}7^o9*QQWwIzdfAZS1diRpJ_FN=&8aoB5 z5)oxl+>))wE^dq|4SO+Ye;g!1E=bc2n@r{0f?`#Cx*h^LboHOG>Q-GcikmroOW90> z5mX+H;-PEE<~d@ys1%~mK?rFg(9Gvl8JW%?5p?Q!Uf`C(&{vvAAqbSwLf@6aH}-;a z#F%r$5HkrLVXz@=?NFDBzp!YHETUjLbE|hn1m{4ALL1}+VaK~|>(3wRhNhmuHr-b) zz+=n0XBX!}_#W|!h8l{5;xu92A=52Q4W!o|6;0q!|62tj>Ypk?d#;ES%T+Y1Y}_h? z4wQJ2^;4TaqhP*Ny2(WyxhPr zNpbl43xW5$eTGX^ilFbPk_F0jxNOl_TRvp)v}md&n6xD)I5w!X_xTTILO5M#ilm{B z**X*jETG@UE&9p#7c}zY#UN25J?var2&R`1D|A3Ws(%4t{|3_gH<0~rpgI4EPM~z| ztK|Y5ZPa?Hd8B|HZrmRT0_C8!#fjMtlNR*ek6e{z89r4C;XE@g1PhLK?labxTZG0i ztV3Z%UEzX1d|*ihvJ=&Nc|LW=0_2k#OUdeTIw~6$|b-(Y>3S1JXTFBn?zdAG81yFCUo!my=?CyBg8+N_z zPw$oUi|ij#EP($0 zZ%qdN9yYtH<9-F*4@|9rXFz{1A)}7cwp-8q;y2zmlW~{C;p~v~u;!FKZ~vA~kJUXF z=l=AYQ|lY=6Yk}OghZtSDLN9Ks~RJtu&kAwu+_oEAO2Oymus)P7ay3Xhxw}=oOrhI z;u|8ynLQoI09U@$I_G{#M`?BkK+U7oZU8r+dT~M1rt+ob)!CX}2S#FrFIwex#@&Yd zYTNoEO+F_j>;23m`Qyd^ZE@Y8PC(FsxNom`aP@$+K3_fhLRr~efgvtDvCuy6=WNlsbYj^)PwvCUM^gx1cv5&}GOYKA=T0T2MLOJWy&EOJ-EP69#AOhEY4EzQ^L?&SQtap!)>cA! zeHu1uDxc)iS=-!HDlQHtNoFo5(Tt59zj=Dve(1ZIJ#>0_%St}-KTD2X++^gB3g@&KD+5uKtympxBVkAPvk|#lVeXC#J zZp|N)7i7f!RprNB(a1&Fu+Kt(3mB%f8K$tYl$eWAnw$Dsk_oTEuQup@n;u4?T5sQ? zmX*CO5_4wB4Y&KWjGS{1bPp!!%3kjY1r7b&0uAAThS+a!gnhILU%MW*rI9$ht8S;q zS8nX3YcsNLQ`?PjRtFDGc5Z$#?Ll)F9i}~;-#Sfu%!&u4zt(IzsNU+Cjyu8GNitU} zMXuXu0isQKfC@Sr>zmEx!@55C2``mHeazF5VSBUtpreAFPi_yxhGp^D+#Vz`geAZp zc<;U9`GevYgT62lFNQ}-$X@dw#q$nEfZQLsEewvxRYnl&_=s=XLRA}vQ-XuN@xCd2 zF=~Kewc11!gz5gMFVT(y5!EK|iF~uD-_a9ndnQEGp*L@YuhC&MH5uLS?`S(TO>+-z&vn9PRjFf6Gsu zpDm2Gj3~7q>m+94W1Ra3hoLZx8mTRLcx{R`2%ZXb2k^;z9f*bSrT}lb0X?uV(LTn2 ze*A5mo{!Ovh+F4lrA=TcYU-c~+7-|Q=?Q2e4m43C)dKDKZwSH#xMr}IG=gr*o!>$K z%KjbXIcX10SXA;GrQtXHA1Hqh_&dt~t^$v<8QSq{-U&sr$@d43c~<} z{kDc;>s&7Lh;n;%8S@mnN4BR&^;|8J*Z~Igo%3fDW^5k6fgC7 zaGpBe?AvDpB_3warc?M^*ThaK#?}@qH&gsp+wPSHn=5~feh28efWE)3rV&s1ucpPA zp2m8eUXXl$*?MNE68>Ba3q`WRe~f*0h8w1^qIyeM_M1)0H$u#s|N!dP|`Uml{_AZlTY! zgvXwQvk>#uFlE)~CBV%%IWPM@JU_=u3Z?G>uXJB#cgO0U8-xwH2<6L| zo?DjBxS0tV9Z&(ca~!EL8W&wk!=78MK%a+}wJekPLZ^OlhvbA>0V;=FVyV>19|x1X z2b#;3S<_cjxQ)=yREUQk8J*9)uqm zeB@?0Zki}8bM_%}22^rp+DBkj=xX zxQ@qEtFgk~c*+I~yIZv^yd$vKyi!}uF$x|Qm~B_C??0O*yejq>dzI}hXx~lF>iXh> zH)Yy=HMQvB<--8nLh*dp2ak0$SL>xGknI_L;h>K))bCU$xZ$e*D51E%;Q6bigB<7_ z-;B$!ah#Eo%~OcDKQhx~YzS^BRQpqNY)7CnRd%5wkq8>yhp6jEv<3OTvu3}IuR}Xf zwCL(92B6{p5%vzym37;;aBSPQ?TT&Nwo?^VY}>YN+o{;LQ*l-NcGY+8dH3A^z4y1> zveMGpP9MGZxz^lcj=6R+G~sr}b_v4Ok6*o5%(N_JK97xtw)L@IJJ5rkx9~qq46YqMO(k`77QI=#FyxdOa)d?-# zv84CFaK!o&pv<#&Qh)K9(wNy1S>txK@8-uExL-HxVYFy8;(~s5Yseq;jLkOxKJmrE zO<|s1F*X0-di4%L)n9%b_k4vC!$Ttb(GTxuJ|}2yB(B?wPXTd0`wpU8wj5#|&YrBm zfV4hVFMrb*?Liggp*ww7HF$&&eog0Doo)f{dE)6^w>l@=gL_r{+3%ZG!`_s}BxmOW zQK{4Z3^R)B+oO)s;TIR}vB#Tlpt9sw$qCiRs-i`E3@-QrIS6eXwwF!IX5=;}`IDk4 z(}02)W@ivQ>RiuNQ2U~^yNZua`%|{0D(5u$ zQ;Qxxc)du|l_yy(qMk0u_u6L-C}$5<7NPHLL0mvi*%Aq!oAA4G1aME<&Qi-@jl83%%no9{19zs5(mevY=` zCjJseLOt-5jT&cWhM>rhAti(nNr*;%qAW>JR6Yh*yVy z{k$LdoDrQ8x*$bTnt9vsvkU^$v*D|*nQA>^H@0S#GfR?2ywS77u*h(1MC}g9Wou?b z?XALzsRnciYi_i1SvVCre(fr5Dh$xnM_U&8C2}$&dHVyxF!;VIpbn76tARF4F>B_K zuU_h+^YXB`@cWFK*DQ{eI`&<5OC&f(HUcxxMC3pGvu9^R%z60)m{^m>uRA#{+yOh8BQNDj|L@hAD#4c* zYOdd}=O3RL)@*Z8&keTo@B1xxlU*%863<%)d?aCRGPZl@%|%zY*4t^G6;*v0YAv$n zJLJ(lBw5UIp(IA^984!VG})6U1x`*pRi=EVFp6ldB*j@6m3+Ih=`vc+7)sZCjyyTf z5^itSOV8q)EcK*POG**Nt|q+LGAZgScEmx1tY6+-LPHK0s39`14xDw|G0)@V>qn-s zO*gZ=_cKX__$hQ$ZGu*gDy)vPN|dUTmw2$(j}S$#-b&_wP=7Zyy6pLB<}Ki@7C9@2LiCt3|%rv{eh2> znl>05zP1kQMyHjS06l!WjyOtEwCLGu?t}o}Ys*;et!?-16%6oYLWD8dgaJ10NTcV= zHE)*^CYy-+5P@U!4uN!x-(l=Qua ztqC#+eKcRMZg&|yF0*IV!TV0YZy?{ALwg57()eb-0MiXA?zGLtLW5#`v}|7glv31% zY)bKS)Md$Gpu5@gXkW!>_r5zRUAh)*nqJ#|e+_4mr{(#H4rMx6>@On%qh(j5e2G9; znCxid*WbbnwNkQD#p6226#-M#F}Ae3smTWib}eV+gBs$c5`SETdp*7A@_mKYYooCD z8vaCwX}*)`rw)gs!|t}Ch&paFS|{ja8TlrzVVxb^K=&DYZ4BU%Nd{V4DHjm64xxF|Yy)L(91BtNYCSSz1y7z1eui-awoyV*TQ;feE zVmAkQfx@*!3$<~+A20c!1(Q;IpfJX_>_?zc^6_BKuoL{NXP1K2js zH5jFAR|k@nTtw*t&K0==-)lL(oEQCZ1}!=g+D2HH7Q|l=*YMn?%}O%$yme991Kq$7 z8zV%UnfmwVTv1(hX?2x=k=O=|g!1*YLgiM^L@9Tc#xIiwtK}%E-}bGk{kgI2e2rcG z?KuvmY$#H{me@Oz3HAqlhm}6s+<)JBbb83NWP5Rh?rsLOrQU<}WuR*@qC@iH+eC2s-S|wjwD60W)K8cnQiyl;DNvBe_FZ*$ss=*=E%jVt?u--*OzF9tXF^Nb8Z6w-eqpZ!D#g^$g7u;%I+#14dc#3Dap##dK4G~h&s-CXEcTufGh8o(M z(p`0{y0gD96DPXgpn~Wzu~*H0R*im>GE)uXPz~)M#~<1n1Gfc#0#vH+x>v1rR&9iU z#RIwiv zA%YFu|XZ1ht6ic?Yndb0L8uPaSP3rc!BOcxU0oThAwv6ZuTi)krTm< zZ5+Qj7ADp1=83~cEr)0lmoHt-muAr?$(Xr5A*R)-*`AUShz`|K4%L3G-XsP9itaXd z&}Fsh!+F1$J5WQ59C<;b*0b6&hN*m?b`(|*rD*nWLY9roqeAT)pfOBrwP|#&>~osG23?>Pi7r8%|CFezlh6KOw_h*; zeq1e{JREZ-T5-F2JGT0Ar6Y9uNQ@SHMnH5OG$45|^zze~T1Sx1YihM1t52^}wL~b# z7`P4}2)B=7XP`LQJLg>f%q?jto9N1dQN)c>q=L7;%RvtUEEQp~bb{VH?%D3w;}tcN zGRAY8};;u)c9-$-+j3Na9n2rJVN+QKaS0aeH9#7gxv z!IeA{5Y(cu3(gUfx?k6HACREEz?fSo6pc)Txd<2m-MF$gP@Q|fbi>_=+9Kcfcj?P z;FurTB1AY%FHWCE&JF25XB}{VGEZhXjc=-(_u{hUu=>4hq@T z6y`n{>N0&Gt)Kpn2XsEBv%p>}3G%^EKycH2NGb}0Tv?)tk=0e6=SMMLDMf+6tn;~} zov~;Ix6Q+Vh*}8`J4C=pw~_jxh(S>J#bxt6 z+O@$3AVeFJZm|W!fQUhO*?_OH3%!Ob^cp8@kfG9N+ik7Tv7T2rf}nUh6d_Riw~N1|XOA%7z;3Y_<~yd|FsuxWzech#qLUzT61BNI;`~oO(js8S6s`<9 z+Th|J&G5tlF|tNINd8|`uvpuIv7?auhhyP*41a3Rmm>lDvOgJ88Dy! z^MJ|Yll&gNb9#Kb1Jr%fHs1hQ0hhkZw~o_m5`S7S$cAJ%B)q(5AH%p0+I{QZH&PX! z_qG&pr+%ZjFo+4Tyq%*1fi37y2(C&3AV0ifexU>d%kgZ_hlx&6q5AG8Rsqr-!# zGaJ)71EKdR8(xhH&OB^gO>8}FY~5Xw6QRK}P-XYKHwOMZgg*_^NpaCpnADO+qb}c~ z7OBTtNx~O!lU3>4Q`?`3-bZzh8%Cqh`(;;Yw9iC@ql>f0tB;3r^`8!0k7sJ%`YSo- zD+wVR`@4#qiy?aT$Fru?YfTl6D>WJ@kG3YYgM1M`dyqf%eWclX#+vG;*m`HNM7F!! zS>S47G!a^EEp^?RB1 zKlunC4-$-3<&Pl9o6l&|6W8vN;iPSUOFtEL`DjJnyzD)4?mtc{gpXjRW2B@XW8#>c zZg?}{xZBq5C|OwFyl{8j-h`GOyvIq<7e-@u3b@?QAecYPz zLw$LIV6WKBE8_T0?xIZiSdNwST%<6Zv-#~k0b}nGfH!oJnu`+6$U;xYI?c#7GTSN~ zKj7^q>;4XKEiJP0GMHHyo9L*RQp=LS8qo|s_&}=o#-0K{61IIyUwN~NK53RO zF4GrbbxV4!+TI>8OBOO3o|uhmLN?LrLDEUxdAC>$2mU4u!*v|43USKKLUZKhgd?O zVUcGz^=ON05n&W)J+XwDBTW-!Jh}v9n)rRG7=oUg(oYj+3$!#pxmy92bQ2z!7G?c|@zOpJ$=pYP-VkhQ&L~TqA;i|` z@_YeQ#6!GyifBF+Ux*#3wB zu=;whs0>_luti3w1Ms zUX5%jEyLD^d*k-cdG2~I&1xUH&WHE+$$f#$E5t@qCn*Q3bf(WW`{uEnDEZO(dxf*$ zDFgn?r}V-8bEl<<+%kCcAzXS9BW36Mka|x1&?*Z@ob5n#ueAy#RWyUU4H1!RZb3mf z5Gg`!qDqgK+TB)sLTazel_k&5kL~E`Z=%g#;y`kbXuy3Bo0Hsjg&biqGsGQX-MAFK zJF0}Kc=qqx5|Uw(wIb*FAJeelUHi1yk_ov12Z^8BpN2T0F@x&2py)@(7Rh^5!nPk% zGm4>WC~gk~mndxuqgQV>>?0}a|9BGe5c0qU#-XYuS=hU_m=s4z!W6U&x)XOAKw4WH zx|6ud@4_LJ%Dz)iHJVh>kHE3b>k5XIE9?r!!D=@fCeQ22x(d7txZ?m}Q`8qL8Qhvl zi6*0B^qYk{dMu>EV}8!Jp*>pqC3&9I+7Tw5bEmAT2z*4ZYl(A2Z(8?*o|XXk=*X5Z z2{Y-BiaQz>{C`w<00)`t+lCEFslI*Oy(xZG{+AAwyc2+q510Sa@iD&Hz(Vr>AmLV^ zmE}A9_@bDitpEM56{u-{tawuXFNmiyfEB3!4=YBD4ugjeAx=UY67Q_N$vh?|Z`W{! zSFC%C;99@<0DY~Fd#B5^p3RuD=9Z3Xva@Rk>+Jop^%KotYVDnUr(T{z@>ngwk|zg; z&jHxlTHfg0V;8$dI?z_hv~LK>#17}|tMVr<%Z!agG=cg%mP?4l+F0C${LfG;eV)Uy zIp2+omP1i8B}rze;Btm9aZdW z-n{fnO-yh|He5uD37UiVcW`DuEW+54Y$WgGB3@7^4I(q>M%}n(fME0`jGhk`3$~?Yz!N1EQm06JS1zWs=YGxT}5?TKTXj3kRs&( zt`+7Ygh0A>@pQ;A_ADrRbekcR2^}HYPKM<$cL?n zEE<1ybkz>}Wj29-b5*h!&97<%t%op%mx?BIsxgrSC)RR~1`z{@LDr^O4oeoU4^aQA zSA~qr@<&k2L-{2(U3cWRNzB4HwN2cM|$O z(XwC_ak)I@?RYD8^H0-pcIgYDsy$Ilj~_VsB>L*J6E%_S#v%}a;L#X{k0y)L7&fZX zOvV+d2s}eLA<~9&OB42y?9+&#LpTUf&1B1tiyUrLHkrZz(?pat)UqzHl$+I3bPK8I zhH&JAQX<%mk0`72lJzichC<+s;fHYO`_4zpGU=Dg&=5yd8S!1i*rW7YOSYZ=H(4As zn~xs7FX|fp(zQg?A8ht|nP*uAd+_tVwrVHdH(cKWxgeR!4P&~P%TrYjr^kmdj;hhs z??Nu$mxH?bE50B;H%qwa4G&Z>RC9c%d)V|IRZmWGh1M$U5RE2&zD!ti7xR8I52n_C&3}9g^Je1#gP6oCh1 zU~wYkUdj(~eFa29NzG6ZWxYA5lEx4MresP+G5!=dQm7UOL*da1%+^O7)at=+Ja9%3@lPc@Zy_ zQhqe%HzMNb=*L)P1@WrPQ5Fa3Ghg~`^CJGtUo`3~BI7Dz5uQ|e5o?o@WyZTdP7)KQ zWb7YFs6^0{r^Xe<$OBPSmBw?>)X3_nB+l;=vXoZbZ&l&{NE8~^E|AgF~%m`3=)J{85opJZ+4S)8XwE#Wi-AA%3Z2W9zrM+ zOMF-skj__<^w!Q%N{8TchlCam@TKR6LeXD1SA+M9Hk5P(?J?}hl+^pu3nGm$W^p7p zHw}tz+JZ5W&^SkIYCiU<{Yt;zOd)>WIsyD z)6kx>yrrMvO-#8WSraWLQ7%SP4(73WB~_@B&UdIfoB2PPHBiH{F{bist@>H^nDT=n z+401`|Bzgxh{{fTuZIZ2h2nhSqk-ZS7QCqc3BL!i8()itFIt$uIc1k@e>pB7O|$Ko z=;ZMnlKZm~v@uxeGCFARJ_6osL{pM0&T-;C4M7~V)>O#}CQ688sao(tIo%F?Jypt- zcD74*TiXbg=PH^B%R9zdDJj)#=SZQp_AkL9!Pd8-SaTE^)Ar1t(^yjYA01@2p zXFqV1m@gjvQsj8{EDVf$H}~H`?CPKY#*81|%AYz!fQCeo_n038EHuceA2vZu;>Kuc zW;;}Il>R6UfdMEbQw1oMSL6qcbL5Gq-L{w68t*8&o*L&Unvt5|I0O$R&6Nc~wC7q75gCsXgF4L2i#2r4 z_{S**5r;Mt0DVdSpaqv3(L$z})f|>YL`|Z-RTYUy)qy>VgF6%ifgKGOY0twaAIGJ}fflJ*XyzWLSy3@9DZ+Ak&ja1IQdi8L*)&-it2vh$4pRgq5B3kiif5Y;mAC&)0rlaxkXO>J-Mz_?faIO%1WeHXW&q%F|q_Guj zf}_a=mgLGV^RzAqLY1i3Kq)r;|N6}9K46K{Ac7{#Z|EOnqOfJ93>}*Jued;I)3L@U z}?umx*o$)h2TnsTSt`XrE+vu&5;=g@#%BjHBz3KJnEWmB$|$JjjYRH<<%~%DM%-F z3R*n0Y4ssfnlN+o%hVe~t`$H$djp06cg0=?XVjA5rfPOK=V2U`sQC#bwz1E?C*xpW z{3rt-2umC7@(>VJabv8z&EZPd*3DCe{q`PWPUA>t9epGoUK&V95W={K_Wi;{T1gP{ zaYx9@SCL(SctxiA1+CS}HnMXY!+40!XZ2EHTriwMF(_1h_Yq!xrQ{5t#Y4(4MXZ8S z1%HK_84<#}>)ZcyB205Mc+7?@b}ql!hJ`K{#q)7*|0Q6m!bGZM;=xqcITSY^`(9>WFL5J&t=zK8si(<F>Gtu9lyiy%gun$(PEY=<+Zj-XX zz^%oMc^AU3#*BBN2%Q7_dKT_a*7p9cJ5&jL7-EX-cE29p^HT~|Kv9&jp3GrqK5UE$%4o?R_n-?6g zYOx?f&pu8#&*GG46*80Ons&^{bj$FNPVEB_gDY)kyeYxM``n%2XSY z$%4Li$*$dPfjsUF?+$Rf% zDYb-}C+y%jII}Ba>15og5vq+uEFg9?cJ^iUx{cp**N({kHlOp4Em}h`T+DLyemn&dR8po6uf~+X~c0QT~u=I0rF2pR*8D*sLHtOAj>LNZbD=j}OX%UM~MV?9;UYMI&*D}jlnTj=z6kgxnBUMQr zCi&C3x-)p$ED1IKi5ze^&d+*~<;EUP48!LiTN(CuCaKDDWR!kV)S;r(Q<4{-b3eq` zX|16O13x-+UROOTVk!#${^8vwc2opECBz*csLKlu`NxVQvIkPm-Euz5SZ5YQz#RW6 zNiqQ)Ev~4nTrW$SS5^fTo#&YEgySEEOIL#&Muo(J;}5tA1328zLV1=Tb1C692H(AP zCe1(?X7aJrQkt`-hG?ZW(ydI!+3hW-@{-J;9!D`7DRBa zwq>*f5^WV{%AJ8UV$PJ{9&8XIh1xg7YAD8ACf&P&Vco8wDzDTk$x=*O3366$o8>wx zQq(4uzS8Z$R!kZBNSdz;-r;Ia^k-@aj<$e`EgTGI>*^i7D~VZ&E?DuA`XUS zvqlfs*(%DL7doQVgEK6X3UM=wa8py)XaguMY6ky9NmLXMNkd-L6&w3VwCFoD;NU?; z`K~O#PxVB?p)uYY4me9Rx%c#wF7sOy!80hq7eNj3ykDMfHOy;|8~Y1 z1u`GA&LzJAD+PW+3UA7SwZ(bBlZ=Yej+#=S`s*uB`=MiahiHOa7EE}MI*I?JwN$x^ z$*O2_Cyy)Ktzbz!ughBI7uN49-u5})wA@4Rj(VgDG`xYXdd$xh@0a6SgqU`nXgtIy zlv@L~%gEG%XOy1he*1Uu{pGLw0jX@1pA`(ZAVXb=6_A3#07idh zqQ;G+^3O|8Tu7E3>CY|9grxWu1j-y-vID?RQQI_~1KVPI$NHl)L**k)uw zc`tp<5qjv&W8^aF1TaVW911-aVq$Si?IccL*4nSg7Sr0d~jy(7GU)IO>PR}ah z;!v5z_A*$8jNZ7o$Oejx>&+jOa3ojG?_H@=b8|qfDfzr_gpBxrxz;v9Hf)hjnJ+!} zQO{C)UjI6WCQ409A)Crqunz-nlHJBp;Y_}R2fOH#%K}==M|n$BX#=!;R`f@a{8@35 zRCXUOEM@@bQ!uAAtypRvUp#5cA!)M~TXKi?GQV}*aKPwttYCi+_;X=GgM zBWCAE0gkMi>`5|SPl?HjVXLIBwd}Puzz7cO^*33y@f<~_vA_9h$B&GHwi3Few-lzh{l-T%`F4i&!Kr%&w z988$8&~zDwz$m|shtf3F+s~(qERy5{!_aC&qHAEJQ|1{DyrN^d8LT7A#QQg)BHk=_ zm8VY9DP5rN=J9q9$xpvXB=)F`Q{4^!n>y@(Kk7t~{!%HHDd zKC5Q+E$4MEw4R+(!?rzh=oTm01L`xfx@|cMTfjpCfEvC7**$P3z~w9KkZwebrD@nM9fwxalz z5em2v%jM?SbKNq@m2MO_eKVW0UA7d>ijB7LuLJrAZYQ0@Vmcdy0S;tJ9IRua;5B8l zF3t~wZsN8_`L93G>kpelLg9i(aeE@jK!9amEksk`r5}+;%YoY{v%ZQ(Y)T(({V2!_o}`~EYRYpF zlYVH48?YYl(kK5+`RY%%v^umr5Qooay{fb-Fh9SHqb&iSyj9K-_kJsg(9j|wxg7(| zgArs>?@-p8fZhgTEjQB}o3DVf@gz?au2O9Uu23`H{)K6*ZY0Ym5LanyWkmU56|Rrb z^hO_qNcV6?GO{!<050qz{W&*)9W#ZwLS5CS{HJJe;&Wv`#pp^TZ3D~4jhOU>THr26 z&U6WWJ>EKLKb!o(Az1?0xT_NkG-IHaw--!!O~TpI9U4n?!sWRs1SjX--Jn!vu0?kn zd;%GNuxaF>b%tB_8P9-9>nlOC0CxtwyG=b&*K87;x;?LamUw=yL-~z6a2w+;*7(Ih z;DHk?mOR#^qwW`^rn?B7<{&p0bJ_yV?j3oN+@yW$Hs41z5(UA}aaQe_VUP09q3I*2}Syf8Q!f2z^-5ZX31W2I6}$6Epg1D-!|7_kVC7uBIDk_ z5wUj!zPeiQe5(pZSE?}cu7^Gm5$Dvwr zY%snB!Et52jRHRTb%&JDjP{fOh;_C2#<+eOou3l4&~kVjR^J+FI_q9Olilkzx@It| z!Sf=YB<1(}%}85%xbM;aHlR-7dk@O^a&lBaAE^`=DZ3|QTKoh^EipzkT|GhzLrcX8 zhJ{eTrGCS-3SD!p^(oKkJK=zB`Mva7uIvE+=l04|?IRT+KntoCz|WtKqkmgaeKRvw z`EM6|^lZQNAQK$WtXI##VS>tmX%w??0t*&?XOd70q9YzTb2DHw)bz_QRxJ*!&IbzO zGve}XUz}-%U8(#(`|VjE)c5l)7flI&hHjaRP(krRMPp=K!X#a76zNxhzaR*QMGuh} zm$NiToge`ol{}6em4}DFs);v;i)?&OX&)qzy(M4ZL{g@2gs zI?)J>yXM#Rk=9_-^L1>!vAjuWNN6={3r0mp1 zw>);5gss&rkI{X~&Sn)f&tXL8qi7jDxp5op@a!i6m)+Kf>gEIw4_Qo%Ve@gaVRr}q zpN_q9=ed{wT2#Km00E)=mt*FDj;yLi#jr{x`L6w>%ZJXGPhDji|0SBJ3?ecKq3}^YlodwgwkmkFZE6 z5u7*;5=pE*p6;DwGM1QtO6KUL2|LfQ4b?FtIx)c{79De?<58v~8{E??EM^?Ze9O zw(fleznUs{&#R=cK{xU__nI9X3TAjN6Vkax)o# z7n}uJF^h)&1Vj4L%G}9SKw+gObWt1~Hb0h4X<0{SnQbpMi(om{3$t$g;lljc+}3L_ z)tk$2FAEp`HgiXTA{AaWfy?B<8@FY3mm<)jzpHBKc-WtE&!3_)T2;6201m=9UH|jw zd-xBxx6~eri&9Uy8u5znxBsI8A5c+?elCG9!c4mx!kIa8NoN3EB zY;a)p{L(<`I9z<$aEs^=yIj3mE`djB6^U&U)v={gB03}MfxmL<^E2A28-%%R8LX=o zguR@9&#=dDK{z$QqF#%jQgS{XmRl!>93^??^X@fJzFE2mB>;X6bCP|3(mqo5fG651 zL3kRyYW52J7+%KN1$jXrTa>tJrrx(%snu(PsfEJyfRb#RsqJeyfnCM~vZ-=yE27aSoyK<#A-$}VQ+fpn>`;7MJ zQ#mgs6$diR2A<$L8ST6!nV4LXqR_Z~=8AJck)a(@lB2Ld!+C+LhAQ_(WPz$q&Z2O` zF2fQBJHwn`?(@#G(Z0xv!csTjz1tfFz4=UVfe3}E;Lw~|My8=jd9Jo_Q8MeR6G==N zBZg@KB%$(h>P6EQG}3y0cQw!465wEmL>KV^Fx@&cg!6()(LB4_9&xnzGw)S98C#nJMzRaj#Qq{ zuUZ9aO~R7ekbAoYX|(OSU5^go%ld1ygi!Ma(C8 z1C3(;v^C09l9vGC>&pXmswakYrT^KYvH>b>`-oiZD?$?x(l@hdz0?|nR5Ax%a` z4W+Le!h#)@ZqzO}p>vBIdqX?oEdDcI>mCZcKdmgvO6jYlD}S1Lu0&k>-gj=zxy|Uf zZr~aTe;rQB+t79J)6Ez;n_MfLv*bIBWGwKf?X_M{iqZ_nW5q%M5g(@1Z0lrzE0RU0 zZ5~XsX&5Rb%G2G>rT8f`G~X@JoV+5KU(>e0gc&I5@xH{=3S4N>W!l z&En!RWwH3xomII~IF^EBtn@*e=i%=wgEQplq5;|Lm&0_06iI5iMjR{3Mii98GA23j zXTGc%=O_*5ECS??S)oy_)Hap@+vFx6-YbR|LB zaLWc|B13HfEp|Is;^9e~1l4l;=ri>%pJ7pByg3F*@%iac=CUU&34-|pMxM5JThw(e zD(pzXt3U5<&T&G#vO(_(f1RPUA#3CM!H%;Me@ud%(gaFJUmgprf~$#sB1p!p6IR#u zS9;e%nrf0dP(vCuD3I{`jey8&`3QF^<^GJV%%Pg>-&2Yc1Z@?P6#Z#T;F&QZCd zO1@7*=&t9S8jTZ@jsU%#!v0jQVv(n8s~Rr2*mW<#F({R89{-^S3~MG4ZD9{jE#hg+ z6fcs2nqL(KrcUEL0U|e z;hw*DNvfEX_#o@ccMnZUvd2A}rSSm66G}sK&Oymb?w=U*#fgOH3NvM_C|P4ebb#`eloVkQ5adJuQ@99+{p@qX^5(?L7Oa=q8;{f7L{Tr9_rXQdSIfd>J|UQq$RP25~u9qcsiY#FUw&Fubu z>{UnA!wfK?0sZn38&4Q7;R!=qP)4Fe&WEXydRd1^=t?Lu{@f1h-F5%wIC^X+_W?r4 z#v|Vu2Px$NpSnwVx_##*cGOGs3QpG|-%dO2FoLB)AlV*Gz?Le0qV-ZX} z2*kp%9R9RA4ElY{5vwTxwPH9R(pDqIi=vqgM}qO#ioAEtR~;Wq5&4Co27=4zs+vA$ zi#)it4JOmnIcRC^f9T?$I9lok=%EDYBKQwo|8$4_x4OTrVWVg20r@!+#BR3&ag$|* znFUq8<`W9Yny@2rW!y|lSTSmcjO2DtfeI)#%QpV!FBdys#L6}yirBfbl8R)%Q^yA< zj&qAuU;AXD7N;g!ai(+NqL=H!Fa6f-rk1ziqCzCt?M$T()#LO?bZTitDU(6mnhYj6 zZVlJQ7PFZhAM?+>#GRBXc;ck@Mz%#*1kl^{P8nT+_#HNWV~jLSohT+;p^s_xY!Us( z*sGE=NFVBQYO>{>>H_a8@BgDCZgZ!s+#W!%F+e!he+d60`ENV;zoVKRS8pH4geLZ_ zXW(vsoH-B75-m&;h}vdJS`XjdkKC4YLo~YL!%L2b-DLDzjqCLiFP^|rkiB8mEDhxx z1sRlTC2xL6R#z`O8|fHN4G+H+ICpy>`6vmO>(?Ep(dq>V1_ZJ@f}`~5+tbZ1i>Ve; zNqbIDh@(M$-0^II=|0z;NDP`S29zWdCoGC8y)GG_F=*1C7=T@+&Tnd*P8nuO!WS;{ zvn*@Zr!r~kYI&3&(Y!PU(&a-LcHn^1;Wi)KiMfU&_#HC@4Q>+k6GBKKDLiXI_yv=D|^D zYD=j!dDba!SJx%eqilJjIl~4XQuZ}(l4=j_rpl)^Xz@tBW`^g#;_sSjgzqv-s|>RS z+d`^T<`urNaKIeg&AVkOZkeb%b=8JZhL!I|z`_)FpxXo^)ovV$J5ea^gHvb{uxTjH zU5+fP*D3WosVwC)ldAPuN=T(oT{zzhN9K!$$wW*Mvl2K^8?(^PV1$(gaLaIVai1?I z$$@i{OI?L1aC9p8?fiI1_w!=MgJz`mO%J3Rr>(UB`vD$f83E%Y1?{jxN6Y>F_tSI{ zH~P0N`3(W^9SRAK&6un3Zgt%X)Hei;y}7gH`LDx#4u%B?NYN4sHY4D=NNVxQU8T8_ z7y8YVZIZ=)^=}=;-JIVPChLz(sp*Dg&^LrwS_&>%)3jS+X6fU9!>$wGIZG<07h+OS zW&T(olas{G^6X1j_|6#{myKY^o)lS5L1UT@cSpA*OsXx%pcF+-hTaeRqBP9!zhV7R z3)q2cNq&EJm^lWc{7N^%B2jHrei1}FEOg4nv%_z0TtYr8DyF$*N2GJ{;ou>Zo^!jg zcDLqUaKbnYK~ZlJJ)H9@&*iH7DH3`0+H8E`_{+GHqW&a$IEKI<7p_}M!kBXAPOu`m zcULvFrbo(sJ=*D~!mJ6#mz`;zyJkJkSEwEc3WM(BYA1+eCAN!G z!3^&&JJ_AK&1x2JP&Ej$H6hV@+1!bJ-=|(z(GA=+ym#=w^PE(~eEsZ!l@o`<#oa@I z1Xk47{pGHA>)L#`C%~ge$C{Y^Veffh+g@9jXJTPkgN?D+$H#hE1Mze{`hjBlM){e){R#V@A3+6U%NE_>KtMr6KtPy)84J+3 z`|mUbSa|`iPkSRPTLx=KGm9&A8%I<%H2zL6PHMYpBr19|$bn9lz9M>IS`ZGa^^zox zBKlgV5UE5t)C>xvZwo2%+3_zxkD+|tpY>>}u31isa{)ZcVuBKoNU&&FBP7*z2oqye=m7zz-!d&3@r=hV5TT^bwuin)7BVA+ z*K$JqbS=;K1U5#f-l9z5Ht8C?YEUE14fFQZY*BnQJroebv5t&W05=Tv7*5buo7vtt zuha_QLv0^r+^{izS~k=(OXf+vvW22|9ASIiNAu8)3#ea12< zqQl6gP0gsVyXC6pw<*R6Mb+q-z#nUjuSFI4LBnoQqXL!0v-Ep&yY4dVsP7RHG#TAm z))ZV$ z8lV+wgs0h8f$Zo?xEdu5F5HD6Net#h@2-@RKWM@XRV#GhQXbdhvxYpc_F;No`w~xTGVnVXEQoUyoFN4V5QdT$5-)aEo<7Dz zqX_2RKKCBJ+bOy=e%x97_UVDl?S2~%3J~be9je5PU~2VCP$J#-AxEU94m`x^xJ~H~ zp5b2%PH@$zK83HDk$1PG3~EkJrOE%UJz&jm{js)bvTeI<{c)SYfVfU>kJ=je>bEg| zwa*WU+M0QB%zyag?BMv5yt@+jXRQCX+C|*j6in>5oh$stx# zY-f105b9IxFE`r>D>601h?6(iKhJk<$~yp!uky9Z1(kX5f|gb;KUZy8LJm=0**jbO zu8-P;Ef&x(BKnFlD`*#w&L^m2Pf9ZbdW5~#Yu4SaaaD=P$`dZKYA$&?G|nz5hAI64 zeTrGWSXSrXSkD>!OqBC5zqeIE_Nf3%{BoMZJbefQCL1Bc5*|PnCKq4RsrM^LG)FyrTKR^5G>}r3Zb$e(^}ucn){52 zIN}Wo1tg;5gqB~k4-vDMneA1>sss8O0!NKu>%cmRivqs$uabfxXQvQ7dj>_%(#d z{~A}fW>Jq|gz{m@nJ?rdx_5qBrSLB?HKOl>Rqd$>S4>3SNO0*KF4TEgF)tzW4D$>2 zq$lmYr*$v!#y`2#A3t^C_O!##rf^Psdslf*`#Ik;>xFN(FG)-5m6>Xr`Dx0W-OJAH zslN86=}`5WquVB3GODgD^?mzD^+(lRxr5Q~Kd+zi#3Q))^s8&_a&=EGZhb9RUGsR^ z@_BX7Za$w^zp(i9wdrwnskc|J-~030ZR>lL+q0jq>$ki2`Q*LY-}ZmsoIV`?RmQSv z&G(A?FZ0jU{J#7BZ+g8&{liD=_s9PF+i(AWQK{hp-YIq&u{T)SR9lp*qQnoI1vgIo z@VKb-aF^K2*wt0$o4)s4+snVg*z``WQ005$OGIgb`BpSbO8>2B3Fz5e9rhF#ub)7u_uMz9Yh{ z*A3{7LG&ciO+oK!AxvRvf`$r8#|vFQdV3I|e{L&M7DH_v26(dqa}X$32{I%Cvqyh7 Ghz9^9vEbz(lDutrBBw!$*aR?wFR6whyu&s@gv5k|ilDnO;qc**pwN+D+ zwCuV7(vQn`^kfD;LQi2t^zuDBN;}#(Y>}FbdrtKghI1*9=f_FzFy&df5D5CX%(O>u z{PlX?Zm(u?O<|F9ZS73e0%Fh-uY%2d`U?||L(w=QiDmJ9yoDi%+SW|3FEi}GjQh0% z+`1^imqNK30ZD4lK+zOcF)Ano!@*DryyM`ZH3hRAd7UJ7N(!f=6#F!0hvRZC?~}f+ z#LvQhqS@~&^yDg8mKiYZ{+y{{dRNL~KlB>o2OaBNrf3=*OqK2H*ZYbP+=gLok>(Dp zd+A*#R9Q|T>dPYU6g9R`EP@ZtZ7qYyYv)fuvsFKBcyiCyRcOpQHPoY(yv!gxlS>Lb0jjqJ z0t5sL_|$bUwsK^k|8uR1pZX5UgyeV0Cpt=2V$-ZFQn;!kaw1*G*PA+dQEcNQUcA=b zB`>0_hS7(Ae7SFEvXoJPvqDpB6{u>Uz8H|V+^4opb=}yZy8)F9-RV!{rnDENZj~N! zPl6y|O#aAjqC&_=vxPdON!4&MD_AWgqDyTpj!+s@mVkT*>qM#Q>`gas3t=lJ)yx)N zQq^`~X_Z zP4>(GPEhC%SVeQdYd#A|5HcV^Mz)4>4z_lV42HH2#(!S&toR9;0Y)UzM=#L@X_c^B zBq&h{YT(oG@8W3wD{T*~Y|>T}+3Zu>`-RpTxil{L+dLz;c6^&0O)a2?!STTaA#s=f zM&YpP=pX9_7#pwIqSRbfNkRRWy)W}Oxcg9@Lkb z)&ZMeself2*tG(4!LHVj-8U;A9Cq;_BPv&MG!iX!cX$W*y;^W=5Ia5ZW1X_t;CYVIK z_#AEbRQ^eW@8`FVFDtk-PaM}^Sf{24I#lzn!XIz_H#q-Ym%H_K%rih;tiXVPkp8nS z`gV4Il|^a7W}OkK^OXin+bP@}QcxZ%K43|3R(KP;Ha@duVVwAT99SFEo{#r)C_2{< zhWjv{2ArqxMYNCKS?rJ+SsrU3OpJ?4gZN>LJ z`br|+>R}4fWV}}c0vsAcsteWQW8q~DZ5hod^c*&9WEZmCV4pVNLt6^)L`z;Qxo<8S zdjyYW*zZX6*VatOJI~I%u&1sNoIb4$(D*6m&{pqbkrVj-tybG9NqkeP+oU`pnV8C+ zR61T=$bd* zzY9G~e?0QW>k99&29F{KPybwrr{m>5KIwcCf2iQEEMNZZc z@$MtLq?tLEPk4M?pqPTj6uech*kt}zx5F2Q($3Rs6=_UjO}|&sgrU#RgfiBkoH!0?`iGHgsImZg3vMwf$5nbj5Kt-$SE0RN%X%|J(m-Wg5hy*p3rdUbM%1qm z5ZRp)GduJrK?g-N^3jx*6`QJFCxx_G@RvhaXFoGdb%R8GY zyoQQSIyo@@IhFB(o1X`py_tyiaHy0wJR_jP;N5V*$a1*mVOGBbUD^-&ls<=#dKB|~ zyPwVGzUYRQnc`*E~y9+Gn*QbbDj)t6_j|@#kG8X|3U0QRTxlExJ z1(t}+?uT>t_0-t7UELTPQv#D8tk6Be6Xl9EyiJZ}MbO%l$;@@yZUwfsKN}lnO?CSU z%d^CMh$vB4%5d-g;zuWn=qM!UPWmIhPgw1O1eynDaW?+smuo?--w(I+`Yv=?ZjhN& z<6>S;-&Qr6dTy~`CAQ>#3@s?c3{}n-~yCgXbkf3WvP~IjcIX6ZmBfYl-9o?N!KaifA#$;%n66HZG%5|tPtU$8s11O~! zu(K{H`;u|_7tX;gT}y%DbM0>d^1!!X!@_|?QQkpYN8TkYGWiz_p!YoOj6g>f%YsFp zT%xD;>)IB+HXUM@LE?Of!tqZ8z5&3H6+m$~wE|m<4%=JDJ1N^hv&1Ot2WGSS0+A%kWT*XOiMW788ykoel%qsZaN~jeF-l-h%;G}% zlEI4Jcy>ra55}5^X=8DO?I8*|Q8@8GGJf{SbwT`Enr=0$<=e45CX_$IC*4PCg*aou zKx6T}6}pH19+T%Q$+=Wr3^Mo4yRTr-#HIpfezlCXoCoiYX{q^a!fR7iZiD?CTu9kX zJ}8O5al?K5nHnxpQv`~>87Bv; zExHfI|FTVhu9%8w0dj=#3j4v_yFX2OzT&frgs{S9+vLpE%JY2MFS=D6t-{yr1 zq((U40$X95Z_=92-5{n*HrA&*f-1ob%=qLN@27K>0;-r{vr1Bokl3ol{ezJxHVr$hc2ZSG~A%*#sz}iYr|}=R1>q%%nF{ zpN+G4Rtv|68_U>`ZYM;;57V1yaV1jbX`wdQn*vN$NtRqi{gR3zIzr>1scUWURF_?=mL9t72K!m9ppo2`QkZAv)1z(K)-pX_0rICUbya#RV$ zziA|ePhcCwMCIrPCKDNx)85$Ui|p* zz956U(^>Xbb7%=WZ^FbNq?fm@5ugq+%<>UZaxS(;AaDx>QVWEr=$_CUNw9%6*DSY$ z+nl@9sPSQ|6Zp>DlW-mS4j9s$wwAYgR)NJXL!pz}>g~Z=tv0r>Z7Z2=-hK|dUY*Gk zLl6T^kd&B@{g^brB6CL2D|Y+}vel*ozJ0Sg`gO{CH4y);3deas#ck`f8uz_bs`WCk zh`CMz^SA!kAn#QVO4>^4>wT@!UiOntTJ=+!R*mSL>(cFatSdjfnzR(kBFmS_vqM_j zie=5YH!ZmEl-v`%AC3`lu97IXi`=y88s~S~dWS{w4|%(cv`D|sbAPR-Y%SL$b6gNL z^3E_IV&fo(`Mf(5EzX_d$=U;1B4=B!zfD}yjNgJh<3w0wns`YC<1$GNtR|mJh zK5QD8>}o)_H(Ayk{*_+gB%HCeC0#07U_#T1nmuhBTKfgL)hfEdbRcGFh0XG7!^bMR zp;p#`V;_bpgSuTGnkvP#cHQ8FqVqJ?-sM39{`pl`-N5bZHhwi8`^*;pRIR5;>&p6G zG3gqnsH0acv|xO54*BTqrSN})Av)DG${=3=z(7@u|0mJf#E60=ma!WMFLw)FU161laZL`yhtc>)<~@?zABV$e@wbe09z zq9KK!ZjVwq+w9xo&*`x=5-kzJY<|%2oI$MbcWfO?E&$2a5eudlAR4pOF7O zzqRqhL16|gd?o-3A6&q~=dbzg-^=#@oaO$#gijQd4P?anarpt$ADnv=SRfN#owSDYeD_@1AXV2@B%qow+CrZD;)U}Zf*29oC<=F_dp;t#0o`@;N z|ETBC08tm2jZf7N$;o!|=peqHs&2jMs?q-Q?9Z?a?vB;wj5oFdFzRGX=| z3wl$+5+TS*R-djIWEuQr%97LKZZ>hyLk8N(6B2}fpD(fmcaIBC%~F0s_1hV5|5YlA zKOu!RhT~eP%8}lNBdrU!ePTU>zF-G%{@i6z_to@7a}IcgZ5nGXMMMPfW9zb6sCDA^`$r1!a}* zWAmR+m1y1koAq7n>XdJ@DOanwKiCB~ur-9kxF2SYABO zM;C4y7um_{?>6rj8T`v5wja+ipU%V?jf3|N0Gx)3#=p>h1%?uoeq#W)}te>@1yic6nG`eqCag^{ARQC0D$^PI9jjaE? zGjGuFd|h0h@Nf<1|Fl!H9YB8U*uOoxcl&Z)F>0p!7*eu4;M2s1KVa&!nmyvFZsW47 z|3gMUH)ZOymj8l3>jQ&N%Hi9!-0nz7;FB)H`YS+`>$dOKIpV~~`OBs^=g)V3p();T z)h)p8hP5ZRm@mE$AE__7@6adgL&yB}#hL5GzD2_`)^~VFx78rSuAKAejMuBA`y01( zJdTOG2p0l6z-Xj2E>q>YX0|HU2k=MZ_Z$b&W;%4U`*fl zkK+LoU#R!H&3C7Ct+!gA)z0m&yj8B37a=Je7ug)LXP@3Wmp;7JIX26msDs_fk*#Yz z=Q79ZF}8b82cLBsJ!087-R+uU?9Ws$z3d*3Ok@-vPwPi69LKO+W!FQW9ih174+awM zIt&F^Jvb^b>3dN1sr%pI^(zo}OA(nA2>O)?3@Z5sMZ80)yh7)FoL#!_M$XNLC}4Dy zp2Gs>m3;DdNRo0WTSX2jVDRMtO?@={^0l^rZ%4H6gBD*twVx)%S0MRpWY(RHL9nTd z+ey#2-#fq3@)IQ2%(%{OXv8Wo_lLBMB&<{+EZW=;{Hopdu0}Idw=j51Sw23rcdW!H zEPaVVzG{12*1uJvvKUM=eG2^S)UIBdc|D(hv3sg?==Zd#KxzZv6ugAPHCjAY79e`d1q`(c<{0sw+rU$`N!2SYnn{_ z;W=b4bfO2SIYBQxT}p|_A`;F7zDtt|<xCEEPethiEiJl61@8 zq2guQdn$dmaT%Ue#ydyQmMS}$G75m@t*&!g-pjC4HNt5>UN_CVc&aZ43s=KynOL?Z zR@AKb5|9enLBB&OWWbPt^&N}Y6P+d$1kpCBD+tA|IZ+WonQo!=>O$QX`=JH7D+<7@ zby5++T5nZm6^KJAkkFt6*u}T_5oR7}^Tfm<6=ru<1n-d90;_Y5X$m08++ZLDC3J$1 z(h1#Q#0JE6f*0ogxoHNtiSf^yV7sKYz=HpHzPbsUj2?`^9d@)|VhiM-*ypVAfKWof zb5wtYY5>rJ0l5Da`ZpC=8O5aqk=y?uxRfUWw7~qOBDoXXDDQts{5Mpr$4xaxKnmcg z{}kqe1JI*@1n`R1ctA%8OZPt{(h)*YxWhvIrFtR3wF#;7&r|irHQ>YqZ97+c!f?AE>Q+lH#SV(o}4qPB2k-?2I} zVf8^9$xE-9{B}9C`Fii%rfoCiDfl+9Jn52Ww&HfH`7}JAQ?u(<^J|e$_W1B zcO*yL`phBzxb62~xNXgze{~E}nUy!?*Z$jQ2ijBnFKbuZJWKP|932cPXUB0EGZP1f z9I#qjOwum+MqPn<*xPtAM`0H6U4|ux`%KTDhu-qzFqcekx6Zy^u9vL|q=-dZj-j7378w^-7N)^B+r+8GeuBTNsAX&jq2U^jC7aImUD!j5dr-tl(etc=*!st%lrqD zMQ_^Rmc4Vvll5zh;sHJXTXz@CcOI#s;k`p&Np_5H3=SL^rhM+}YPj0n*0erfKV9v8 z@|A-q7+lRe3iPl$Ox|X(EPs692TraZLdkq%@sUfNB~PI#iyB8=RHt8P8M-Hholl?z zmNhV{ddZ|&HPt@U5+=!Vk8*!}eq-ldwbwJh{J8F-Q`t`jzuiD6YAPFsNaF;tQ z@E2*cU&4lXMl+w`*(poLt?&9(F7k4qSSmj2=?_S*7dN?KN!k&F>1{EnojiNL9S-_s zTP>*``;J`>67RQS(q-05QNwD?D5fs64R{8Js4HSqr1zt)6SUL4BVhs#`ELbWKVYR> z=~?@n@+3I4%qnAGsqCtO10CU!yv)b%i>Qhjq&s#cQN6vOnegQwypFKjmE!vjc9I`Dd-&Nsx`emPiHc!y9eM$WJk-pF|uIvbpA5`>+RHzQNQz}l|So&;caFF+~WfXaW%uel@CmJyQ3v# zGSk#B~eB)9j-?~LcecMvpadG zRhep?zbbsG#YX^goH={@725}Xtyxe!Gp10~LyYU?nq8Q0t8UnolSH0BKJgUHHH{xS z=@3_`9b~+nyl!-~2$5jAVZn(&5fDJ1&(qSH(5p<=f}$~~ji8FzCXKMn!Ne^WL%Z?j z;K*9cQbC@qBy#1gHq&U3KC~Kky4J#GyLASO_3M;b&3rf@_b^sA^RsRhqsL8FXMsep z)ay*yE_t`qj|~@M2}x_5G98v#<={EOLTvN}Z(I6K3IQVl_S!XsZgR%0CSj5Y?^)uS}(zFD-%XrjY zVCsTzREb=UAV-quwi2=#5AMbTw+@e7+{LGS>Y6b;QDQS{lT{M157;@I%^P~$l)-RO zUp<);24{4#L{2>)cJ=0d4$N#fud}URUdAt{D-R^W{P=wOcv-^5tdvB|WaR8wabvAj z)@Lh#kx?QoH{<49DX%?K8Irwz%(Rjwt@)K3BG2NnBQo+lTuiN~{j8~5+D`-+s4B;uHMAE4k;=ElAiAY3ZK_A@uzOS8;c`YoIv z0~4w^8?KQIx*=Cv`m3NNdw8hB^aqnXR;Eh!B{G~Hb{3+TEGB3*)82pKG8GT4Y( z)ubYKFh6TCc9QHKD`^hiDSXh2mRxV;sZO&Ws@NCD5IS#X>D`O6YE+5{;%dhB;>HaY z;@3E{C~FUR!T@834t@BkOACdeh3w+G0{ITj6qKm(1L2Xgv--?FVb!sHYhRj(j0;^+ zwr(45_UHQOk&pyU^!F-Gq58d2Sd~g&%jClI4TbeK@n**ky^dmzRS69TEsHUxc(M_^ z7Sazf4ha^S?^B$D%=?9~CRU~mX@$HcMGu+8tBz~no))dU5z?_3WA2ac71i-)a`A&| zYODrpvd+glRh1;I`$wl(>R2!_y+nqHqe%6T2hCQOPAe?U3}h*X#F2f~v_NFiG_Wsf z%h83;kR9E*Z)OUXCtpZWu*D=K6EfDx(8RZ=0|3WgW?}v6Wj)fS;XbntWeJ%4K40z>0)G_{NfQ zpVl^6b)n+rjn3mhLnDP=SXv&_wF)U;CNFFMP&}a2VsFg0Hfmv12HtsivmGHhaMKAh zH#MowJ!m*!N}59`tT^ioS91rE6`(H_-bn zFV`nwJrNC*iqDvmt1hSxjm$Y8g*9{I`&%TcOvpq!eP0a+118J5Dna#rVF8N?b6DHV#EhQmmoGZ|EI!{jzkcFjA@l8WS`M|e?%`~cL9j6~+7!P$+r9rRnc8)OiSnFr z8iM^b{V)geL{`C?xUsSdt}>RST$LT04dRkvZG90Z`K&76rj_0Cp?UElEJlEcNyl3V zKgM+CBB64gt-P-Xe|g&750Q@_z`9_V`Vi7ng?OA4fqrC)4Xay|=bcl7dSTI_gMV{H z{&qWWf`i(1@@R2S*qxe1R$zI&7J;W_EKzp+{&A&xxd<9;vOOK|AVVe6f%|iq?@Gk6 z65@o(gj@slX$>yEU3A*6_tbJ?3vPBUk7y>EqjHvvE&3 zJCGXOca-Gb<+f91s5M z=>;wFJ5nPoE+Fkm2i$&JYb3_6j$T=&|SYcM_}DR*KipKBYxtj1F)HP24OqH z`1J!&DIA+>PT-XV!%wV9e{6}7=W}>++7~+laQu%Eayd--G-wDpD%|K#y+Ae}pgmEBxe7cp$z| zSGhO)oy{ERjfchiyy!wkgGIBmXpTGsc&A)1>S+;|2x3Y(=6(EmtW`;XhkIAlTq)+( zN~m0og)d5129AGcwg$N~^8Ha|y7lv{>4GFM1KL%PhdILRK+&mamk|%?dReZHj%+FG zX)s3+@j}Jgvgl>8T&*+jf<<{?DTnEzRYf9SfewsYo*%`6q+=*Pz4C3lPCZ`qxsn`1 zO^OQkeLs#l@~QH9NP#O0UF@=AL^XZ>R;F?Toykk22h~n6NVXiq6p=@(Qden;RfrLf z`NC_>z)@JB%YI5O;bVP&ngBf;CGr=RAWSWQ6pPl!$#kuH0gQxT+abBjQDu z7rM!xn*>`kLboCXmBNusJT}R{Fy9X}?p_@4#EvLbM-)$QylxvM(8@v$rXo-BrirF3 z_g7t1%T3IZ;^YOqA747Djv2jDArqNNGzyg2A(`}+q9$F zylAlCO^=aC<=U*hq>1`0N%IR=Eh^t>Ms4M9*(Qa%F4)2|Qp)aC~deWPr55zWegT}@%h=rDK^9l(@h@euVGfu%ijCLh+Z3ZS1h8hGWhUQDr0)0+6 zKKVC}7N}B5w+dz6)88U8q5|BW{{2Ke{3jYB1;m8lx(R&(6p>~Cs(?rWx8{+H?6j_O zbL7~6@qm&3lSgJ>0uy+*{Z#Aqqq#YQOc?pf-^ z`IX~S8j$!I^F2prG+_4-)M9|E0q8O)wOTGb8Pb2V>4*OhHZJG?Pd3U?H-C<6isiV5 zW3!SP3k@*RZL_3P^WTp5=)hygtk-Sa;eMSB>GPrjPwG>EB-#L%G+jDs-Lzn7*mE)8{mK%7z95E_XzcSYZBVCtRlPM-N zd~P6I4?AbKdnqp#6}X8~Da#(_Q#F(oxZ&dUs*WbkrI7>c#PyL96$m0G#M7qxmpK@` zCTY>$XiVP8C>tAOxs)rF3J<7Y3UuIgs{dy;DM!JwFWmyqMt=oFX0-iZipLo4$6uYp zZp%QBog%x7hYZ2q#yjtpQVb zLr(|R>?5ZDr~Gz6jceYWK>2QvOZYKX@nPTga`Rm43#-52-33cViH{TYO~;<34PjU{ z@QEU%X8Mr~wlJOQg{=`PW!kL-`&umCC`-cXJ11Di33R!B6I*!gc5-Z z9U6rt#+XOP5RO}wFI*p z7fZ-m3f$MlELTD@_PRCUhEqFW=WFCC`S7)L_Yf|xd@>%TR=$E#Zz>!2F!WvC5P zbem_6{oGH&GNmggo0iCISSJkREb(bqJ<43vwJL9+p#U@{aGEYF#19%->rI&LWdeex z{|@5(-$6-JhjjNxH-lVZjwr`}s8TE8t*)dqQ74`TxuRIUcyyv1SBf_Mx$lBwgmkPW`RW<$o)@$-E7jircPa_mIyMJTLv?Fy>II1$i@=H%B)* zUtRcx<`l)@6QN*^1Qv-L;Kmm-d8!{&htG41rb?qZ-{;-XzNiVL#- zUI);zPtifl+9LeOzGU>SYHm1MYn3NFDz!-T9mYS^zJU(f35eAy**wTosB+Qo)8?WD zMjr4FjScRA7hQ|Y;u}B)y^n^F___}3m7~760H2tG{H#j z^|VHz?F%Mr^U+RIYuqK$;iBzB8PE^=LoN9iH41>+@ z``^@aWT+7c{}1Zx?m_6zupHejueNVpdeEm;<$WkN^Vzht{;t1?)B-x2NjuK?Q6os) zLRAqYYX|Mrh>dn_2IAQbOJ-^Z1-kb8Q2xxai@vmYF2MbR{K0t?K&}Y+7kLX4D{2J& z|ATy1Ph#geI%Rvq;UDDvdJ@kHs!uSgE%In{{Z4a`CyH%x3|+c9+g<)`yibiR?J!w* zpY12(-}CREmiJP-ior?>Uuo44!hc2C)+G*mujC3+uW_l&7x+qdWmTPCyEY%i(wdfU z%>!x3pEpU#;yJqxtgAM4A?ntr|75!_Z09YrBe5#sOWsro9vgI{i}i=T7ph(GBtjxP z10q9RnWW`EYibh426K7Yr0FNLAh-0{*H_FskYc_F%QhF80kbkKKf<9fn^RQ&roCks zzT~5eG9{t$4nv#{k#CN!n_BkxgD8CoIGz0GhM>=dWrZOa)ZJZ&YqTJ%^wQg~a0$10 zy3q!z^n7SB^vbl-6o<@wVM%#(d*?1|)jOYb`h4RHx(F-0$o#mcvHEFOeQ2?>UokXm zM_kV9+G#E*2=Ds^nF*3~0$b1Z&oY^G@-L4f^Q`&iAk8eww^8$~zskxB=xw>BExT;9 zE?BEvz>%dvXB%&}{F6N{1@g`Da?L@edJc}eo4LdN1!Q|XX|P4+jizkBI+Z6BOAPbQ zvPPMu`<+WIdhN4Hdz7D+PTe{x%8x8mU!V4`F5L}%z5liTA0c9iSG)(`hq z&yRsyHz?>p??jUt(Ztc!G{osc7HN)JJch8wAB=7*zi;d6J3PDjSp1ad0uk<0pGBJ2 zoaEAk0)>L{Trom=hw)fx9SU?svPFXeFHh&oA@cW_H|>WA_9K`v4FqoqCdJ?e%sO^J zLvewG{6c~C!CDC=5(ybfDL4hI?u|m?Kqd{LXc)V!*s~$CTT`0CFyw5N;Th~YVoa_< zI$tSwgAEuO^u7`}vX5y_)&uw=oYIVR*E45 z@|MW7iFD%M;-Uoqh{FoH61uh=9W&VB`dv%FG=Sge15611=K@&|xIi@f0Mm-QyazPq zcJF`}osZ!S!!pJYb@u9@G2V#ry=pQfr!=+u0N<)CUV*rVcwjK}x|X8qP+quZOhX#V ztaJd9cU}%i-Z>QHsJ~S!*ncO_I!Egt$*b+M>Q0?nNnrekLYM*A!!z972^@;4UQi1? zMT*=qH%cgvGF%i8Wok(9o%nGkK|&EbC5b`#b1!c{%qZIqrSHJCUj|$Ybo)$kWr|9g zVc>!u2LnRK`bVXBZEEMk;TJvcv24LG7`rXrJ`AEZ(Ca0MibnYJsWy|@6;0WVOcyl6 zr2u~pL)$6U8ZJ~_KHyvc{mT65;wtIg!E@b#aK%HB3U|EW-7N5ff|0V6SN6U(*5~VD zK|l6YXf(~beTl_Jwp|xS^K?t!LuW6{3hYhjCGs{&cS#g-=w;r@P{u3CbU5)QmhP)H z+X7b(^>^SHSeMwBCL8YCiYFo2E_-OE9t6goAw5<*PGk$gw4C1DTruj!0il;-r5G5? z1Y+)LE7inud(Zwi4YPnbkXu;t?qkn>S&7LRAUny)ng}t%qYy*Pi40H2>&7kOTgx87 zczGH&UOW}-soRtXKEGio&Zxqk(|~Nko}GU}4Zg|!M!842S}CG8(Xfqs zZrVPT$$Bo!N4sjh676lW+;lop-IDsLU`sAOSpzz0%WRjmU^6cj#4UFONM6u0G#sp+ z4@f~kYR*+_{A7*8MmA#)1~zJQ-y1DI)C#)Hk|N423(yA2?O8r@=<_aPPaNixmEMfh z869)aLq>8r3%_zA2tMX-!u!9eFqRZ-VF5`1ot#OV!GKM{%Ojz@Ma4pEoT>3p8|CXc zmDhiL6B$X`JXU41(M{F8r88MyJwAp|+$|wJG6iZSJ6aYcLAn*Li{Q9@@5PWkv%a{s z?0RSI=i?XsL)1M}<5HC|{Wgx{rFjb94akAtGx&blnH}*$Ff+fupdkE6MM&@+W(_|2 zl8ly<*6PKs^8Q26bJI`S&Zx_`x8B{vUiJT3s+k;*-wK#4RV|}$Yy9E@|Hz*mWSRC^ zF>}w&yZ4o~_q<7HwtOR%<;Gx_;}W<$MV-IkorIMcR4@w8m*iZd;bdtAV#CKEnI=2V zesahk?1xw43mV~IgM+axxWWe6A=t>q0sf*0J|!eTS&C=BUdnAm=JDEmoayqFw`-`p$I~uYh#IX5g73EZ$;M&EqU(00*7vtCu)T>zB66=}*L__fr zDo>!ZmJBO$mW0Xpz9T8^ow80 zFUg*uO9-SL2*HyD&YgoLO~yg7Yg8sM0(o5sX$Z+G`Tip8B8X9y{VXU8&L7EcvZ`3rz$5_9@7=YX zNL9lz4QN$_^*P~^(`Cp7xUMVPF+II2*ch-qi1KpTOdY~2-B}jgKJ@_j8Cit!saETo zDGDF}NRtMn#ISQquaDu%E94d);;hw?`so+?ozj(X>O$c4g7eDTNKrt}@IQV_xj3`UQ7g=ce`RFyqk79KbI@ z@Tl#48RX}JfbQ zypY|7o97*5G)K{-POrU|F?H|to_{XWoYlpi*p7uBWG3!6*OAJlF z?tlZ#AMLiSo91XGl&u}Wxk^QIlI}Aizaz7C4o=zWEcTltl-B<}&wXcxk@rg-d zq;z?9MHiQCUGZazMeLHvMXp=9=;hSks&)h=i#@JVi>Bn{v3(uW^QfcV<*p)R9N4y_ zeA3W}yw5jUojKW}y2}QwIyOfd_&l0nD|8uxdYRUzXfUOLBITa1@*q4)q)X=7O|q_j zMtYoqYMmzZ9U6$$&~XfdVx`#I1paEa&if#RFA^k`?KD9BgpvuQzj_Nn0U@iq;e0{w zlo!x8Z;7@8Uv2{j?u;$0VG~y%)Y^zncHb-7T8YO>g@&VDj$>vi1%X7x!szV>6C=Yf zWQIEVXHuq5Rj8s#HR9khkqN9Dl#xnU7F)&8?#a6PRrKe55JTZ>V$XLgmRp~!G{x<8yY--DD zBpqs9&&-e-W%^rmrBahjg?wf_{N38U5^n1#S?vom&BT56xRd}wV$$Kuya_~;dKsp* z8W0UCR+3uUbfp#A4YNxZ-MU<@W2F?KOIVU~Vp7!G^{7b>;;2=DM5PpQ*HL0d1`2)3 znXxfER;pT>%#whiarW7|V;n-qc|(2hu{+DPCY`DADO~XiO6rK-PL_XIA0Z1C@EiS% z9#}4VP~RvqJHTb%$)w(&SwK_S@A!~uCM{E zq?vGbnTF#wDAH-vC-ST<|3;=#%tUkB)eFCpAlHm;daRZv@Ee8ZjFP5d_`+(kdXyRG zC!jpyHC%^B#X%E?>5qDgwt5D}fI`|LCZD(%vDe0GVz6E?8N~Q)zV(y#b8l!SsrR z`X7uQ>gu2nVM$@N^(P|aeCQFn!E-ee z(>D3KS$w%=*TvgSGGB{EIMl0hTgq%_tR9^DH|9Fj79x`zIT8iG25TQLcgTxOYaObN zw37z~fyb$fAcqd;3f~`FWegF%pie5XfAq04!>0BV%;Gdn*r0_&m*ZfS%s2$OGLXmq zM2!9E^-UuH8VnVR97!s+xzyAXxP-*dMxZa_wLp*3r@~n%IKDdFycEc`OhPUXQ!X!< zJq!#TiW*6Yu$0iZ*AgiJ{6Q6^QfrZ135wSCVrs~?Nv2e8?vxH5eaCwXiuw+ensvLQ z!d8wb63dsk?y|w9G`1rTPKnY=n!Hp%P7t$n=cStiWm?%<2;3I~j+Y(OaLXb~F0Zge z0h_uPhZzZniaayR0U&}} z3CkVWlpp+7EQ)VV4tVP@Fjt5nR|qx>=LG^C#L^0Jr6iG2b#xg4-GM`?J1j64 zL=ap%Hvm1(c~@)kR3kX;60-TJY6%+syGu?<9*EZ&mte4tKrlu#>LWb$%Jg7H-C6M@ z2F1Trz#{&wBDnV!Po_d%rP{)|D&Sa_3tlU&B^&|$!+GWFHIdL8HQJYzAh_}LxrJrk zLn4Oqj93xlOC+e+L}{Bn8kBv4z77a0p_GihLlDs!is~MskgI~Dg)z?sFy^U4itIH{ z#gp4ovnT@cz!TMh^R1h!}V9v{eGPlav8uHRkTp99+No=ZO4-cnhHsw z6qTy<9K!;U>Z#z_h!3OtQid@2B}bj4kP-0TxXA$V(UNjOoDe8tgsYVkBhJhUY^6E? zNZ}tq=zoAT{{>|I2WY`}vdc$2@56KniYjum%sAq!6=v*T2wy7zeTzMV6)F{A-;Y>< zauqsF4CX2;HV6%hY9Smg@d2hO1nrbxMuWfbFCS=P{w#P6t_6&qT3AtN*luc_B%qf3 zc-k|88|ZODV`8JM3Vyahq=f?Fc`}8$&B~>`fH>rm7oxu%=pj-}C%!jfIkJS$iUTq+ zq*)^O8rJ23PhS~|_WePyI1a>%fRqSa2*#NhyeUiQ91s_?IS+8~If+dKzU_j^j7J|S z1_S?IfuCH*gu7%(C&Hpn&1=hzt8RKxd+U1u>k=&)<6JZ|M$6lRdXjZQ4|dunJn>ajENG`!$De+uZULO) z7s&BL8I2Ji4LbKpr4slO+s5KJf)M)j;rrp{-u>#`wpqn~_P7oA$^LX?)8@1CwR$OM z+xPZTci)y`d*l2e;(mY6y+Nn@^JwPqBIEP<^7G~6%(de^XJ%qk`{wojqNAn;@$xd~ z0dTZ`t81P2E1fPzM^9HJesjj=(fo%kVn&KqqtThH?Ok$&4c z+3-=s{bj`Fds$lwysjlfM9A%@Gen@o&7+04`Tj#Rd(DKi!_BVb3#toByScuREV^XIcA$TS3Vu z*QddRW5P&IP)0~g%AtpEYnSW#p`*h<#{Gr)y~jDn>Qa1y?6DX%0q1S4u5L*7T5ibt z(DH$AHT=!S$Nu#bPUuwmRt8?6_mw?pPh$wr$&XI=1a}a4Ws{ zIrr@IfA{;Jda~+Cty$w8W6V{n-Z@vz^?D}aapJ7J)qKI_#^b{0d3Su_UN3uSZLQp( zbwVheuN;0QE$=Kt7UUaSXr2FIXVkoOX52bY=!RkIv-vRJCFZ4_P`m|Js^% zx28S(t&=`uV}pBQy!ff&cK1f_^~uAo`R#rKzvdyC^OlkE>CLnH^}hG?SI@%*)0)jQ z@uK`s9~I?|cC=@!hZYxATq}bs(@v>{27^b%(#cX3mWd_4_p8cAhcPtk-_mb%TD8v6 z?8$hPu*X}?55q+FTTSSs=rnwyvhvJj@Plnq@oQ?U-$H5=)1X#KbSAqqegsaDXBV{FUg7*f;p_LFAbeMv zXHw8^!`;GpD{brS-RveB8@LK>kTtAN@2b2N>sk|E`n#h&5_=*Ptp^pWW8q;Yd&AXG1jWRPQ0V{f^{{H#H0Tn}EQLZxfae%#+ywQ87TpG-X~Y&1UqW=O++K=1U3 zCt~$WJItn>R==4uQ^Wtl2m#@z;0UPU{Jd&c+;I(!PKePDGzPI+xlb4*s@33S!?bJf z>Teyt(xDq4n=Y8z8t>88V&IYVnBIRkEHB0y1buCJv~Aa}a31C6jim#3A3w_j@sq8} zhfyV7(f}_*vZw)BKylXaloVR2@D}iWRq4X&7NOAzw-Mdn{Gr6n6hv8qo7{_X7BQw9 zOSEAp!{cp|3vwpSzxd>g4-nJ`~u;SnzjPQfiP_Zg7@)(`qfgIB!Sp%9u z1Dcut-K@*n>eD8JaQz3)8VCpM%m>bYHuw+CRU&oZa~eeJfM&>mW*^ev&FxCXpW*Ls zt|NX2>=Ev1kiArj$F>1^ddzvz^3gVq-hmFD(4r_$PEzS4Y{T8^)IQk_K8Sm3_~J0S zmqt#Oj&J1`@ma%$nQ!R4AH19g?d_$H^gMhH!xrar8TDLu;&6IC=W6zNKQNy;Hos>r zAKYR8ROmd4fd2OA@&t8e=YI6Mn%;rRlis@i`-rXrvZ2)=B%=ZkcDtF+apwdMFKljO zc~48`3xmPN_#Jjb>1$-DLD^d~UHjJEb>xqu;e+|-(Wl+z+ZWU7aZNki;F|!&=5vm; z2@j;?mpj8|k5|s-PUir9zVe09@AsQ`y~B~CvZCuW`F5?Rk}?)EJ+J%yfT zFD4VYn^(V{6OXJemTx5fSZR5b?QbkU8lJJ%um_A^S5ojMyjD^o^v@$*&#&-jUN>K8 zD)>SQA;Iu}ai5}IT%ZR@Z@Y1+;W}?klvF3dbk8=7AW?E<+Rp3*o0w*g= z%=3lNMN8b&nBe3W-14_`1m;bilE51=;xy48LAA!bY4%kPJnXz7vpAXWP( zQ9N3B9|Ws7_9Pb*UINo5XnU#5H_a>Et#ri_gd%-cUC`R=IDaGKw0*|Mdytj-^18#7 z?y4=@-LVtP^Hx0s=V-U=@$~W%Da@O?=Xs<4I=eGc^HRsB#fBqQLif_Ne8EnSLu-X# zeLu&N9P#a{Lw3+*v)R-AscAJsFFN10SI{aUrkaP$DjQEExqSCvoby0=xjbX?W&*t) z{Dth(v2L9#r(F9eej}$G^GQ|L_Vs0hq>W=R61pe@`n7@61j0e^$#-3Ln$w1{{1Q8N zTs!M>)^zg;D+5O;MMP$qFGe_aV;o-wq<$j_2>3VMLD>!?ZG#ZbL&-agMpP;?Lf*MZ z`0+WJG%a9a8*SVuu4HNZ4f4#k%GLH>%;MY>I*+_bwCA<%BxH2N*<(!Tciv1aI=i~l zcy7YGVD>SzB;9YHB0$w2N*;r&&KuOU&fR z|Fl0e-Jqidti@Y>s64XGQ=TlbP!@{|j^vKpu^Vngv~Q=}Yvy6q>M2lglZ0$tCnv6V zH|BD2vJ{^jI{y92M4MR$*qMXMr*J2}XZEVD+?I1m$v43&Uth`(unw$t$q|C@bdPpE zq5@MS*@n`9a8LWlig44-fO`IzfV?0@`}t}#t4d)0nkl&hhAq+y4|#^UmGX=Gn9Aga z;4-I!RXZ<6&&@Bx4tnEST@L6c$C~V3x5#v(A0uCk9c5=|txRIXlIXwmMPUC#KgwpGHdZ4gPJu*V$WZHG+*6dXo8JyGM zXb-uzrEbL0VCF8+WwyDsWdHREYsaWVu8=Kn!ic-x>{y#?zHXR)t{8G;gTL}k|Eg*& zE_9v#=m;5l`&tp#S6*8C939`e*^!0Q=FRq(&k=KnmD6wo--Lx?yb65KvW@*+{*J{^ z%eBHFu1i~@OpTzHYw=0A3;w92i=wAS^L@IQ68kvmeZzNL@M^)jGdGe-gzuUlKPsP8 zpzK_gm;`<_`Evl-ri;e7t-@_ews<#iT*EuYovVJm0;+|Iq0HY(S1dUWI7jQ8Z;taS$x%Q^at*q5@%#Jm5- zKvWw{z$J2bh!LHuKZoGJlCr~Zv-hBLrEBBrzdW zu=p1OvR&__TTsM6LqkNNfjT@)MLPqj-#)PJu{c$@=TF;FPbuLEL9^mSg{fCH7ex^0 zZZ%GthDy~4?U<@%c1&?9(YjBf{eu0GA(a~-r;VvKl~=L{1}e~j%$eZ|ML#J>aVwXw z6JdbH-kQ=#Pm$v3Nt&6UDev7&`R5;$_snZ44#K| z?A%&wB94nkz=Z2m99^lbn(#U8Ql_Op6Svs~D4ECY0!arM1CGiz;jU zDBr<>o8p+~7+N0HnV1L@y}VajI!#LB5nbW3=bjt;QOwolufn6~I+O3>i3NoS!e=Ay zEU9GGB^x3j0%p%I_CbNWvy>32XFGNpF6hTmGSvg)m&Rz;;CMbUx=$>|57F6R-DemV%vC*uY<_xlOhNO0 z85nr=9evuA2FVzUP;ThL!MXCX?0^7_G=t`~6DM%d5|erZelGv|^k!>i>c+#?QR{Mm2gwwZE@@Ty5zK-yNxlD@Lg0+XIGo_uBYi!%HUlG z;Fpju^+BDzAW1w^Uw~=)SGHpSn+N8#eb?=P#lol+3C+UgF*cdh6mdM;VK_YfT7gQ0Hhtt^XoS3KyRMWq{h>_Y+3mJa)BYBitZ zDyKWUjr-}klpg_x^ystjTKkp-{yE$#w%w3fZi1e(4raZ-J1A^JxIh#8>;AkaN&qog zrIWqr*19SefLl2E=DGoMq|;10X8*bakNyS3VwTMNYU*&;gOQ9{XHhGA+F5VAkGmke zn&sRdsR=gLf22MXEVgll^@_9TUYpT7qnwB5_wsM9hk>o8TCmN^w6LGsY)gaQTiH0u z{XSTC>9*i~`2S}o!xDOv>AY&k+Qg2A0P5qu^Qnn_8Ad+c!J23>6G0+}eNj5c>s*>A z<5_E%PK}0$y7rTO1HuEuIUJ`!y}V>KcU72rPdhNg$^gM?s@BahM_5}`QdKFSC)NQy zp>RGfTe{XUQplO6@}OU1x)3J*Xw{h5of+B8Q`^?voMBzaf-L?p&)O1?x83X2FaOr$ z@_6mq>MGfg?#>ppx$4`LcmwjQ#*`txaWaD&E;6+-a`EWAw4Bs!QDBWad!ZiDDv;1h zM4xiN=ZEwXxswYJlm-ytncI~?nM`G_lnR_Sjl0^;a9%%o24QiDAvqqCZZEm{3_0~C zZD#vtEw#^D$sP$NxSUzo6HL30hhHP(sl zfScO@#=9s;mkWpX`k}IXf=t$dD$zpYj&D6x7+%SW?}l z0~(F;8v{9Y4slFYG(Z{DAp%Ppm6K(8PRiv;J_j`>w3l5eZEVj@MhR`#C?dFyY?ZSf zm7`uJOqRn~mqS}i^9D6Wz^=g^02OLEY?Z4WmFvP|a6$gMUjPbA@X01K}7 zJiS$JNN>(#-~4#XOhVssIw$zc(ZyWa%^a|HO0mC3!@Nf$R#v=%c*~`ia=aM*yNkK9 zn|Tsw;Dk>@J1bDGp-z#TdHnKv?K+lliL;CO@+g*UAKevE4W{Y3VIf}4P_KshZEHQx z`gO83fZ|s9u(9f5G++A`?Acr>T^lQPJL?#*-~s>2I+ph|6N6HF{mAZ}nsqpl{g<}- zQ^W9sc=SxqK!ftcbT_dO1nY8f>vHc#4r5IS|Ru$0zk7c2An@rh0xmFH=OpJTf?1-af5X0PzE=#>tpW?!taQi3E+GbEeC z*-u{SEZrZf)L&EJ*MI*`?Dt|@!8d|NoEb=j{+@QG9C|u@=s@%3Jx*)rWv|yNlM|;5 zPoCOhe%C zju0jC2#?_0zensw;Q2z2QiGqyeQYTwt?PTMQh`8*9&i;d5Ox>YMo)gcN5-+tkz?F^ zI>DJSy`UqxU1u7UbIMM5ATL1uui%HD0`T|oR+ zd_#^wP*jp3MuK1{q{2uZ7br9Dy#2I`uEg=M^B2@zyBKzA6%Ka&am&ya|~ z{|b4sWDE%Dc={(K*L~nzwejB}(;yIu_=CIPrMof|M)C)uS24JmpA&7-^u895Mms%4XsDyxYOdtZY+>S-%IRI))3a!pfoWFwcXQ8FcQUq0l z>{dH(VhY``DtF|>Vj%qDulaKBOPH*&2;o@+6pPZMx=zuzp- zS1>4~rEF-MNsKjW<+GG;SVV}-+4jpbR1DXZmQY9z1~4}PP^ZZ~N!_#`9?*CiOaZ$u z#>fOf0l|)UAu7uDa-<2xhL)GP9q&arkqZHVnPqc^+hI`iuNwse5j5iOwg`d|uOoIt z5rTXc1k++jos=|Fj)d{_6{2GFS;$BJ30+4YDsOm znd{zP^1XJ%90@9Us@cL672|1<%^!-3DS*=)NtHQ((N80(8wyGFWhe{uzJfFz1_=lw z#fPvcgKL^*g501pWdv|E{Abt9tAhbG-w`b05?#6qg7JO@BMXGuzM6ZGnA$^s0lUJa zn`s$)K{M6Xa|&glMfj=8^>Bo~5mLGxh(2EwF_@bI zFvAdi`XgbvbS~6qiV=amvoSIBj!khyv^bhRI?VHb?l2i#qQ}8&+q?T~z`SqL>I)z% z;Lx&nZaF+B@}UNUtciz3#L0T{)QNhd-ZtxeAy)K!ZAt*Q?beM7h8V$)g@GGMjs5v~ zL?ib1J^u(^572%9Fcr^5uTQUcW;YW48#Vmz!T#RF$(3=9o}inA757?MJ1&;CI+l(m zmi9KWk)QxcsG^(AOKl%6{0r@5Vr*1ohHr6$VW%%)bCg4kL_cS-)Q<$ehUcdbm+$vwYTfTR>`zv{beFQvl;T6ycDLo(Ie$u+9@bJ8GL(=m4)fgCw$XG7Yalc2?o;6-{qQY>u)bycGjZIiHU>sbOQ5tRc9$qh}%0*K1Y z-jlzCEpBuyUI0G9RBD$sqFZ;VivXsxc=vs6Z)KA3l^Yn9URbh50zYZazFEmBq;|w` zCevyUXY~bE8pw{EB-TS!;%j*kYjwWFnRrB->L#0dW-|tMpi*HSNSgMZSoi!pO3Nbt zz!phL9F5Cz?&b6NiLlG-Ak){cTJQPCh;5#+ZEsfwyii~6Ay`XRv+~$}klHKY-xXuT zJ>|*vXRJEE#-MH80r2`x5;Kv*>6vJ0n8)c^2BsRnM)!C)O1ZoOTuVxAPfopjUU_&f zuXMHSY0&kOHwSa9yNh^l=16sGVr^mW~V5Y)*en%`T>vX$F#?# zbUKU*oKW}w&~psG_erb!pL(plFeQl_;7(3R)DQ1&46ky<))Vixw{|~qKK0hXQOc^A zIV(&!Z3^`Gk=zk9U%3nNs!37+_k02>Q7e}REk_DIAn^FTv*1DL9p~4&r;=aB4*vI@Hcl_-aFO8$!YT3C(VLRQ|ShVx8{Y>x$Z1r z43j#oE&JDc4&`{Mx*r)pC=^-z(zu^XY>woVoBTBs+F|W5cbSF^Up2S-F?1p&puaNI zq8A{J5hN`)zc>OZq(|A@Mz9Dm+xL+M8{GkcCI^~8pkR=u*mkIks1cy$sNFLK8zGJp zq}k!v8*l0gk5^?+( z7=j6I8kT}Vf@OzV_FOK3JjetfBIggr-y)9r1zA2s09gI+BEtKGY9-sX{u02L1w9Q* z-G*nhlFM|AIDQ&H`9aHx&I{LDiJSzdofvL<496CbV|?l2FCa_-1{e8h)RAQ3MClCR z^AR6{g)l`oU@=c5tgvJ7p7aG|j4AzPX}!uSJ%M&#rf>5&qP@d|Gh#gk(zF8#ie%rVurKYUA5d( zy7l(;b#$9A^$elbz*gMaG@0Rj*{XghBTQy+=0^4?U`(6$^gg+_``C6qB(n(4s1KV~ zP*=gOIk|m25a39)qS}{UI|6}dPPw1oRgm)7DOChouJh9xpK1+7oXDobaCG8 z{cSyb+*zppOB6`v9u>IPZhf5Nrhv^S^b`@BPmUb2KWr3(72UeGE$~UuNg9!|eD5gs>rSP1Qf`xe?=`{t=UGD z)0(&!a20UH2F9YOB%0kiHy#y1jzi}+@xKK1ac~mdZkGg8mEw296>wZkr=Z)oB;mbpHm7xA~em}sBtwX z$l*&-0(m}Sx!|g=7>>1uSn+dpNyqtq@Y#V^EoH3B9^AC^bquhG<{SibF{-^c*RX~Y z#=)$J=3>{sC6|bdLO7|KB|AC_G8889sfbC4vg-e zN#VIoM>AK)fCy&AK{OLD+bUAtlvAemRt2pN%v12?SY*tD_oHbRNrnt&O@pFEHSa?n z(GZ|+rCSJw!|cNfW>xo|kCbQED3hmz^exunIz%+bpz>iwRcfJKVBz~WS9#;X?6O+W zY6v|z@o;?G3VktfLN&W^5Mh8ABz3BV;P|iAzRFJD%aE{{J`~jfmEz}GHK^t)48bV2 zJ4_KSFm!ZQ7u>59_NSl)0_(v+`l};QRD`nX2|@sZhokA->CcU$nJY;!=#?bGbM;{bO6W+>k64AWjw68f zVZlSylPuWGu{lzhr+x*PCa9qDE$swDq5fNfW-bLyAC`=NLI|tg9(j3I{C9NozCc(# zxIQe}uH(U?RN93i6odgKdR&KK)-bKcf_1z9OBM^o{H^2r7iAS6iAn;>Hx{e!sYhu! zTW~X87T*p$E;*e2I3O8{bt2jrixU-h$A|mS_R3L}uLDnC7yR3KOTHjH)r;DH@9!z0 zD`)#bbGzy>s2m^X0IinWA{0*ebQ-hlBJA;E6j*MX8^a6#u$uxqq~V!X$V)6)Qy1oO({t~D?~)0-xVXUmh%Cu)`tpkCU7iKO%MMfi%MBj z?MG!qpG(Ps{*kG5o_?eERRGsi8WWGtQ)Hx2R21v~Cu$z_KT!$b14;4cs>qVyl>W9r zvkG8A^e40r3&vYRVxI_ZmqIs-+>qkjROI{9=2}CjAPm>PDOHm{ROGY>PdlTM{^7d= z{(-#K8ggw9t28ZE!hs!-8~hpwY3{qskIKp$!}YCfLMX8?1SR>9AGJ1dde=G?!q0Y? z=uibf888<-CT{2gpd6bc`d^fZK>kUYBWcpeLaRSThfPj6Jd#8fm6O*v`!U3DhKpG! zLQkKQP82^a1&zG!#d5Stmb^_m40u5iExDp!C&ZS?!qSsot0DZcq1c~! zsG!)t@}E>+z->WnMpvTX3gyPIk6FfBoeuL!P_5g<+PXdkW?qzn)&|I*hWq#4guodN zsETn!*^JyI!Ha-a8pzwigb5JMm-C+}BwK?2N)$Jso@&!vSJws2F*SRF9|Zzkc(G~QLje2uHIbP5x z8?I>DbunmT6j_ONb-g=u5*#s(#BBCe#vp&tJOCw5ml>K!LT;h%T~IVJj{CV2f_R&z z;ifkK-pL2(juUfF6nEk+8zog+3hFZc9v^?j;~iOujzn?rcnzgC5Pif%8zJ??Xd9tl ziBUE}DTy&QeQ;0`9BB{)TMjuPq0z_@pZgiPG5U__Kb)cyv~JP|&=>RZpS8af%4LXH z%3z8`P$k$}QWOnU>e(XOxkiTP+fact`joqb4IPwwoh+#K1d9w$l6GxC`7x2Z96D0e zg+XGs1yx5E|4B6KN3tdd$oS}94-y+e%BP@7Ad)m0B^74*o}WESk%gQ7+{|+PKZ{nYAm4#z=k+1y zI1ibJK|Q>{Ck3~lEI7<@!72Y$1!_Yfhw43ckk?#l)+QB0P1k<$TyXi^wLS9WLTMV) z`p}e}=;Z143UN1dE@f3mB2^pMTIL0?;&OZD1jGYNSv4-|r0T#iRha3S1wI_ZBT6xFgKw6X$H8o+pR;3#EFz!04u-+Lc$53x;uqFhX2ByUVMmy?8^IPX z|1wJa>b-RvaTrBBW#cJ&`&>gr1Ru;nu+MSv63DCXdA@chu?zbb(u>srt+PGe(q_8FqqFflkiOktT_cjfI-hVfK&`9^bvF$ zA*t4BTwoNAHkarmk5#f zKi>J#dMf`>5F;qoq(`&p%fQ$0N6<&iZ3NobQov;pi4ZT>7oHLc;+`}BefxzB&OhvjkQ$`eM#w_>MTpba&46PA@a#XN5c@p#LjC0!|4Vl16(o5||5KdHK>*kLH?Y4P z!w{%w(_zc3<)g#Bx+$Uxhq6bzf*ezG->3N?w&bn&A&CJu7a&{Vu=1S&MihzLf8d{5 zJbWJgBLA&q`cV)t=_Q`UF?k6P%qRHL4P}QK`7wm+{NaiBEgwnuqc=FsCqLv|L1Nng zdSe@*Kp!AS4(1gRe!n(G)RbsNEGj2-~kwB-3@TE9~32Yt<2Z z91Y%OLcrutOa_5tj$0eTIEnZBvd%?wCQ3cw(s1au5?9#Lq!s}N7#IcPm%=AAxGjcz zJNYbrUtaJ+pKrjuMcP$e3}zT2YMqa_3hPw^e7v1e&W^O36ut5dee(C)!wfnqWr3xz zDwq{DG&W^xLAaCQKknTVZ4xkdmQ0P8??kWS(!s#a?Iu_E*s6ennk7M@6PGi5lpIoU zWeS&lW&s~5wnA543^<;K*;9j{&oazuMjYcmmVW*iyuxWT5cZy3r7v_nZtgg_@&lH! zcTV32z!ZMK6#fPCU8e9!VHEe{eHv-|rifsmc~np6bzG zKet$%mrU_~D-NdL{Lf%tWC}S?rh7~SXDtF|#}wtz|E9D2b8QJXV(G%ewJaS&#y%*0 zU;b2jklB-=%k;crb`=6`lf~JTV2fpiIVwcPUOf8-yD&Lxi1R}VoY(A_JUINnfzrE8 zwj(8#!8pcW?NZjZ`cffYbO0j17dFGu0MKUmdrTXQ2~gAbV~*3awdoh8>y#RwF zLpV1@FLGby-Gjp8o9_WJBgUHZt!B^Pz|v(jx1U^1pnk*>mW@5VB$7tbg%ZA8SI`(@ zLuF%Y5)v~vnb}n83>T)2u@1Lud@j5{<*Vt-ulp@N8LhqFLI@;u?ob{SDQ`O-1TguY z?NXHV4=;Omw%2qF@8uqrFUlyw(Z?ft!nXc3T^LF+Jpo@7#bNF`?8+4nNr=uQDM*RN z1*wmcm5~Qz#$?DL>iw;i1!;ZM^)l7B$J(Eg(x=hgewxD5Y{08w%=GYj@vi3R%|PsD zB@YQyq{~jI0|i^nlO&BDAWbqa=cbMUPSPT)kzjj$uzPuVZJNn;U*!$qN5r>!GAPN3 z%10^4KSGiNLUJA@+9Av4Fi@2myR<@o<@B)w*%N}bHliZmsb+Rwx`1OgClugpPGkGV zNeOGJ+s=t^CC_OJYA+|VORzX{KLf$Pm4Eot2i9 zofbETL8B-`Ap!T5lTy%R98#?_)<)mS#gQaWAJqLH=D{Mr7J$7j2`lf+84vZ`baZ(q0}zUciqxk0#;0 zJh(9d&S*bPZg9vCEA~ikiP<-cc}ybhm=FNx_;)d)5$JFcIR%AkDdMc6GN|w@n`~Pw zpI~g73Z!5PL?$dBz(p9q=4J}YtpJHb9;Y_o`lU5)3d)}ql5jRg|;0Mt~S< zTL+^iA7_Dh>kNi@y@H~+RIMOQE^g7^PN8XvV=qrmomdp>W%ZgaewtYOjA`+?2#_v{ zAOO-uCO0S+guOiN5pk3O&$0EzoBFJ*G$?BF)zFwPb7&*tDsi8UPbUXXp)hNqaN=S| zO%>x~|K`NT>{jQ^NkMKGWlo+e`Uz+{W4afiH#nU+yuZpqPR1zL2BjLDZh=^UlTnb9 zlCnY_Kxs}j;4ex-LO6&jGC~fRn0rEbKcE2{R|@i11(|J%dm=WK;m)6cqePW+ODpa) zyFpH-B_|E+Z3w>#`b#Y`!9Q7`#m54i*%SJ=Gj_<3+2~dF*) zD#KaLB@kz?Lp(>t1L&;7=t%BnA-X|;Vbhk%RhUen(RaOwtS zG6aiUMZHI-kQO@D=hW=R<;bB7nQncJn&m}12j&F-^O!e8*;NAN4Bz(8sL=-2v7}&& znq7kSW7zb{Ga5Gi&KW_&nP1coY^UCYxLX%lkHjw{EW)IQp7WD`g5vYA=@zEl?k$-; z_7LSzag2PFBJS>7WR6W=d-f8)Os*Oa>@o=a%^w1;o3*=fM9@5c6Cm4z;6%k7wq;3o z2N9N)A}I_o9*Uk#oe?A`Bq)>+5s-28zuU1tJD95Thf$?#1JX~xudX3&oyxfwP7L#pHk!8^@2jS3T-b6!9uUCCs3UCx4_ zaEm5HFYzx!mSI2m!~+oi7*db`3g9EYnCj2$#1o!8wIpPx4(KP&c5!NWI~cnX1At4S z*TW2e8h7c{Y$(`6rq^P#F}@CCqGsM{Z$Dby$_Vp=Bb2JJ($(eWGP1I+!&NHaOzNyKkQ+V-rp}~%_ zn%l@8$+U1`=Dl+mLkoKnxR>hqj+t?SKQkn?^vhj@th~s;p=F~TafZ<-%ZXh?01V;# z0AUH^ma24Nkz5_*ux5N5nwcn>x&&dFFN@C0VX4XGrIR!@;Q$<>UKh5E>P|evaa3&8 zya7=nooGkXm>QZGB57n*gRQSsLmgFOM{y_(wL?>ptKP4A)F<8DL~ut!=4!i3nOtRc8SUP{#q)?)`d<`fo6U-Dmq~hr+*rtk5taZnV*{lCh{=JJVXcY*=|9YFs_(M5Yh2M1Ft<3H=H>Xp~*esQ35Y!vD=Z5cr~*h=kC z9+6b7OOsguZV~`g^8?88mOTbGTXutZC1g0kDCz7J_4;X|v%|h`P?kOo&M6BnUXK@s z-gg>Eh?1I$?Phwh(Begxg&`q0gn?3rm&+UTN6XvU4lko<~!?a(?Vj z%Eqpr%~3F5zUIZ8)sMyOpJi_C%LnpzLsZq}M9y@P!3CI3SBIXe7KqL?!#HW{S?ny+ z#i=OhmD;T!1ziGD


    fMU7%L)jGdhIZid-C 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/engagement_features/EngagementFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/engagement_features/EngagementFeatures.scala deleted file mode 100644 index e65c9db20..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/engagement_features/EngagementFeatures.scala +++ /dev/null @@ -1,246 +0,0 @@ -package com.twitter.timelines.prediction.features.engagement_features - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.logging.Logger -import com.twitter.ml.api.DataRecord -import com.twitter.ml.api.Feature -import com.twitter.ml.api.Feature.Continuous -import com.twitter.ml.api.Feature.SparseBinary -import com.twitter.timelines.data_processing.ml_util.transforms.OneToSomeTransform -import com.twitter.timelines.data_processing.ml_util.transforms.RichITransform -import com.twitter.timelines.data_processing.ml_util.transforms.SparseBinaryUnion -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.TypedAggregateGroup -import com.twitter.timelineservice.suggests.features.engagement_features.thriftscala.{ - EngagementFeatures => ThriftEngagementFeatures -} -import com.twitter.timelineservice.suggests.features.engagement_features.v1.thriftscala.{ - EngagementFeatures => ThriftEngagementFeaturesV1 -} -import scala.collection.JavaConverters._ - -object EngagementFeatures { - private[this] val logger = Logger.get(getClass.getSimpleName) - - sealed trait EngagementFeature - case object Count extends EngagementFeature - case object RealGraphWeightAverage extends EngagementFeature - case object RealGraphWeightMax extends EngagementFeature - case object RealGraphWeightMin extends EngagementFeature - case object RealGraphWeightMissing extends EngagementFeature - case object RealGraphWeightVariance extends EngagementFeature - case object UserIds extends EngagementFeature - - def fromThrift(thriftEngagementFeatures: ThriftEngagementFeatures): Option[EngagementFeatures] = { - thriftEngagementFeatures match { - case thriftEngagementFeaturesV1: ThriftEngagementFeatures.V1 => - Some( - EngagementFeatures( - favoritedBy = thriftEngagementFeaturesV1.v1.favoritedBy, - retweetedBy = thriftEngagementFeaturesV1.v1.retweetedBy, - repliedBy = thriftEngagementFeaturesV1.v1.repliedBy, - ) - ) - case _ => { - logger.error("Unexpected EngagementFeatures version found.") - None - } - } - } - - val empty: EngagementFeatures = EngagementFeatures() -} - -/** - * Contains user IDs who have engaged with a target entity, such as a Tweet, - * and any additional data needed for derived features. - */ -case class EngagementFeatures( - favoritedBy: Seq[Long] = Nil, - retweetedBy: Seq[Long] = Nil, - repliedBy: Seq[Long] = Nil, - realGraphWeightByUser: Map[Long, Double] = Map.empty) { - def isEmpty: Boolean = favoritedBy.isEmpty && retweetedBy.isEmpty && repliedBy.isEmpty - def nonEmpty: Boolean = !isEmpty - def toLogThrift: ThriftEngagementFeatures.V1 = - ThriftEngagementFeatures.V1( - ThriftEngagementFeaturesV1( - favoritedBy = favoritedBy, - retweetedBy = retweetedBy, - repliedBy = repliedBy - ) - ) -} - -/** - * Represents engagement features derived from the Real Graph weight. - * - * These features are from the perspective of the source user, who is viewing their - * timeline, to the destination users (or user), who created engagements. - * - * @param count number of engagements present - * @param max max score of the engaging users - * @param mean average score of the engaging users - * @param min minimum score of the engaging users - * @param missing for engagements present, how many Real Graph scores were missing - * @param variance variance of scores of the engaging users - */ -case class RealGraphDerivedEngagementFeatures( - count: Int, - max: Double, - mean: Double, - min: Double, - missing: Int, - variance: Double) - -object EngagementDataRecordFeatures { - import EngagementFeatures._ - - val FavoritedByUserIds = new SparseBinary( - "engagement_features.user_ids.favorited_by", - Set(UserId, PrivateLikes, PublicLikes).asJava) - val RetweetedByUserIds = new SparseBinary( - "engagement_features.user_ids.retweeted_by", - Set(UserId, PrivateRetweets, PublicRetweets).asJava) - val RepliedByUserIds = new SparseBinary( - "engagement_features.user_ids.replied_by", - Set(UserId, PrivateReplies, PublicReplies).asJava) - - val InNetworkFavoritesCount = new Continuous( - "engagement_features.in_network.favorites.count", - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava) - val InNetworkRetweetsCount = new Continuous( - "engagement_features.in_network.retweets.count", - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava) - val InNetworkRepliesCount = new Continuous( - "engagement_features.in_network.replies.count", - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava) - - // real graph derived features - val InNetworkFavoritesAvgRealGraphWeight = new Continuous( - "engagement_features.real_graph.favorites.avg_weight", - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava - ) - val InNetworkFavoritesMaxRealGraphWeight = new Continuous( - "engagement_features.real_graph.favorites.max_weight", - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava - ) - val InNetworkFavoritesMinRealGraphWeight = new Continuous( - "engagement_features.real_graph.favorites.min_weight", - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava - ) - val InNetworkFavoritesRealGraphWeightMissing = new Continuous( - "engagement_features.real_graph.favorites.missing" - ) - val InNetworkFavoritesRealGraphWeightVariance = new Continuous( - "engagement_features.real_graph.favorites.weight_variance" - ) - - val InNetworkRetweetsMaxRealGraphWeight = new Continuous( - "engagement_features.real_graph.retweets.max_weight", - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava - ) - val InNetworkRetweetsMinRealGraphWeight = new Continuous( - "engagement_features.real_graph.retweets.min_weight", - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava - ) - val InNetworkRetweetsAvgRealGraphWeight = new Continuous( - "engagement_features.real_graph.retweets.avg_weight", - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava - ) - val InNetworkRetweetsRealGraphWeightMissing = new Continuous( - "engagement_features.real_graph.retweets.missing" - ) - val InNetworkRetweetsRealGraphWeightVariance = new Continuous( - "engagement_features.real_graph.retweets.weight_variance" - ) - - val InNetworkRepliesMaxRealGraphWeight = new Continuous( - "engagement_features.real_graph.replies.max_weight", - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava - ) - val InNetworkRepliesMinRealGraphWeight = new Continuous( - "engagement_features.real_graph.replies.min_weight", - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava - ) - val InNetworkRepliesAvgRealGraphWeight = new Continuous( - "engagement_features.real_graph.replies.avg_weight", - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava - ) - val InNetworkRepliesRealGraphWeightMissing = new Continuous( - "engagement_features.real_graph.replies.missing" - ) - val InNetworkRepliesRealGraphWeightVariance = new Continuous( - "engagement_features.real_graph.replies.weight_variance" - ) - - sealed trait FeatureGroup { - def continuousFeatures: Map[EngagementFeature, Continuous] - def sparseBinaryFeatures: Map[EngagementFeature, SparseBinary] - def allFeatures: Seq[Feature[_]] = - (continuousFeatures.values ++ sparseBinaryFeatures.values).toSeq - } - - case object Favorites extends FeatureGroup { - override val continuousFeatures: Map[EngagementFeature, Continuous] = - Map( - Count -> InNetworkFavoritesCount, - RealGraphWeightAverage -> InNetworkFavoritesAvgRealGraphWeight, - RealGraphWeightMax -> InNetworkFavoritesMaxRealGraphWeight, - RealGraphWeightMin -> InNetworkFavoritesMinRealGraphWeight, - RealGraphWeightMissing -> InNetworkFavoritesRealGraphWeightMissing, - RealGraphWeightVariance -> InNetworkFavoritesRealGraphWeightVariance - ) - - override val sparseBinaryFeatures: Map[EngagementFeature, SparseBinary] = - Map(UserIds -> FavoritedByUserIds) - } - - case object Retweets extends FeatureGroup { - override val continuousFeatures: Map[EngagementFeature, Continuous] = - Map( - Count -> InNetworkRetweetsCount, - RealGraphWeightAverage -> InNetworkRetweetsAvgRealGraphWeight, - RealGraphWeightMax -> InNetworkRetweetsMaxRealGraphWeight, - RealGraphWeightMin -> InNetworkRetweetsMinRealGraphWeight, - RealGraphWeightMissing -> InNetworkRetweetsRealGraphWeightMissing, - RealGraphWeightVariance -> InNetworkRetweetsRealGraphWeightVariance - ) - - override val sparseBinaryFeatures: Map[EngagementFeature, SparseBinary] = - Map(UserIds -> RetweetedByUserIds) - } - - case object Replies extends FeatureGroup { - override val continuousFeatures: Map[EngagementFeature, Continuous] = - Map( - Count -> InNetworkRepliesCount, - RealGraphWeightAverage -> InNetworkRepliesAvgRealGraphWeight, - RealGraphWeightMax -> InNetworkRepliesMaxRealGraphWeight, - RealGraphWeightMin -> InNetworkRepliesMinRealGraphWeight, - RealGraphWeightMissing -> InNetworkRepliesRealGraphWeightMissing, - RealGraphWeightVariance -> InNetworkRepliesRealGraphWeightVariance - ) - - override val sparseBinaryFeatures: Map[EngagementFeature, SparseBinary] = - Map(UserIds -> RepliedByUserIds) - } - - val PublicEngagerSets = Set(FavoritedByUserIds, RetweetedByUserIds, RepliedByUserIds) - val PublicEngagementUserIds = new SparseBinary( - "engagement_features.user_ids.public", - Set(UserId, EngagementsPublic).asJava - ) - val ENGAGER_ID = TypedAggregateGroup.sparseFeature(PublicEngagementUserIds) - - val UnifyPublicEngagersTransform = SparseBinaryUnion( - featuresToUnify = PublicEngagerSets, - outputFeature = PublicEngagementUserIds - ) - - object RichUnifyPublicEngagersTransform extends OneToSomeTransform { - override def apply(dataRecord: DataRecord): Option[DataRecord] = - RichITransform(EngagementDataRecordFeatures.UnifyPublicEngagersTransform)(dataRecord) - override def featuresToTransform: Set[Feature[_]] = - EngagementDataRecordFeatures.UnifyPublicEngagersTransform.featuresToUnify.toSet - } -} diff --git a/src/scala/com/twitter/timelines/prediction/features/escherbird/BUILD b/src/scala/com/twitter/timelines/prediction/features/escherbird/BUILD deleted file mode 100644 index c28786b77..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/escherbird/BUILD +++ /dev/null @@ -1,19 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/tweetypie:tweet-scala", - ], -) - -scala_library( - name = "escherbird-features", - sources = ["EscherbirdFeatures.scala"], - tags = ["bazel-only"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/escherbird/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/escherbird/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..1e0d74f5fcf6a61f677f2051f4f971583299cbb0 GIT binary patch literal 36847 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

    9*zxQE>-J#wO$ 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 "tweetDetails" - // case (Some("iphone"), Some("tweet"), _, _, _) => "tweetDetails" - // case (Some("android"), Some("tweet"), _, _, _) => "tweetDetails" - val FollowSourceFriendlyName = new Feature.Text("follow_source.friendly_name", Set(Follow).asJava) - - // Up to two sources and actions that preceded the follow (for example, a profile visit - // through a mention click, which itself was on a tweet detail page reached through a tweet - // click in the Home tab). See go/followsource for more details and examples. - // The "source" here is computed using FollowSourceUtil.getSource - val PreFollowAction1 = new Feature.Text("follow_source.pre_follow_action_1", Set(Follow).asJava) - val PreFollowAction2 = new Feature.Text("follow_source.pre_follow_action_2", Set(Follow).asJava) - val PreFollowSource1 = new Feature.Text("follow_source.pre_follow_source_1", Set(Follow).asJava) - val PreFollowSource2 = new Feature.Text("follow_source.pre_follow_source_2", Set(Follow).asJava) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/itl/BUILD b/src/scala/com/twitter/timelines/prediction/features/itl/BUILD deleted file mode 100644 index 6fc497bf3..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/itl/BUILD +++ /dev/null @@ -1,9 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/itl/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/itl/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e4b994100d99aa00c38c23684be514ad3f0b617 GIT binary patch literal 36780 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 U%?ivxpj;)$kO<5krrjVO022kYng9R* literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/itl/ITLFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/itl/ITLFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..693437c804e7865e3760f423c82d071b2a8bd56a GIT binary patch literal 41232 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%0Ar-4moLY3q4zK!1hp#De{I-a;c^ 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 U%?ivxpj;)$kO<5krrjVO022kYng9R* literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/list_features/ListFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/list_features/ListFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..20b5c248537c07b107229177c0b5f77b7947e746 GIT binary patch literal 37050 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/list_features/ListFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/list_features/ListFeatures.scala deleted file mode 100644 index ffb00d1f6..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/list_features/ListFeatures.scala +++ /dev/null @@ -1,24 +0,0 @@ -package com.twitter.timelines.prediction.features.list_features - -import com.twitter.ml.api.Feature.{Binary, Discrete} -import com.twitter.ml.api.FeatureContext -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import scala.collection.JavaConverters._ - -object ListFeatures { - - // list.id is used for list tweet injections in home. timelines.meta.list_id is used for list tweets in list timeline. - val LIST_ID = new Discrete("list.id") - - val VIEWER_IS_OWNER = - new Binary("list.viewer.is_owner", Set(ListsNonpublicList, ListsPublicList).asJava) - val VIEWER_IS_SUBSCRIBER = new Binary("list.viewer.is_subscriber") - val IS_PINNED_LIST = new Binary("list.is_pinned") - - val featureContext = new FeatureContext( - LIST_ID, - VIEWER_IS_OWNER, - VIEWER_IS_SUBSCRIBER, - IS_PINNED_LIST - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/p_home_latest/BUILD b/src/scala/com/twitter/timelines/prediction/features/p_home_latest/BUILD deleted file mode 100644 index 6fc497bf3..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/p_home_latest/BUILD +++ /dev/null @@ -1,9 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/p_home_latest/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/p_home_latest/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e4b994100d99aa00c38c23684be514ad3f0b617 GIT binary patch literal 36780 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 U%?ivxpj;)$kO<5krrjVO022kYng9R* literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/p_home_latest/HomeLatestUserFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/p_home_latest/HomeLatestUserFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..40c9baddac597c447d8abf0d52bc051e054a7329 GIT binary patch literal 37287 zcmagEWmsIvwm*!!dvJGmcL*f7I|L2dNN{L8xVyW%ySsE4hA*`0|tf(YSonh*nKgx`(mi( zZg1wK&+KMv)0il)xGIYF_3Q;ZiA9*yQvwycY{#C~o-r0*vO4{SS9^)&L=NKNZh}8l zeMTu5hB-DP_0F4kwN9wZtBG1yLh?jkKSML09J1Iee?5=+)SPEeDwa%kQD&EDZV;xX zCBy68G&eZwZcRVGAx6-dc#e*LqSgag6isEc1_sGc5S)t87<5Q={tQoU2ZgJD|Q zy@e=lLx=#h?>}sNm|e#;IgViJN+YgSbv7`pf_|I;tOKcQW)C5=G~et5a*kIu7(RFC zXh*4eTOI|-;CtLjpky5P_|wtUlj$eGq_KBIS9%5B_21pm6-HAEKP-h9+|A9(+fJza zj-Y3DjNYlT`5TkTevc^%EWNyuUzs+W!Q-f_IPP zS9K@z+*!2eyy~B4BFC6Sr~8sfRDj+c`{~K^5wW=ZouqK@^J4M(p2*l8dEOJ2yaAZf zKdR_X{ZaHDRJ{!dFfc^Wr=g>njS~y=?`vh;A-$~(N=aa8Jo+`_7g|kc zZ>CuQ3_x10i7TwQvh|0JYuLR=(-#>dU(ur&dvw)Q1yeR$-U1X^2h3{;*@Nk*vY6Hk zoVLeyrO&$M7tDtN5{jw@Zj{$BlN}fXycP|D#WO9t@AsJ~DJC^Nrp%o;0+fC1r-^^D z)+V3nG)6CZ!;Q}9a-aP(K_OoeRV_ic`3xvQ=%56d0!)+~0rpNTCICmX-#2+?+_*wN zE1J}um(-lRM(7n9oRlm*_)*vg87#l0)>}?4d7JSp?#a#F0$ZIN1{dN@f#EBA;dP$I zW=NBuxFC|?*fT%VFhp(a*HvSjwWlm8dcMlUz`nDd$JtA23x1Qao^WM+B!rqQNZE8Y zeYu4Yeu{xQF3!2HQ)HPfDn+@6;;QKK%U?A_<7nF`kV*Hj=zjY75r@W8#MPshHWv|t zWuTYjf`=vze3F|ofSO$@hYxVvwt;fNuhLQ6Io!}?!(VMeUj0(j_Gog+<^v?sK@R-& ze$Yr|Kf{c+28NyR#N`1R2^E|}R5?|}wMBz{E9}I{(P4Ai1ya8psW})4CFx!6%t=Xw zsDCcpny$+RV4$#ecy4ZIjme41SLBOn3r7v+OVclR(y1< zV^CdepuoV;{$7_)_V$02MQz+}l@+byi2+LgOPD3Bm@;0R|AN?z#5#UWTt@TU82N`- zs8+Tep!Y)vHs4p4n^1vzfv1MCr$sSy*an5q>e%BCc_T^=>j;h2VZ-~YlLzEZP-W1i z*cyZA`VNNEW0mtTOz>Y)HI=HyJjv^gCoYI#?VS`EroXJ9h;B4^7PTwbdwqL06P5bq zQhPseo~YEgw2`9Bsu)%d`BMG4+`VL4i0l3C&5?FeA~K3J#HSYysB!mlOWNfSXf#E{QivWCGumIyBHa%l{J=FS*b)VPyOFjp&pf4F z1;Y(%IIbsEtt-_Gxr{uC>DCe(&f(*Ne377y82wI>X!QxudySs0<+tV#({fv1DiDM6 z@fHQ@Q9yj@8Apus71O773~=>}hZiZn@)A-DJnZtv(|%?RW`d|C;c^=~ zrT5f~uvG1MP5Fl%<_a>Qsv#Q6B%&u{5&{Mjx>L=A1Bpc)eFfb}>})Q4bQh}aAYd!_ z9)Jcq!CDAU>Aj224$0kT{1-Il3tP5>tp{fz#3NT2USLZ-JaO^~yv@sK#5l2Ei_K%iIU^4?F>OnWf z7U7>iSXY3fDGTUV>ud{JoPOUKd)oR=JKR{_XVu@%#ku2`sAZQE;D4FIeflYGR}<4Y%kBCreWS!@B2}(_mBHr)yWNymyIV@CGcJjKvYO zG<_z5CCS}UEU1d(GL{oUga``9dje%++4$WVlh#?JvXZURIez6Ug48$P)s9=tSHt8i z0~4{?$b&GtnnFTswx1%DJednDNcga6YzI})%CJ(bjfMNm63W8|t{S9L7}MTIIU#rt zArhgYho(59J&H?fNoc~Y{<=V9H~!VpDiP?58e^8(T8DA``K^qLyTITPZ~;3(zo_{tTh$N>=bf0Wi_F6 zGkp;wyML$O8m-Y>v;fJGwu6U3OWvr^6EqNyh6cVnB57I*K5t3hA#fEnJ1m;Eh%9!s zf)sr7T~f4WHIkz}rVw>KgspWDT*|liyHgQYVv;#J^1I@(Fsd6oHa?37tYgVEHdlJ` zBXN3_!btJVvc%NOY=5I}BYBu~soI!F;v?Dy`-zHiq~e=Sx)yUm^iY0LTsd@Et``fT zj_8%I{e5BEa_EG?Rl!_M*J|vBn_KUiU|P2zhK60)8rP8Xl%Rs~$Z3%*_lq}sDQ$=p zc)^Mm8gCp?Lr0NG#k0vY+AK@F)YbNaN4gE+XvJ6LbGIKDERCsH$0t=s5Nf~M(LxOA$6ML2h8Xjx z6hd<5c>qY4k#Hh$<4|!lhDu4e(YdUtd%pH>3&K$%%ekuhT^RdD^UZH;Zkmt$qS)${ z(8@g~$8uz@Lf<`XJ9{d^!j+4ZB!?fNd|~*clsWSQWzQkVUU*b579}PR-?CQ!+~dOx z*PHzkKVve=@mWY@Z{Wo%#?dODjJLuN9*?BDZMelA^ID^D$W+=Q2ZGn87 z@+P!LzxV9D-o-ZWW={3(RDK}qskt1x$A?E7gcy)Px#&<{75LnV#T37JMh6&>5cg}; zJ9D|DuPa=QKcNK6^hl_Px4OuVjGVkN(7W8RN!R3sh&GkJ@0z}gP~=;Pp^S3bs_YOUrwvO`DvDkqRZ2Nnyag`g#+$tH)j5 zO=OsaBLQg%lUb%JWXBBizJ``aNVrs^>?h!d1M4HqclS;;K7M|Oi3z#}AEBV8O!>o4 zCa}zftU#5A6nc|hHI{ZT_3+QjsHNTHnJT}OMXxSs)z1)fHQU7UX6@{vLX>(xPc@~+ zqj>r^P+djX4gK`BgrJQsS5QzIl3tkrUNCh ze!F+v-q|#^vy-=~3mXD>3=JRrc_ScDv1Wsm%rFEkP?L{)>Sff$tSd?3`D=Q)JC_8- z8 z#bi~>WoL!;mdJXVQ}32Sy@r1uI#lh_ypcWy7nRY@*}=D)ds9N67gz%X^M-jsiK0Ef zXL-Fy3_~c5y9~&Fj(a1^v0d{86EI2FZi!?G_QIMB)osYjVvcYzUaGn@)j;c@cazq< zR@XBL10D+SUp!$UM0SNEiV1i4h_tMg$2H#{3-z6+VEB>J*y1>?lxXZ5t$pNOxt^(p z;(G}A&hpP(N0#FVgtLHw8K^^pq5dn^PG8(@%$$C&C7=hC_#Npw@9yrre8cA-wlRTV z!&7!(aV~_PJUg>$&p6~cW`BMAhWk1C#L$O|Oq4`jMP1`VSzMh!UlxuM-JWJ;Br5&obe*Ta8@a1h_e|rdc=GhB9RPg6^AdR2KXubN%}QE*v3og97g-zz zygo#~Jv=R*MHP!QAMfhlKdfK0C(pM(9nAi`X%7zGJ#v4k6MVIOYugB70j`i3Bo&`e z_a6i&?`@B-9ygc2j2~Y%xUbpp6pN5l^!9Wre&q{^sC&D%tk>~;nqM9Fa19fAv)2Oj zqu;gfUhUtwy*nu%`D}O>T)fy1Y!oK$w*W3@4SQiF=<^i<{RsVqZ0U6e9Inbmt`y?v;={)h~(k+dMXZ$)G=*Z;p!skJ86<@wf z=j`6)zOp7FDIV<;#PZs;*45rzF`hWc=40Ew=G~>Id)D=GBk^dil1$w1u({5Hx(Q5? zBJq;RIw5--sD9`+?yVl5r%tMW{-P5ML{Fo_|I!ZMdA@<)o-6`%4_9mV5;(yms}7C1 zu0e$^3_iu+pAN1^4X&;dd8sk<))w*R4PxnNk2VX!^?7+c=r{L)d%0eJ`I4shTmxM0 z*c241bUix_PUbny;!!+)^ENmG3RPv>Exut6bR|W!taP6!9IQqIcJ66(Y)TT?z`|DAo7)748FC85K`Y7%eot|AD_1u^gm9Fi?94^`BJ(=50|VX4AGv?$IC+ zD}kDN8AOz80HAOCj4uOL@80z9CuEjjh3ynpoy{Qd>5JMZPc~mV1Q|t0lB%a&XV!FL zRM`81n}_3^V49;1rZRMx&p%J}rK_QlqmPNVT{R zc{^Sg0BK*1zvo zMx1d)s~&*3{B7@^%IBP9Q8B$aIot~BTZlD7SWTG}uPAyfxFqqX0`{(+m-e0u3WD&p zH!U+Szo+by2!LiZOQvNA|a<4JgF^siP z(ZQCU53X!;k=^`Kil3qr#`yZQZrLeNbv97299F}|u_?QxWxErPR=^GU0Zt_yfeNbk zK+=KiC_X=su~Az^JZ9w!9T}X(23C(D+*Oe;R-n78D8fny9Vw#iMnz`644euD1BSnS zT(d7}#t(gg=vcIZtd8=aEh+%GHt(peD4N104q9M*2lNP&_$5w^e@q8-LC){a&!A46 ze|17_Qv$%n{u*D^h)=}~#o~@Q(kHtC@h|KX&NxsgDQFzsAE7!Rv>*`fKSKYcf-0ps zvm$f*FM=~=3Q!BeA1abMpiOiChs6It#dus+;rJ(mM*Urw3js)v3L3~OR>Kb_QbeZz zlE_2~N8^qN_lN4ac-Ka>j^CsH-BjQt(JJ{n5Pb`^ZfZ{pK4w+(GNFfiOVzj$c(Y zTB(gUtzh5PgCpaS!@HI9O@W13Tb_273EwZNdAq;3s(zkA8N~@XE^Baugc_z-$Js75 zTuAqSc^x<}Qal)E-}pit+95lZuJU0#ed{@{j0c)dV&P0)mY;;Ze%9SuEb-&Xf=`Ad zh9+gv+_Gt%`;MvM!tr9Z_ya0v{)ChF@fvv?-F=*WMYHNj9oTSiPQSN(YF7QhEb`pd ziSR){Zg6O4&*vjI&U+R|9vll{_f;)I{VrQZpx~RU129iLkcP$8vOV7jzuo+K2G9EI zD{;WY>K>fJdk&yd$_#ZfLuup~=DarZT=U=!CE{#6BeWlBOfN-spZ?T;$IWO}SO3&i#p4nFHJWp#eWBqkQAnWYU|2O^%N^(yx40 z&vVch1Ef=kIgh@=@;$mK4Si%BMw!}_hTF<@@ZI8JUIggLbvv|g^H6v{7f~*9o=KTh z;YPA`eqKXnag01Cw?KQ@?>xjh+S!*N;Zc5{&-WEkzJ-~y_e-uUkKX5sXhb^uD)0a& zWHc|!v717=A{P1f?T?t=Uhr&0pZIi&3dSBhg0(Rx+ewQt(TBai8lU!epQ+Ay7yroG zJryk6{J1^{C@tI85V-&8kd8G=(!6;_{`Q(S*FNp~cs+didO0-c(f;D#4!nC!d|Nnq zoc;NHWY7Ak_H{=iOXm$Fu&x~$q7YD zew=zd`!*RxCW4@?L+vz6rS)R~;9J%F(=%pwx0kZ-1((jVy5vIx=>sz03A+Y|;U*5I z=>xJ2*}J8qG(Up!q>pK{%v{BhrV8z@`+?%Wu8y)ggr+pvYMcdC-qjGJfH_ScKmUyB zg}%_uFPa`zDeNXE^m5HA$OCAbG-fAK=Z%fu2k}i2hfFxeR_F(sZ6>Xn?$5)-TdY~} zqR{yJGv^63x5W3TQ#E7g4Cte1;I(!XUV9J?G_wmFpVxQy%hHpZx@8vSbm(>^f|e?_xV z^Dv|stt2)4c+M_bty3lP25Rr)_ZoR`siD!bA^u~LWg5mAf+UXfk5F9h5)P%yC#7Y$ z>9xeUUh3MBemF5+r8w*S)=}mD<45Yjk4@BKkrgm&9TOy z;>BHtjXY)b&zxXo4v#I#;fFzw{Qk7I+c`|7pw$R^-kI2vyoEzFjlmW>b;iC6?)GNm z8McMNn|X8RUdUA`BlU4F4|gkt3OxfmL7jm)m5-^^l{gA(dh_4E{0J$f`f76M@!-(P z|10&TJozw@Jh}}C7F5FC(7OaiNJrXs>;^ddoKeHPLGZPIT$5nUHG;)3_Sb*hl}SqY(o~wPO%M?bdFL5d{n(EO37=4Z#6huiS~CD3_o6I zfY^l#u2;%*M_IR(-1DO-9al5V?uD7v8igdW)uTJHW5#oFE4-PsH9rJGL2HKrbJ&qf zGmVLr;{2)#^%lbAthG_Vg}k<$*&>Z>pq%3sYg1VXIKq+v>=^xGY1|he}@Y zx}6e4jS3&@q=J(*mDN_6CZ~3z_9C8TSsh0`t5LQ%s$rsL%2#O~Sq_B{le}W=y9J2m zHWu}%1wzGzw;ANiPAkx!RxR7%@-aB0?sx9xRdL5kaRXXfoW?7P&IenS6%;MI`$u@% zcnHxwWG1L1XmzkZnrzO#EO9ikP$ln?NAy-Pf>FscAUMio53ws++`e^#+Rd`F3a zFD?5~#ifFYB!g#a0NpuoRd+1VV29k93t6?ax!k@o)UhujYD=Wwp+=<%44fAE`3fSz=2wx9LCti8*J zutib%eAP6``7<5-v4VEW%;)jD1LXDgBy+>SW9Q1SPk{GxZVoVhH318fPS}i=uQsq2 zi^@31>urzYkL~|@j+9$RWGakRrmB!LYf2>mr1Aqd6ezgMONb^OMTY}`Ru5x z4KJo*OnO2|0?&VN3l#Or-dY*X z5S002%@9}@3qy9+^8B)n+88>WtHb>TW$FswDSvSF@OjKr$sVGbFzH)*lv9T*jbtQmY~Dx`wm=AE>hy|G2rEl%erdKvUi?CB-*Jf2&>)wKL(KD3<7DsM*Kw`4|wz+Rv z@yqJ&M{|I_HNQ-^9|hc-%%gwPrz0kUt`~V zxDEf-zKk?-TpA>gs|)~z;~;rUcm5Gx@>lrWzrzoIhX)Xgcb0i`U)z0$y!5bonU$JL zueWM)mdaLUf$mW1!8|JDlSEA}!@Y?+iLoj6_i*ow{9b~)u@s_IZRLZ}nNHx>k)=cJ zjDE9Uk!JfaV=?y;oCWJV(8CgCroZq=s?$_}a)QOrBOLeja{!Jf&CHj&2NpQX^ z2UERif=ebR#_f(|Ju(YVXKv#b007A|5$zhqovs1&Qw{?<@Y4Iz`{0fN( zHUYb&pSUkSbgmzruBG>BG>27>F1@ZAWU)#^j3*-wbEn8At#_AQG|S9CC&ns^dfz=_ zKrs%LM2qc(mZ2%I(T;~AD?DQoeG=f#85h^}f^q*1)*Vl}*n71o6#!KpNs1vVC zmRW-&T!7yid8G%15W1)X{B*3W%>+WpBP=}q&J5pA5hKTRm07k%d*!Q_71vJBYd%tB z&kh_M(L!9VOc#gyp5I=nK`}06tV|f2|HY%QD~k)h zU3{U0USs5RG{nM6Ujj!9vXt=sriyl&F56Zsn2kK`)~klo}(%5gsZQiW=11 z`RfzgJ4+m|6&&zUm$;^Qx{;Qyv&bq63)Cn%!}$g{nXVc7`Prp|BL;}LY0DiaXDo2{ zV9X+rtA6-WIIS8!A_dC-uzd>qFE&2s|4%mB5jQ`c3!25)`h(BK)mA!Cl$)Ouk1T&V z-C%={9&lc?@`w3$)Thl#iQa2Zf|6(lUR;k~{yyji3X4e7WmY(oNnQ#yAU}N*Qz`yj z!^U4@x3&{RcmiMYNl=Mb301^1vK>OTM7m9LKc159x)a0R_bT#yZ+y1evNJ{iF zQlm6$NLbTEQS_2e$g3)fJcmIEs)G$AgMq9peMBK zil==s&LMprEq`@reY||A@j?7F=iP}&MN3Q&`QE^Rq7`LGGvJ;kxO(c23b7!K?vbkj zE_zMZ@J^$ulPsw>M?zg)ED+L-Ed-bfp3${{LMqX3*UG3u zn&dyCGIX_U)GJhhVZGxk<0nUi#^*Z{V*tBGGdtn^)K zYfL`D*5QB=zQ~h44@&-W=$%eo%1-aGAP%GmFjGs8jDXqy!fV2^!8%u-42>=)ehSQy z^nEt?Ku?r?GL9r;5d-5_^7_n?it3nDzC~8g9kXn0B)&HACA%i1`~AXfrGKkbC20Vu?1%lW5(>OF#dx^&rx)wKsRXVqf}aey^AqHVU&9+@h#!#&DN~4+ zoTe6%l(|5xHZI)A&FzGX_sM?{S2;UMp^7wDttz$T_NsvQ=D_0af*?DyTTA%UyYST9Mk-26y67vM zs3oEnnrsFeK5AkyIP1j&)6S`90J0h~-5B8CoUh+~LCITvIbA^4Q{lfT;y4#qa4@V6 zGnw3iI$5Dk&O@$Yx`A05;10FLSpB8*Ax_)I%mCAPCtYiZrpq#8^xJMCo&{4G)s$>T z{VHhyZ!xe+`8$r?|8^M1R<`V4_Ig4gs zPX4LT<$o%?%(x1kjNPo@_E63hJ1KeRIOoAZ(eD-d@L_YkoAIq(q$4{>8BbO(7|qgUjd7OcakTO9=HM`LLa{2U zcy8}u-!ebK+`5j1wYYfMfXjmrX6nnY+SC3%+0!wjb;jyl z*;K#3(xObdUt*QuGemr(e+eJBq`abkuu{~zQtMzUKEQOTQYj(?H& z8Oc7VXx<}eHY;O&@B8u{_E5DomZj6sV6)S&Rp`EfqYWXG=&kK=>_gto{o+naXAx9! z!4snvO4!dxKyAX1_fn1+{R*GPY`%|tXJ+Nmg=^D(45LNa#w?hQ@=2qdB9XIe|EgwV zC#qpx+BdG7f;OR2dkULk;iPqqpwR(0rWil?8}XVsPck&BV=yYrr3prnW=reI-j<08gX-wk8HVwJtY-g1f$Mca0L`lwWurk|^f4Ofy}>l%EYLf?t|ao8(cL zEhsLFYU|kMtb7rcPn&Ic#FpelmYf~)G}AuntP3e}_AP?vY>&-;S~<#rgb;c;r7}m8 zkLT*X_*SZrM*Z$ia+WjC5~7Ji{VH;n^Ji&UJ~Mz{-ntWzdCFPo0*x*YIn!{t;g{rb zCYonSlw%1o+5O|7tBF6%PgJqnlL23H)^rje_@ykqNOnkQhBNYWn(v9+yw@(Lyhqtl z$vA<+?8@10DW80~p_t^XC}(9ya#`WV$HdP%u%FXJIV5}h-;($l`&>M(+ZHSS_~c#%@ioDn4u)esX+p16qAk=7W&v)t*6{)t%teg@c4c@LV!QdqMD6 zY8ec0MFU{LL6@ZoXOsDP%v$up1o@IoTLeHi2T|higLWNTkRgO%;=Uo^pP*VuWfMqQ zN@#e+DsN1KV<9F?;22mtZMd^wvs#iHLvfS<>c}ki?a}5J5FJmn+d;-G^+tjuPTZrq z6E(2Ta*)55NvIJ&&RNJ1@NH-iTE}lRH?c}so#2b#Xe{=(Fq1}OBss$1NsJxFe}PDQKJF2F@&l!7_q)1aF{pj4<=51MCW~4^fUK9rlXMqLFg^KjI?Aev88k zJQu&P9vL;>;`>!Y!q!jR00bw6{(XV116^R6fZ&WWE-(HKIbB=Og(ss#Lx`-=WF0*Q zSge=Q!cV#^Ny&|EK=3P#`Ev-@U=JLY9@i2~1KLy9^eI>qg{5{-@=nS?$vc6A9r3ei zf%<3iY_s+LN?uK;O;^g~QatNl3K9Ad_l^m-#|daAdmychRB3Wb-Du%FN(nI_)ahZN zx8law#7HIW)no^hPrST+aU%ikY9GLB-u1iY8}?cdDijtsAs_|b4fuzQ_KnC1+11R3 zA-~pg;Si7vAUyUQzu8dlm8A;p`T7@**MejomMNEE}WL$TFbmVGBq z(^PZsZATBn65?gZ8TuwgS8*hI$XV{vVEPlqR2ca>p5c=%*BoCq{Ri-9M3gv_A@iX$59_?;T&kzh zdi~43=7!ui6#%u&L^b3DfZaZG&TdvNkY8yZl)S(PcqBw4AVj`@O7?k6+(fnGS{7?J z4nAg6?=zza+!D6Jf-1%p2iO|M)o~tr$ip^kcP#F`jnTB+F%x_DZF*7}hlqLt1TpR} z(wjf2a28Ymh@d1uPE4mx;~*vzA_JvwmrSF?tJ0w6Bd#BP1H4A?NXUO z^*l!4rF(?j1BYKd2rA*ZZ$FXf`Z-`z2(zw_1)XRhsJM= z9g%0x&pq1-J=*_Ws_ATxUn;m9mCYm1DTo4AqyQCb`p(J?~a+AA2g+_bcK5E#n+5^5X$r9y~NDh}Z@7fi~t7bK{JKcK1Y z9J_^9CvrG^5qsQ+6~cZ%E4p4A#azbAVbAW`0E{Ip5*!qZXO{*EUlW#8<0_S+&M&F` z;&6UccBYtA;Go#F%A9nqUJE|jwSw-xlvuI3kyt6&dQaz%03>3$Z*;^;V|Lqo&MEdM z=_|+*u%{(}R6Czte3DPS^w@n?JLhQJ3eJMOxq+a+&&5wi02V2Tj1i?=^AE&%l{<59 zcKVZ)MVDhg)8C$!WlzdNi+n&=J3sd5t&YTGb?$xoE%+IY`eu#K2_)G6KZ5dwbTJkB2XN#70x&s#rgZB) zvE*JXGDuXiwJ5fEm%SPqL%39-CZ}LPLCIJ!R49K0)#&GEKpX7HF6H? zZ4g=>g^oe0W7`1j!79M_z8=lY$g4w?D0QpDi>-~`9ZLvbc6l`e;cfl5pnBP+MySvf zNISww*BpQKn6a>v;%&enHLokPngOoJNjJoOIgO%UMK6jHmJwN_%H^PW4Fv1jz=nH= z)iDXrFbQ#md!x2^doP\V;c$M>PYdM|LMRP8};{0ET5?bqBquVJHj3MUMD9Q4fS zdoFhT;-Gm^gyrJ4+_JY?&L7yJhT)@J(W3;q1R9p)Z*4UcXm}0k#eTo*mx^*A%|>F~c}n4=k}|%JQ(7*4&B9xOuX;XD_{qgcN9dz*RY`L_s1rmPAxOMr z2fKiuO}4qOl*ol*l!_h3m~U_j0nF#m!59!!wU@k)*d5BE`j*X6_Rx#1(BK_01=UF2n0PoneNfU=#6=vaR}c(FX8OUC5)6|qpeK8&|XpwJn(1cX(Ol{?7-d;a&C~z-opu_-@Aau z(qD1GQ*3zJ(uzn$0!TyJOHRp)Ttu)cH_5#}{zb(KqQZ;#O~o2MXuMTB&0_+x$)4iQ zO5$N-JkqBAXds)Fh%F#-rS+~ujI);AR3qv5F)7tokCtKF*<}ie-?-4A;S-r>P1$=Y zjUqONtIi(erFf+#Y>NY}RMB4;49Bz#^+TsN6ICPZ1m8gAk*Vg}+b;?n-%GnQngPA3NejS3}7-;bD(vA4W8;OMU*={Yys%K=Jc5qLi2wP*D%B{A)}NNTh; z^3)}wN@BPrTaR5l7*p!D;?O=gNJ89@CL30nO1TBaD){t01oY@?hp=j&yJQtMbNZID znF&LwT^l8W){xC|#B)(8#Gw5V(nO(I&Z#pp9YG@K)$rWGEkvNNG>!uis3L{GD}it9 z1>}gc=lEmCI&bUEAL#_8p20TV zS1!O~e{jhz&V}$g<`WAt5Dmg5ZE#M<&CgQr7NDZ!*GIl-|)rMu66Fcrq>I#VDG zdd$|QC}0KsH*VffzQ3TJA1e-t8t!WIg_U4>39&*O1f=p85cY2%-G2kw{sx-!ndk({ z@0!o*sfQPdh3}@-K>=wkLZm+(u!bEgJ}N!Jsp1O=q%07X z$yF%GX;Lo{0>z;hKa&0FzzCIQD&eIO&xs>!Mh29LLEU1dr_fFhV&;kvtPi(hMX?ZG zB$Q;(;t0;<(2bemC!o0K^;wXEw+VbQ=uH<~b|U5oX#`|J#vQ+8=WO!Q1HWXR0{e%> z3z9d~f1cYna`&I*;{pS7s)hl>|L3`VP0KHzrOeIEOuqbigx^~~IbXW&^DD(>h5eKY73zi75E#z?fxNZ<)Dg--NcOe=@e zFiOb%tIw;Od)Je9>v|>k@!clU8~6RbT`O=&uxcTD)932Ua2G(cxps0JezUvdUT@I# zwm-dhn*R21_V)OC?Ard4Jw3jzfBAHC+Fo6adUlq53p(1r(YY!l$YhAq-rZS2+?2k) zKl=(mO;2`BSIpKx9d|Y4SsiwrGUDZZ?p{3E|J1rlHMAdoa~8h-Qren~Y-r6A9(?uY z3=<%Gd1vKqxqBPMT|MsXcsXnSRJTOqV<$q>y##dkeBrjda;`P>))T6}^(nG_NHz!h z_`Egg`?y-|u8w;bbU!e+`keuN+=UH0O51MT@{8a2-i*hc;)k;X(}SCn_dI-BI$c-y zoE-bpZ%!?5JWhC)7vka-52Wcyc&};<4TG~*a)MU}7k~IvAz!Y&?q0lSnI0CXwsYX! z!i#MP9cOW~BLiG{(P*E0CmyHS8~`P;pW)bjc2(HE-9?g|VEk%@)&d2dJa)}<4R_IYwoc7CFd z(;|hq>^=`Qs}?A*<-_wY?HM=ghNJ4;ELoeI0#lQv4^`Jcu8dzEyc}C!Z#PNm?o#=# z+1MUlfweEU{l8ZF?#|fP?H?%?l|%hBH8wkO9_{Yh+_Z@7OfM|Eh4V%g*xwY3eHx-ME14xos%1Jb$qsMQap0*$QZf1`h9^SH&j(yIOq8E4H2uSwd zN(X}{S3P{Zaz4Teoe}4Y5GPgt%*)WLGbrePc6uy7xTa~3sFff9lpiw@p<>CApuE1- zuWz^JkI4x!;r^`h=Ba4prfS${CBOv?Q&|mDSXoHUMJdirrIcjCD+{O&y4fJ2 zwy0)huZu>VS@6K^J}o2X+yh+#NV>AudxAhshg+Z~JWvzI?Tv`17U65x!?p|(S9jIz z^!Un+txRo3)@^FLA>-&Jd9MBe#Xo9=Xa8VjUmxO-s0H!(d8ius7B# zxi3l;Fsxb|kAg7WACVAgFBn>FOiARGMe~k&po4LvGet$>Hu4$TQ zI{l=$+2T~)jFIPn#pRw@+HS=#!oHHpq?IpQH}K3H6*W|14AN|VUaKeJsE*Mn%-kD? zRi<7E5sy-<7P?}TY5h&-wQD64zWKi8jJ>1z7H2&U1>Kna?Wt*bG2S#-yzSnh)3C~Q zTtGOU8QOF5qyQp7v8E6~i(*L^x&qy%4q^ezRTubCa<$4=%>PBR2ftUE(J0dX{r;A> zngDw+T^UhoKh{aq#HSdS_jW_U7&X#ca`0LdYY@B@=yu?f_u3E(Ax*v>9|v^7g2non zeEadYae6*Q+9PhAkCirop{S~XI_OqF9i%6qju=o!jdTmN{l6gy7vP$~UeXA%WHe0PGOASfv_&iRXM!NgIMf3j*9zw@Ad$9;^_JFWi7J{TQIYIL+xX;@Yj zG15+}i1Y3-GI7M*=JK9_f)K0e=Hv}QQ~67DxM{^}D|6@e&1JOr&(VYV$MJ_B%h%7A zwUc^|L?Kr}s;#HI8B<>9sn0iNtzIvDt=+CcCL)y!oZh61=RlYqXpQAVm7Rkzt<93jOT?ZUZ5E%i(i8wie)y=cRQ{E{m2-X zCn(EeKunQeu_m&jB88w3nVW&Er3LBn3i7i0DJsX7VAxH~sk8NlMnNt;P2PUg(3;LK~j7 z)Qbc})!_dl>>Z#h+qQ1u*tTuk6;!Mp+qO|r#kOtRww;Pqv7L&mk_z6gbMC$GJNJL@ z{cX3bw6wOEHTRff?YV|18xm$fhDvP3RM}G)g39!>Vq#1sT(_vxjk?ghp!|U9 zEk_uJ{9{9D*O1%tJ-~hcN=Wb|KkN1FfG@|>Kw+TwAW7i8VI0xTdEMvv^)*ghFzd+o zUi)qFV6ySGSxBFYK(3PMwSD~uH!}gFJ+i~o5=Ta?+HJ4Gn8$91ulIBNX0CBUiPMm% zeQIKZ0F`|Kkwiw#;mHi|iTZj??(F?H>=wvZD)@7wW(8iwo+;usUPbnc`u_d9n^svz zw{TQ!NfzuoQ}=JkC*c=*M%)aSta<^<>!NoVQ}Z=bK62{kPRGp56?;yGS0mgRmGEOAVen0(l-WxAwY7qeD)O zpSE3fU&H`gD;{U<-DJMb32oR6+n3pCc|0ZX$K&&@hWeoTf(@tYlluZS88R!?NraH7 z-h{n}G3I2)&gw(fKK5O{BBl4~Xb#Pa(#DU|9zQPDQZk}u^lmK;*bPCy@X!U69i$8{ z-Zs}b@vf-`rrMX7$OQrSfiC=HsGpg&`qt3FC7Z>gE$D1$Ua+Fsoi8aTnV#Rw*E`&n4NbQ}rm(43? zlr|>?Q(~zzrCqi>>CGz^0~`1EjmFN~IZP~7KkeOO569!ucGBPpXIw3oH$UkcZDQ1( zDU}@&)ntAzBjU6RU41Cu(2jfe@h~eX6ji|1T+S&9$w@`e$s~Hz zxt_12^*f&*E$h~fi`BW9_gr|eep5$-_YCDzs~#a_gJ|=W7eyVio-Wwex@Qd-XHQi&k+1E+JRnXvl8IiMh`aJc2v6G1 z)%RnUcL%iZkLkZDBSnW=;Ny!Dt>}bMHgER__Jp3o*gE_Du43+#@`rq!6m4F5__wmB z6bCQQ?!7yRp1nKtAHkA%r(RHoGgsLJkKb9yn!-u=Bpy$35{gWgkX<=44}={z-(H-4 zPK<5+7;DE*`uQ0J{lH5udV-Y|iYil;>{XA@8q@c2km5!yp^j0 zzSd-^gj`;zxqiJ~czkABx6MO8H`p$?AF$j_akYF;I&T~Fm4ds;-0o#G7hBu<-a+@Q zsOrm9XOX?o3BdG}Vl&HwksP&iFrDnwy1?8gP=;Z}o%Z=SSa6*8 z*3Ii5(u%s!&8hy5x@@^j3^#k89cx$}K6fW&%l9I?(jR*9gv3b4>snryG^AZlMq?@c z8%8L;YqlSQB&Wm>m^()s>(T?YKaH+q)6`QAu0z?$GwOQouMsTrwY)wsVN8cg0%S$u zwCswNFOe9EQXFmk2U=NSR!di_`CNy1BH^k#$Cr0EH3bkLuH~(K(L=pe5{`@UuV^bACiv>Q@%0Npi zRpTUXu&2Ql2WB&CK`sd4XDQj9A@^ohgOJ-MuQ#`&_vN-+5DAX_)Qk95&z>#uHR2|| z^SE_Us__>?+?HT(aD>(vk#_F4<7Hor5OS(IcNfXMZB0HPw;1Z(ZBzC*_k|wZk!@E2 zlOIs4`GAkjtcm`g<^Zj}@-FV|tD&9%Z&4&IyQRORraC(OCG}_NYByi>kTi$Uoi+0p zjO&<^A>rNaXo$@$TdqYwC-=4EzC8Goy`!7r?~`qh0b9YJ|Nra&98vdqUpAdN+qtoj z!2`Sx;M=*^;goV*9mrPmkYx(FSLF-+uH^-CU-T!Kv>3?fo8Vnqk$*y6Bl4QID9JYP z*GFp)_JBfdjFN0->EEC8M0eMx*H-~YVjDOT%GWarRa?E2WxUxMKTR5~R-&bU*|(() z8QF?Fp_;u&m|YPL*7L&f^MAqeGgv&AlOTy^Dc*vvTTU5~Uy{%H}Wy_(bs( z+O|^Mrrxh3h)dhuLexcX(q>-L7RqaQN?^I61J0ri6%Lb!key_%i*+#&n^Lb?=l>K6!&T-EHqaWgnIT6u9l*hx;g24 zIHy5HPlPwN@%-o6SX6sjCJ!IA9Ad~^K6STTn#G)?VCVUUn%1P{cu7SfJJd)!)cCjg zkQo3edf42-9=H_;Iq>WWJQl(`%*Z$(y7bTS&b78d88#yz&^lcG*jP46Npt6^yUsR4 zPwM9t<$F(Eyd}nCRy~^OjS*6-O`~&V-_wG1*g~x+Oi9{;rzBOK z0?r4!{lZDe;~I&Sk=Qe_%GHRz(`$v< z{d!%hr6Re;p!I|x`2AEngC!|Gx#xg0x8&ss3h_JoTxLX(uoouAJC_&HO$Wix7CNisd2e}&|G3SDZj_*ckmC=@c` z@O~uu{#@nB5>hZ1Yg!vjoDJH?7!;8xm2_q?!&!_`1bZVWaxueO@*t$Ou2fe#F%Uyb zsL*_`b4ev0pxVkZ`)kWDpCN?vu`(BF!WzI1?LuKdoPUed@{8@>hQc(yeEJMA8VvI* zs%L82F=55*xJ~LeT9Zz(X9Y??JLtej&?3lZ2pH700$9gcoGp6wt4uXKG8Fa#m-PiY zmb*GT7*tnNxcd;8%Z$PF0meTbF!-9zfqJhd0zzOw5N7&OR1}7Ivc;03YO1}?k7C`a z#Xume3wUFkap;A&&BH-R+K3N3MIp$yQ3ha0!O%q^^jWfIWv$iY;Cutc=vV_*O3)%; zo0*d&^te#F~fVKU}AY^^YHo>#eoVfffW zcx_NM*+W=^bkYZ4P&Hr2^TD5LDRbaZL2xnyNXv8i<{7?GoAzZ+0?&s3IW)`K5Fj0o zB&&pEH=d#pf}bI%LSgoAmww939bvyh+~P7VbWXowSs56+M{zJ?lA&;uw0k(>{Wl*O zQ3zuyS0){8NQw6rMAE=mIip^bfKMto?Cl}A(I^2UaR_{dKeQJrP(b|)aB+;!tq3Ia zdD{OBnD762zyO3~zsByI9-r=jb>H;OS727aqwn&i^Yof5fF1(6F$DpIAphCdF#er> z-@5OWT*ddTJr&Yvz$iW(Y7##Q4skLoDFS^`C+YW-@FdY7$Z-fLoxqQwfFb|90aW65 zdZgcDBSUGk8#6kCVfU#U-c1V5d>q})9KG!vJ>621VIi_G<@dWc1_6A;KMXR+@iEa@ z)RM=dFJGgVXvf>gA{OyeR2e(cI-W`1#&nMx$D%O@p#)>_}+V=>ic~kicMe5 zdy_)e?_<^f5Fmm+NHkUj96?dGoY7|_t>2{}$k_gpc`EMq)rz`#*?Z*Pf1FZ?7{$)O zO3gUN#xptH@L|F8u&vusvar5+;qCUFp4pz3_js%EepAZ!s0K^~rhS5|+v(O1Ud?-| zr$2tQ_~h>KHtO*fz@Mieb1vJSf}gxpT4xF{pVDBXY1pG*Pr7?CV;sB)Tipp?Wfr2u zGceWGG|x1!j4p6kB!Q98IH8f<(RC|@s>>U?_*>ZOPVedu;1x`#b<-%h_n5T`WV%T7 zG~E4OEsIpQgHz{+r(iA;!EmK!uc(~Wo5-8NXfTmK99n0pFnN*I0#iql`v z!^|-{*Y-JK(8o>A;|=IqdR9+H*3HYt&zG7yPrJcZBR?gxsGj%4g&s3~A#qRxkGJ(H zOSoTvpn-PNpgVeQnhJS?iEP!cNSHxvM|`T66PTc>&HooY=SWBJ`UC&eQh zjS_ebYWN9>&+mg3A6oz9pspj0Y;q}C>};$}OmuAN6)8}S7$#pr5LH5BFQIRV+kR!g z`Ll~Z=vFQ+GnU|WOZ%+kTUp*aR;HE)@!$V~IO86&jhnsc?v3CW#>v2bW@*AMMVTf^U+;Kz15wV2cYKKD5My^4rVKZK z1Od+owS>aJq0DsZ)t1mA!79{xVhcA%nIXx1bP2&W@&8mg3_CxqpZ=L6$kP1eZWUC@ z?epL~{{qU)G-?`2<}x^fDPAG2qG7V-sD{CML3JI%JcBo`82cZLmyW?G)_x+)#t=($ zW;xPK5soI8=L?WxKGMBYLaT7|<8WD&nR8GmHpF=Z8WtIj1A2vP#Z>ArOQ49tzcBtK z;#^pi*)W~~-U8$YdpGR+#1Ku;Et%LiW z_r>3YjkX0zuU0ONo@r~tqiOrc0&j!2W{t0W*TdV})V@&G6>^iQleB|X2Fu5~eam=m zG+=DuUg0cc+CcE~DPw5h+-W&7uN={Q7@twpNZGj|w1Jy2tlGj6Z#xLnd%aRg6~o|e zLsaydS6CPUOqy7mq{{Q9Znuq)nAZDpb=m9VeLH66i&)F2c(A-9I!M36mSneG5l49J zObJJLHy(wrjw<0QUIY8K#1z;RZK(MH$8>B2*S@W`6e4b*!4jwTr=d<5tl;{sX!N;*W^qgn#qGh6Ql;(Bm^GV?`zVU~-=0J~MLh9A@o4JE7Wb|#rX2t{pS#l9*bxQSf2}Q=#Q3vN}VUSb%x92-YKgpf*vvITH+lsn$~|~ zq$dJBINuZr%<|I(q7e*)C;?(%OP?-QGi zY-Ilr5^jZB*?uFBFN&$k`d|OD0zLhY6;I0lhIlFmT7mxmuwvBcFl6Kq>Ljc&>CW1R z!gF%!b{%hI)wu;Pp4FE2w zW3@y}zFa&32T*HkfYF=hE^e(%kgbww|1gS)9p0I{@&`WKtc_$0k@_2sOQ_`fc>D$6 zN0^m9-{JVY-^NAjp%{gd6e~>0`WdYn(iOTVwbSo?kVNGv3|E}@=?o;ZV>uXh6mzLY z_sAv!QRl$PMC)RL5aFSSIpqKehK>Tv zg3#N}YR+{Ze#Yfy76cR<9+IU*&7u1{1ha1z;hZQoQg`xEE`*|uT2qNO6jPy^e^47F z7#Qm?n;S2T|DaX}X#NXz1TUrd{4dmo(1d}7Oo4|SEE{bcsBlgK6l>|~y>j(kMRj_A zP4I@$V&y=dRn}spAchW!4CrvqY#2sNn_;v`9TEC2rj>9+++nsBQvpfHFpujv;ocHIafO)pCvj69*V$t7eh%IGjq4>m2C{OK)F8>61p;NG4V&s4*gRur`_v z58W_tGUh(Xif}b)1%Uc?q7Ap@hv@{T%!Nqxo|vWQH@pHeef7D?+9*zAQ7B;W7%am_ zlcgCf8&w$=#05WFwG*Eko-aW>&@2^(vE8f{X)1>^ z6T?_XHJIvmp_gwf!99YNpOBwhBwh4I1}m9rxV|zxZ2F9;rzE?=Y87>g#gIN=54t77o7 zs(FUQ3*`UW1RBB1Xb2(i-U~WPXo63k$>hdI`vi22^H~3FPi+w^(m=x z*?amR1&tk#Q=F*_1Ya=#T{!$1WCYY{JVVNt~UDMcw>rH&w6kzCu|}=Xapo zt=jAy+5Nc z$_Q%?Pik}1p!lXe1RDi|d(@`(eV^99?CZ@m^2e<+s0N|zxSKlSlnmH4`ej}UhVDEF zC<#8XkgPHt{VCgP#u>rnv@41=$x<@)QVjJ_K8JU5r7HPCr>e7Az>`@cEj$NvnxNL2 zzh$qfAUKL0U&7lrsdcL8obwY>M#h!iW0e}?NaP7 zCxm3^wjGn4JfB1JepG=sg(zLd1P|RuBAShAO7X-yPTr>@Nr2axDmlSLi;ykX2wx~? z*g<|zlQyNF>(<@YHUclSvVKMo9y}9M*G8wz_CO0!8s9RAcO==<4c&GeBS1rn2ZJs9 zvFkKQg7E9v9}+G0ljndmC4oH~6Z789{Z}x%hUdRxCQNJBpg zVZq?VKuWwG3k-3j{9*%#;8;>TPfHghDUR(E?cKpcvp->bFKm1+Oi0YM+4d% zzGw{}Hmv9_LsaV-0S$>F`_7d1Pa$_bYO=f^hr)RerkN=PUNZk{hAt1-%+%2!Di=v6 zeAp}qMK(ZHgI#GbVsI_4Z1W8gXx2BgQ^YURqBJPanT=1qcy_uM6 z!x1;wTM<2HyM~#r=ZJI>q*Bq=5p_nHJcCtBROUfK#(Yn$v==s?x~3bMrXxZV`wB!w zjSG7!%88wV79V|jL+G?7-2B1{?Z&WcB?#Z%pkd%$iMPQStrVoGn%&KLI9C;VK_Z!L z+_T@w1jHwQ>YxYWvL?HHBxF_mSnD2hgtGPT=4qe(_a0(T1pW#Fy$z#5 z+KPW8C9EnJ*hk*A2p4LWt33{y?>G6qgCrDJxe(4`f$G;#)CBED-QZl#9pz&wu`T_gu*@QJkeu4kO z-A86jssi2yk%{#4d=;paAs@^J(sxs)h#r2=E!rh$4Lm^hZ@A+j^T*Zb{lf#H3=~h-rkqf#lW~=-9k@m zc^@fAHu(wfF@53X1!WlKEevz@nFQKF{n8P_U5b z>i~>1X5618T;Eq;BDE4!qd%j;Ycu;t&Mh>)BXBhKkxNa0aung-P>_zB5*0i&?YZ}n z`#JZK&8L}xfbDC(&sHrPO+iR!>s>=uM?6Cw@w{7rY*K~PLraZVS6r+ve~;`ev!Efr z5Uo~&_l8--QuCB{%EWJc1}zx~oL5w(i4R`31U7_Ck*u>szi*m7 zbQj{aQ*X@1ALic_lP}?FKbprzg5O^?*GqVp8#dN7xRNw zp^LU5i_82E_OUPT zOv1%1^ra>gI)Y%o9R!`J#^|v``PB93?#MhJ~Pk>z7`cEt7Ah zJ6zvPm~KuM^_^7W$5jn7AOW|DOCil#WdNGP8DqIkpL??!7gtu71(i1a0oY~yy6R#{ z<=98}4l-_MZ40rZc4iy>1mdBgb7WWFExkieDr_Q=sP|9m}icDiF?`Ka-+dsW8}PdJ}6 z7IzA6?8i|}91QuSA`SQ0>s+I9N>z33EDQ?z32qh|FF+mVXN-%~<|usA1_`%crbwSYL7in^FUpz* zPSO&aaS%tt2uH=m-MSghpOwszCZ+cVb7`r`YNlwY|AeFlhU7g?FS;e4XFrkM>dxlFD-(VQ4cS%y%Mh#xQim-kYsi8X#q;u zm7aQ@CLQ7uLX08QEXWycwCOhb&6DOLAwN64AUk;phd~8EBZK&vmsZy@+gX{0J)Rs< z-`+D#2>_S!;at-dvSOBup72BoJRBEfKgjXojwFQ>3XZRi1UQpbXFD>>JSpnXQ0plH zB<4L1v3A;OX~H3o4xPWN9u>0`hkSkaX%{~#Mw}MmO$gHEhlKuP#Sz5=IrnabfMuLB z8!~W?|Bxb^gpH9O=~ z2%19fUb~X#V1hZpuEi&a(4b@T>G1-%zkv5ud(=_!A;s*z&S`T54#s0WJ>TzPaRzd+ zK*tCpIoH@S+kuF+NwDP2LL0GWN%9Ugijc$X8{#yU5Uh~zUBR($*V0r}X_aOxCa(rN zE4R<_92F~SlS|^gZr(Aa%##~jv8}$81JgwbWMI0;<^{und{k^ODUC7eJH5Sn-;$r7 z4MR`88I|~H32RbXBN^S|a(46*2Db@@AUSEuN+l)fU!1tuy_)@bX{ep!ZK#VR;X&qe z=ZBDo!gJVTM(S-90p>-H7!8n2E94@)tfIWMw6)qmN=up{e^U|@BS6srh`Hk89*Gry zg#{iwX{g_n0sAyhWLz2(eG$O3M3Z+B{=GpF4XV=x#~4PQ@meEXcb}E zb)xeWr&4YU+%Bh33z=1V2K)lvBI(F!SEZzP^X2sY756hh_Z?c<8yI8h{$w(Qw5tuE7Se?D`d(Pgv>k#xn4hl#hTqYqz5u zHpjJ~3IoI?*tD<~tO)~(v;+{= z!I19%BH+2(beK#AEATG@R7X&}n79*8968=#;tFyUWg!;h35!_^q9kP`Wik>X0Jq@B z14rdV>9CdpO%Z^kk#3@x|FhIg;$o+2mzJ|kf(7)Cgo(&Trjm)AREn?5PF(uf)uRz`52oQZ9Un zL0KRp?@`ZEdqMv?mo8dOOCg8GPq-foVT#knQQ-{G$%k9~!D9g{?yI~drnCWGF(>w| z7;sjSES=Mj504$l{S?A2Lp@iY!wZ%4EMROg5A}tk9lgdZ?$0-c1=tZ^8&Y}~W=Q_3 zkTfx`_mgr8qJc(LPxU67C19+l^^*ZH#GgXMWh^@DbHpWz4AG)HhzS@L;sMR6;($-9 zU)H0uGHR-385(1NIAlW}T)7Q>L}oLX_?pF|l4OPnZdQqn42fj&Xqu*bpX!r?; zFgEy%lup~7-Wr(-V z1CdNopobD?Ei_$5ps*@#6JRt=_4W%GqKc&iAh5LBQ5YJT8I<`Zg02|YZieb9vIzb| zsF*+7L*=Q9d|DUet9gRmL(0=nGRZv}<1`P$|Dg^y@Q*rCl>e>H76GV^2d2mW?Huzz zV5WyJE(xw>e*@WL;X>c9N6UBon-m+v-JM@j&g;j2H4-cmk}&842LU;O{U2?&T+Ccu zt?VuS+Go|GzUBO#2cvhV%&>jW9JbX-?tu1;qJCSR$`<&L0FcJ7Aa)Pji3kM>JLDUY z6RGCuSC^P~&)@obU53XLn6nYx^AS^w1>u+j=Rw41>FK!c=U2;YUyV3eQo|!zXblDV z{Bgf_zF!>(avCyPXMlR4P#qolw7002Bt_7+^+$BX!$AbvRPZ+Zs^CTkJh;@1mK;WE zYAZ@y8KFUnuw8DBKi992UFk;iGPZCy+vP~pt=edR{&~Ro!0V)wRKj3`G{}WYjfZng z60)vr*3JEH&_mk(2yp*_*>Es@aW%9X?fg?&qYmq&_yi$2l@ccidpJWOK2p%}HK=HH z4I8J6zQHNv*k~^MWg3y6IswZoKZNSVF&mP3u`4D%69eH`blTh_Ci;bnlK66wP~-#> zCrgPxn+GH+;bIdF9tIyWn%4_S778NgYB7e2AmfNKMjp~enfouh{p@oGNJZ(wDl&uP`__teOq{dcB zsqI);KCEDq28Z&#M9g+DYx&u}xB>;VjVAy}gi4JSq(bdP$0wHY`q6CPAbh2*)lub# zHH3a<(;Iy-65YdDsi?A`K!os%jOV;SPV7|HN_AD6iXUPjNzYXSRAZ}A^o?xqH{voE zYC*ePxih7N4FuoG2RHzOhZKnr6Ru8hu*^YPKHhK)|qZSXMBSyZNG_Hgm^O%J!~3Cy62J+)b05J*%AeL4iz^ZpzX}N zI1?9xK?hFoH~^d}N8L{-&3BP_Ex~Rs=JbW!Jv#u=yySiBcE3k8G6ms}3bPt**SZMn zvjeq3o@<7RdgNs9j*6&F9oS7rNkzuWS^ljD;I3c67O6gS1Y)V7EeY)5UpCj_(8Fu^ zq7y#9ka2f}++8jBzEp=`Dpi{KG{BySN^tAo^RY)6VD?tcNH#?9F<94^k7Ob%cN!~o z@jo<T_M0HKdL7TrNy8d28*PMI_ldy>ixGT4am*x!$#y%3T+{RE_zexJ_-! z|CF~YF__qb;<_^5MuVJk-ytV9qdz4AVP7k`F>aW_6r=_(vK*O!*SAKQ$-W00fYdBG)|Y{mS$DPIwSo{x5x&t2?0o++KOAeWU^cY(dou{Q1)o_OBLH zU(AeE{>KF$GdEy8#DV}a=iNJan5c4K8qNASkqw8iD_Nu!*^z*fwFS5tYUbr9yA~Ht z*8>&l8EM6~AKnbpu5`hl{q}57>ihYZOQys>!nRCCX<+zaVz4qV;gYX5iuEfYUyweB z#|)DhSFklopP&FAl{|qPoliixrb#f5k7|5QZ67R@vjr%0A}iOo!mNF*r6F2~xoxB2 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatureStoreFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatureStoreFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..683df0113ce7ec634af668c5a33a23e6611c4a9c GIT binary patch literal 38308 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%0AhYMfVl`J>- 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatureStoreFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatureStoreFeatures.scala deleted file mode 100644 index 7c52349aa..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatureStoreFeatures.scala +++ /dev/null @@ -1,232 +0,0 @@ -package com.twitter.timelines.prediction.features.real_graph - -import com.twitter.ml.featurestore.catalog.entities.core.UserAuthor -import com.twitter.ml.featurestore.catalog.features.timelines.RealGraph -import com.twitter.ml.featurestore.lib.EdgeEntityId -import com.twitter.ml.featurestore.lib.UserId -import com.twitter.ml.featurestore.lib.feature.BoundFeatureSet -import com.twitter.ml.featurestore.lib.feature.Feature -import com.twitter.ml.featurestore.lib.feature.FeatureSet - -object RealGraphDataRecordFeatureStoreFeatures { - val boundUserAuthorfeatureSet: BoundFeatureSet = FeatureSet( - RealGraph.DestId, - RealGraph.AddressBookEmail.DaysSinceLast, - RealGraph.AddressBookEmail.ElapsedDays, - RealGraph.AddressBookEmail.Ewma, - RealGraph.AddressBookEmail.IsMissing, - RealGraph.AddressBookEmail.Mean, - RealGraph.AddressBookEmail.NonZeroDays, - RealGraph.AddressBookEmail.Variance, - RealGraph.AddressBookInBoth.DaysSinceLast, - RealGraph.AddressBookInBoth.ElapsedDays, - RealGraph.AddressBookInBoth.Ewma, - RealGraph.AddressBookInBoth.IsMissing, - RealGraph.AddressBookInBoth.Mean, - RealGraph.AddressBookInBoth.NonZeroDays, - RealGraph.AddressBookInBoth.Variance, - RealGraph.AddressBookMutualEdgeEmail.DaysSinceLast, - RealGraph.AddressBookMutualEdgeEmail.ElapsedDays, - RealGraph.AddressBookMutualEdgeEmail.Ewma, - RealGraph.AddressBookMutualEdgeEmail.IsMissing, - RealGraph.AddressBookMutualEdgeEmail.Mean, - RealGraph.AddressBookMutualEdgeEmail.NonZeroDays, - RealGraph.AddressBookMutualEdgeEmail.Variance, - RealGraph.AddressBookMutualEdgeInBoth.DaysSinceLast, - RealGraph.AddressBookMutualEdgeInBoth.ElapsedDays, - RealGraph.AddressBookMutualEdgeInBoth.Ewma, - RealGraph.AddressBookMutualEdgeInBoth.IsMissing, - RealGraph.AddressBookMutualEdgeInBoth.Mean, - RealGraph.AddressBookMutualEdgeInBoth.NonZeroDays, - RealGraph.AddressBookMutualEdgeInBoth.Variance, - RealGraph.AddressBookMutualEdgePhone.DaysSinceLast, - RealGraph.AddressBookMutualEdgePhone.ElapsedDays, - RealGraph.AddressBookMutualEdgePhone.Ewma, - RealGraph.AddressBookMutualEdgePhone.IsMissing, - RealGraph.AddressBookMutualEdgePhone.Mean, - RealGraph.AddressBookMutualEdgePhone.NonZeroDays, - RealGraph.AddressBookMutualEdgePhone.Variance, - RealGraph.AddressBookPhone.DaysSinceLast, - RealGraph.AddressBookPhone.ElapsedDays, - RealGraph.AddressBookPhone.Ewma, - RealGraph.AddressBookPhone.IsMissing, - RealGraph.AddressBookPhone.Mean, - RealGraph.AddressBookPhone.NonZeroDays, - RealGraph.AddressBookPhone.Variance, - RealGraph.DirectMessages.DaysSinceLast, - RealGraph.DirectMessages.ElapsedDays, - RealGraph.DirectMessages.Ewma, - RealGraph.DirectMessages.IsMissing, - RealGraph.DirectMessages.Mean, - RealGraph.DirectMessages.NonZeroDays, - RealGraph.DirectMessages.Variance, - RealGraph.DwellTime.DaysSinceLast, - RealGraph.DwellTime.ElapsedDays, - RealGraph.DwellTime.Ewma, - RealGraph.DwellTime.IsMissing, - RealGraph.DwellTime.Mean, - RealGraph.DwellTime.NonZeroDays, - RealGraph.DwellTime.Variance, - RealGraph.Follow.DaysSinceLast, - RealGraph.Follow.ElapsedDays, - RealGraph.Follow.Ewma, - RealGraph.Follow.IsMissing, - RealGraph.Follow.Mean, - RealGraph.Follow.NonZeroDays, - RealGraph.Follow.Variance, - RealGraph.InspectedStatuses.DaysSinceLast, - RealGraph.InspectedStatuses.ElapsedDays, - RealGraph.InspectedStatuses.Ewma, - RealGraph.InspectedStatuses.IsMissing, - RealGraph.InspectedStatuses.Mean, - RealGraph.InspectedStatuses.NonZeroDays, - RealGraph.InspectedStatuses.Variance, - RealGraph.Likes.DaysSinceLast, - RealGraph.Likes.ElapsedDays, - RealGraph.Likes.Ewma, - RealGraph.Likes.IsMissing, - RealGraph.Likes.Mean, - RealGraph.Likes.NonZeroDays, - RealGraph.Likes.Variance, - RealGraph.LinkClicks.DaysSinceLast, - RealGraph.LinkClicks.ElapsedDays, - RealGraph.LinkClicks.Ewma, - RealGraph.LinkClicks.IsMissing, - RealGraph.LinkClicks.Mean, - RealGraph.LinkClicks.NonZeroDays, - RealGraph.LinkClicks.Variance, - RealGraph.Mentions.DaysSinceLast, - RealGraph.Mentions.ElapsedDays, - RealGraph.Mentions.Ewma, - RealGraph.Mentions.IsMissing, - RealGraph.Mentions.Mean, - RealGraph.Mentions.NonZeroDays, - RealGraph.Mentions.Variance, - RealGraph.MutualFollow.DaysSinceLast, - RealGraph.MutualFollow.ElapsedDays, - RealGraph.MutualFollow.Ewma, - RealGraph.MutualFollow.IsMissing, - RealGraph.MutualFollow.Mean, - RealGraph.MutualFollow.NonZeroDays, - RealGraph.MutualFollow.Variance, - RealGraph.NumTweetQuotes.DaysSinceLast, - RealGraph.NumTweetQuotes.ElapsedDays, - RealGraph.NumTweetQuotes.Ewma, - RealGraph.NumTweetQuotes.IsMissing, - RealGraph.NumTweetQuotes.Mean, - RealGraph.NumTweetQuotes.NonZeroDays, - RealGraph.NumTweetQuotes.Variance, - RealGraph.PhotoTags.DaysSinceLast, - RealGraph.PhotoTags.ElapsedDays, - RealGraph.PhotoTags.Ewma, - RealGraph.PhotoTags.IsMissing, - RealGraph.PhotoTags.Mean, - RealGraph.PhotoTags.NonZeroDays, - RealGraph.PhotoTags.Variance, - RealGraph.ProfileViews.DaysSinceLast, - RealGraph.ProfileViews.ElapsedDays, - RealGraph.ProfileViews.Ewma, - RealGraph.ProfileViews.IsMissing, - RealGraph.ProfileViews.Mean, - RealGraph.ProfileViews.NonZeroDays, - RealGraph.ProfileViews.Variance, - RealGraph.Retweets.DaysSinceLast, - RealGraph.Retweets.ElapsedDays, - RealGraph.Retweets.Ewma, - RealGraph.Retweets.IsMissing, - RealGraph.Retweets.Mean, - RealGraph.Retweets.NonZeroDays, - RealGraph.Retweets.Variance, - RealGraph.SmsFollow.DaysSinceLast, - RealGraph.SmsFollow.ElapsedDays, - RealGraph.SmsFollow.Ewma, - RealGraph.SmsFollow.IsMissing, - RealGraph.SmsFollow.Mean, - RealGraph.SmsFollow.NonZeroDays, - RealGraph.SmsFollow.Variance, - RealGraph.TweetClicks.DaysSinceLast, - RealGraph.TweetClicks.ElapsedDays, - RealGraph.TweetClicks.Ewma, - RealGraph.TweetClicks.IsMissing, - RealGraph.TweetClicks.Mean, - RealGraph.TweetClicks.NonZeroDays, - RealGraph.TweetClicks.Variance, - RealGraph.Weight - ).bind(UserAuthor) - - private[this] val edgeFeatures: Seq[RealGraph.EdgeFeature] = Seq( - RealGraph.AddressBookEmail, - RealGraph.AddressBookInBoth, - RealGraph.AddressBookMutualEdgeEmail, - RealGraph.AddressBookMutualEdgeInBoth, - RealGraph.AddressBookMutualEdgePhone, - RealGraph.AddressBookPhone, - RealGraph.DirectMessages, - RealGraph.DwellTime, - RealGraph.Follow, - RealGraph.InspectedStatuses, - RealGraph.Likes, - RealGraph.LinkClicks, - RealGraph.Mentions, - RealGraph.MutualFollow, - RealGraph.PhotoTags, - RealGraph.ProfileViews, - RealGraph.Retweets, - RealGraph.SmsFollow, - RealGraph.TweetClicks - ) - - val htlDoubleFeatures: Set[Feature[EdgeEntityId[UserId, UserId], Double]] = { - val features = edgeFeatures.flatMap { ef => - Seq(ef.Ewma, ef.Mean, ef.Variance) - } ++ Seq(RealGraph.Weight) - features.toSet - } - - val htlLongFeatures: Set[Feature[EdgeEntityId[UserId, UserId], Long]] = { - val features = edgeFeatures.flatMap { ef => - Seq(ef.DaysSinceLast, ef.ElapsedDays, ef.NonZeroDays) - } - features.toSet - } - - private val edgeFeatureToLegacyName = Map( - RealGraph.AddressBookEmail -> "num_address_book_email", - RealGraph.AddressBookInBoth -> "num_address_book_in_both", - RealGraph.AddressBookMutualEdgeEmail -> "num_address_book_mutual_edge_email", - RealGraph.AddressBookMutualEdgeInBoth -> "num_address_book_mutual_edge_in_both", - RealGraph.AddressBookMutualEdgePhone -> "num_address_book_mutual_edge_phone", - RealGraph.AddressBookPhone -> "num_address_book_phone", - RealGraph.DirectMessages -> "direct_messages", - RealGraph.DwellTime -> "total_dwell_time", - RealGraph.Follow -> "num_follow", - RealGraph.InspectedStatuses -> "num_inspected_tweets", - RealGraph.Likes -> "num_favorites", - RealGraph.LinkClicks -> "num_link_clicks", - RealGraph.Mentions -> "num_mentions", - RealGraph.MutualFollow -> "num_mutual_follow", - RealGraph.PhotoTags -> "num_photo_tags", - RealGraph.ProfileViews -> "num_profile_views", - RealGraph.Retweets -> "num_retweets", - RealGraph.SmsFollow -> "num_sms_follow", - RealGraph.TweetClicks -> "num_tweet_clicks", - ) - - def convertFeatureToLegacyName( - prefix: String, - variance: String = "variance" - ): Map[Feature[EdgeEntityId[UserId, UserId], _ >: Long with Double <: AnyVal], String] = - edgeFeatureToLegacyName.flatMap { - case (k, v) => - Seq( - k.NonZeroDays -> s"${prefix}.${v}.non_zero_days", - k.DaysSinceLast -> s"${prefix}.${v}.days_since_last", - k.ElapsedDays -> s"${prefix}.${v}.elapsed_days", - k.Ewma -> s"${prefix}.${v}.ewma", - k.Mean -> s"${prefix}.${v}.mean", - k.Variance -> s"${prefix}.${v}.${variance}", - ) - } ++ Map( - RealGraph.Weight -> (prefix + ".weight") - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..bf20c172c6327ed297e99057819b6e276f7d254e GIT binary patch literal 39652 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatures.scala deleted file mode 100644 index 4c1915944..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/real_graph/RealGraphDataRecordFeatures.scala +++ /dev/null @@ -1,534 +0,0 @@ -package com.twitter.timelines.prediction.features.real_graph - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.ml.api.Feature._ -import com.twitter.timelines.real_graph.v1.thriftscala.RealGraphEdgeFeature -import scala.collection.JavaConverters._ - - -object RealGraphDataRecordFeatures { - // the source user id - val SRC_ID = new Discrete("realgraph.src_id", Set(UserId).asJava) - // the destination user id - val DST_ID = new Discrete("realgraph.dst_id", Set(UserId).asJava) - // real graph weight - val WEIGHT = new Continuous("realgraph.weight", Set(UsersRealGraphScore).asJava) - // the number of retweets that the source user sent to the destination user - val NUM_RETWEETS_MEAN = - new Continuous("realgraph.num_retweets.mean", Set(PrivateRetweets, PublicRetweets).asJava) - val NUM_RETWEETS_EWMA = - new Continuous("realgraph.num_retweets.ewma", Set(PrivateRetweets, PublicRetweets).asJava) - val NUM_RETWEETS_VARIANCE = - new Continuous("realgraph.num_retweets.variance", Set(PrivateRetweets, PublicRetweets).asJava) - val NUM_RETWEETS_NON_ZERO_DAYS = new Continuous( - "realgraph.num_retweets.non_zero_days", - Set(PrivateRetweets, PublicRetweets).asJava) - val NUM_RETWEETS_ELAPSED_DAYS = new Continuous( - "realgraph.num_retweets.elapsed_days", - Set(PrivateRetweets, PublicRetweets).asJava) - val NUM_RETWEETS_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_retweets.days_since_last", - Set(PrivateRetweets, PublicRetweets).asJava) - val NUM_RETWEETS_IS_MISSING = - new Binary("realgraph.num_retweets.is_missing", Set(PrivateRetweets, PublicRetweets).asJava) - // the number of favories that the source user sent to the destination user - val NUM_FAVORITES_MEAN = - new Continuous("realgraph.num_favorites.mean", Set(PublicLikes, PrivateLikes).asJava) - val NUM_FAVORITES_EWMA = - new Continuous("realgraph.num_favorites.ewma", Set(PublicLikes, PrivateLikes).asJava) - val NUM_FAVORITES_VARIANCE = - new Continuous("realgraph.num_favorites.variance", Set(PublicLikes, PrivateLikes).asJava) - val NUM_FAVORITES_NON_ZERO_DAYS = - new Continuous("realgraph.num_favorites.non_zero_days", Set(PublicLikes, PrivateLikes).asJava) - val NUM_FAVORITES_ELAPSED_DAYS = - new Continuous("realgraph.num_favorites.elapsed_days", Set(PublicLikes, PrivateLikes).asJava) - val NUM_FAVORITES_DAYS_SINCE_LAST = - new Continuous("realgraph.num_favorites.days_since_last", Set(PublicLikes, PrivateLikes).asJava) - val NUM_FAVORITES_IS_MISSING = - new Binary("realgraph.num_favorites.is_missing", Set(PublicLikes, PrivateLikes).asJava) - // the number of mentions that the source user sent to the destination user - val NUM_MENTIONS_MEAN = - new Continuous("realgraph.num_mentions.mean", Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_MENTIONS_EWMA = - new Continuous("realgraph.num_mentions.ewma", Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_MENTIONS_VARIANCE = new Continuous( - "realgraph.num_mentions.variance", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_MENTIONS_NON_ZERO_DAYS = new Continuous( - "realgraph.num_mentions.non_zero_days", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_MENTIONS_ELAPSED_DAYS = new Continuous( - "realgraph.num_mentions.elapsed_days", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_MENTIONS_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_mentions.days_since_last", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_MENTIONS_IS_MISSING = new Binary( - "realgraph.num_mentions.is_missing", - Set(EngagementsPrivate, EngagementsPublic).asJava) - // the number of direct messages that the source user sent to the destination user - val NUM_DIRECT_MESSAGES_MEAN = new Continuous( - "realgraph.num_direct_messages.mean", - Set(DmEntitiesAndMetadata, CountOfDms).asJava) - val NUM_DIRECT_MESSAGES_EWMA = new Continuous( - "realgraph.num_direct_messages.ewma", - Set(DmEntitiesAndMetadata, CountOfDms).asJava) - val NUM_DIRECT_MESSAGES_VARIANCE = new Continuous( - "realgraph.num_direct_messages.variance", - Set(DmEntitiesAndMetadata, CountOfDms).asJava) - val NUM_DIRECT_MESSAGES_NON_ZERO_DAYS = new Continuous( - "realgraph.num_direct_messages.non_zero_days", - Set(DmEntitiesAndMetadata, CountOfDms).asJava - ) - val NUM_DIRECT_MESSAGES_ELAPSED_DAYS = new Continuous( - "realgraph.num_direct_messages.elapsed_days", - Set(DmEntitiesAndMetadata, CountOfDms).asJava - ) - val NUM_DIRECT_MESSAGES_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_direct_messages.days_since_last", - Set(DmEntitiesAndMetadata, CountOfDms).asJava - ) - val NUM_DIRECT_MESSAGES_IS_MISSING = new Binary( - "realgraph.num_direct_messages.is_missing", - Set(DmEntitiesAndMetadata, CountOfDms).asJava) - // the number of tweet clicks that the source user sent to the destination user - val NUM_TWEET_CLICKS_MEAN = - new Continuous("realgraph.num_tweet_clicks.mean", Set(TweetsClicked).asJava) - val NUM_TWEET_CLICKS_EWMA = - new Continuous("realgraph.num_tweet_clicks.ewma", Set(TweetsClicked).asJava) - val NUM_TWEET_CLICKS_VARIANCE = - new Continuous("realgraph.num_tweet_clicks.variance", Set(TweetsClicked).asJava) - val NUM_TWEET_CLICKS_NON_ZERO_DAYS = - new Continuous("realgraph.num_tweet_clicks.non_zero_days", Set(TweetsClicked).asJava) - val NUM_TWEET_CLICKS_ELAPSED_DAYS = - new Continuous("realgraph.num_tweet_clicks.elapsed_days", Set(TweetsClicked).asJava) - val NUM_TWEET_CLICKS_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_tweet_clicks.days_since_last", - Set(TweetsClicked).asJava - ) - val NUM_TWEET_CLICKS_IS_MISSING = - new Binary("realgraph.num_tweet_clicks.is_missing", Set(TweetsClicked).asJava) - // the number of link clicks that the source user sent to the destination user - val NUM_LINK_CLICKS_MEAN = - new Continuous("realgraph.num_link_clicks.mean", Set(CountOfTweetEntitiesClicked).asJava) - val NUM_LINK_CLICKS_EWMA = - new Continuous("realgraph.num_link_clicks.ewma", Set(CountOfTweetEntitiesClicked).asJava) - val NUM_LINK_CLICKS_VARIANCE = - new Continuous("realgraph.num_link_clicks.variance", Set(CountOfTweetEntitiesClicked).asJava) - val NUM_LINK_CLICKS_NON_ZERO_DAYS = new Continuous( - "realgraph.num_link_clicks.non_zero_days", - Set(CountOfTweetEntitiesClicked).asJava) - val NUM_LINK_CLICKS_ELAPSED_DAYS = new Continuous( - "realgraph.num_link_clicks.elapsed_days", - Set(CountOfTweetEntitiesClicked).asJava) - val NUM_LINK_CLICKS_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_link_clicks.days_since_last", - Set(CountOfTweetEntitiesClicked).asJava) - val NUM_LINK_CLICKS_IS_MISSING = - new Binary("realgraph.num_link_clicks.is_missing", Set(CountOfTweetEntitiesClicked).asJava) - // the number of profile views that the source user sent to the destination user - val NUM_PROFILE_VIEWS_MEAN = - new Continuous("realgraph.num_profile_views.mean", Set(ProfilesViewed).asJava) - val NUM_PROFILE_VIEWS_EWMA = - new Continuous("realgraph.num_profile_views.ewma", Set(ProfilesViewed).asJava) - val NUM_PROFILE_VIEWS_VARIANCE = - new Continuous("realgraph.num_profile_views.variance", Set(ProfilesViewed).asJava) - val NUM_PROFILE_VIEWS_NON_ZERO_DAYS = - new Continuous("realgraph.num_profile_views.non_zero_days", Set(ProfilesViewed).asJava) - val NUM_PROFILE_VIEWS_ELAPSED_DAYS = - new Continuous("realgraph.num_profile_views.elapsed_days", Set(ProfilesViewed).asJava) - val NUM_PROFILE_VIEWS_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_profile_views.days_since_last", - Set(ProfilesViewed).asJava - ) - val NUM_PROFILE_VIEWS_IS_MISSING = - new Binary("realgraph.num_profile_views.is_missing", Set(ProfilesViewed).asJava) - // the total dwell time the source user spends on the target user's tweets - val TOTAL_DWELL_TIME_MEAN = - new Continuous("realgraph.total_dwell_time.mean", Set(CountOfImpression).asJava) - val TOTAL_DWELL_TIME_EWMA = - new Continuous("realgraph.total_dwell_time.ewma", Set(CountOfImpression).asJava) - val TOTAL_DWELL_TIME_VARIANCE = - new Continuous("realgraph.total_dwell_time.variance", Set(CountOfImpression).asJava) - val TOTAL_DWELL_TIME_NON_ZERO_DAYS = - new Continuous("realgraph.total_dwell_time.non_zero_days", Set(CountOfImpression).asJava) - val TOTAL_DWELL_TIME_ELAPSED_DAYS = - new Continuous("realgraph.total_dwell_time.elapsed_days", Set(CountOfImpression).asJava) - val TOTAL_DWELL_TIME_DAYS_SINCE_LAST = new Continuous( - "realgraph.total_dwell_time.days_since_last", - Set(CountOfImpression).asJava - ) - val TOTAL_DWELL_TIME_IS_MISSING = - new Binary("realgraph.total_dwell_time.is_missing", Set(CountOfImpression).asJava) - // the number of the target user's tweets that the source user has inspected - val NUM_INSPECTED_TWEETS_MEAN = - new Continuous("realgraph.num_inspected_tweets.mean", Set(CountOfImpression).asJava) - val NUM_INSPECTED_TWEETS_EWMA = - new Continuous("realgraph.num_inspected_tweets.ewma", Set(CountOfImpression).asJava) - val NUM_INSPECTED_TWEETS_VARIANCE = - new Continuous("realgraph.num_inspected_tweets.variance", Set(CountOfImpression).asJava) - val NUM_INSPECTED_TWEETS_NON_ZERO_DAYS = new Continuous( - "realgraph.num_inspected_tweets.non_zero_days", - Set(CountOfImpression).asJava - ) - val NUM_INSPECTED_TWEETS_ELAPSED_DAYS = new Continuous( - "realgraph.num_inspected_tweets.elapsed_days", - Set(CountOfImpression).asJava - ) - val NUM_INSPECTED_TWEETS_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_inspected_tweets.days_since_last", - Set(CountOfImpression).asJava - ) - val NUM_INSPECTED_TWEETS_IS_MISSING = - new Binary("realgraph.num_inspected_tweets.is_missing", Set(CountOfImpression).asJava) - // the number of photos in which the source user has tagged the target user - val NUM_PHOTO_TAGS_MEAN = new Continuous( - "realgraph.num_photo_tags.mean", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_PHOTO_TAGS_EWMA = new Continuous( - "realgraph.num_photo_tags.ewma", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_PHOTO_TAGS_VARIANCE = new Continuous( - "realgraph.num_photo_tags.variance", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_PHOTO_TAGS_NON_ZERO_DAYS = new Continuous( - "realgraph.num_photo_tags.non_zero_days", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_PHOTO_TAGS_ELAPSED_DAYS = new Continuous( - "realgraph.num_photo_tags.elapsed_days", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_PHOTO_TAGS_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_photo_tags.days_since_last", - Set(EngagementsPrivate, EngagementsPublic).asJava) - val NUM_PHOTO_TAGS_IS_MISSING = new Binary( - "realgraph.num_photo_tags.is_missing", - Set(EngagementsPrivate, EngagementsPublic).asJava) - - val NUM_FOLLOW_MEAN = new Continuous( - "realgraph.num_follow.mean", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_FOLLOW_EWMA = new Continuous( - "realgraph.num_follow.ewma", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_FOLLOW_VARIANCE = new Continuous( - "realgraph.num_follow.variance", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_FOLLOW_NON_ZERO_DAYS = new Continuous( - "realgraph.num_follow.non_zero_days", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_FOLLOW_ELAPSED_DAYS = new Continuous( - "realgraph.num_follow.elapsed_days", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_FOLLOW_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_follow.days_since_last", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_FOLLOW_IS_MISSING = new Binary( - "realgraph.num_follow.is_missing", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - // the number of blocks that the source user sent to the destination user - val NUM_BLOCKS_MEAN = - new Continuous("realgraph.num_blocks.mean", Set(CountOfBlocks).asJava) - val NUM_BLOCKS_EWMA = - new Continuous("realgraph.num_blocks.ewma", Set(CountOfBlocks).asJava) - val NUM_BLOCKS_VARIANCE = - new Continuous("realgraph.num_blocks.variance", Set(CountOfBlocks).asJava) - val NUM_BLOCKS_NON_ZERO_DAYS = - new Continuous("realgraph.num_blocks.non_zero_days", Set(CountOfBlocks).asJava) - val NUM_BLOCKS_ELAPSED_DAYS = - new Continuous("realgraph.num_blocks.elapsed_days", Set(CountOfBlocks).asJava) - val NUM_BLOCKS_DAYS_SINCE_LAST = - new Continuous("realgraph.num_blocks.days_since_last", Set(CountOfBlocks).asJava) - val NUM_BLOCKS_IS_MISSING = - new Binary("realgraph.num_blocks.is_missing", Set(CountOfBlocks).asJava) - // the number of mutes that the source user sent to the destination user - val NUM_MUTES_MEAN = - new Continuous("realgraph.num_mutes.mean", Set(CountOfMutes).asJava) - val NUM_MUTES_EWMA = - new Continuous("realgraph.num_mutes.ewma", Set(CountOfMutes).asJava) - val NUM_MUTES_VARIANCE = - new Continuous("realgraph.num_mutes.variance", Set(CountOfMutes).asJava) - val NUM_MUTES_NON_ZERO_DAYS = - new Continuous("realgraph.num_mutes.non_zero_days", Set(CountOfMutes).asJava) - val NUM_MUTES_ELAPSED_DAYS = - new Continuous("realgraph.num_mutes.elapsed_days", Set(CountOfMutes).asJava) - val NUM_MUTES_DAYS_SINCE_LAST = - new Continuous("realgraph.num_mutes.days_since_last", Set(CountOfMutes).asJava) - val NUM_MUTES_IS_MISSING = - new Binary("realgraph.num_mutes.is_missing", Set(CountOfMutes).asJava) - // the number of report as abuses that the source user sent to the destination user - val NUM_REPORTS_AS_ABUSES_MEAN = - new Continuous("realgraph.num_report_as_abuses.mean", Set(CountOfAbuseReports).asJava) - val NUM_REPORTS_AS_ABUSES_EWMA = - new Continuous("realgraph.num_report_as_abuses.ewma", Set(CountOfAbuseReports).asJava) - val NUM_REPORTS_AS_ABUSES_VARIANCE = - new Continuous("realgraph.num_report_as_abuses.variance", Set(CountOfAbuseReports).asJava) - val NUM_REPORTS_AS_ABUSES_NON_ZERO_DAYS = - new Continuous("realgraph.num_report_as_abuses.non_zero_days", Set(CountOfAbuseReports).asJava) - val NUM_REPORTS_AS_ABUSES_ELAPSED_DAYS = - new Continuous("realgraph.num_report_as_abuses.elapsed_days", Set(CountOfAbuseReports).asJava) - val NUM_REPORTS_AS_ABUSES_DAYS_SINCE_LAST = - new Continuous( - "realgraph.num_report_as_abuses.days_since_last", - Set(CountOfAbuseReports).asJava) - val NUM_REPORTS_AS_ABUSES_IS_MISSING = - new Binary("realgraph.num_report_as_abuses.is_missing", Set(CountOfAbuseReports).asJava) - // the number of report as spams that the source user sent to the destination user - val NUM_REPORTS_AS_SPAMS_MEAN = - new Continuous( - "realgraph.num_report_as_spams.mean", - Set(CountOfAbuseReports, SafetyRelationships).asJava) - val NUM_REPORTS_AS_SPAMS_EWMA = - new Continuous( - "realgraph.num_report_as_spams.ewma", - Set(CountOfAbuseReports, SafetyRelationships).asJava) - val NUM_REPORTS_AS_SPAMS_VARIANCE = - new Continuous( - "realgraph.num_report_as_spams.variance", - Set(CountOfAbuseReports, SafetyRelationships).asJava) - val NUM_REPORTS_AS_SPAMS_NON_ZERO_DAYS = - new Continuous( - "realgraph.num_report_as_spams.non_zero_days", - Set(CountOfAbuseReports, SafetyRelationships).asJava) - val NUM_REPORTS_AS_SPAMS_ELAPSED_DAYS = - new Continuous( - "realgraph.num_report_as_spams.elapsed_days", - Set(CountOfAbuseReports, SafetyRelationships).asJava) - val NUM_REPORTS_AS_SPAMS_DAYS_SINCE_LAST = - new Continuous( - "realgraph.num_report_as_spams.days_since_last", - Set(CountOfAbuseReports, SafetyRelationships).asJava) - val NUM_REPORTS_AS_SPAMS_IS_MISSING = - new Binary( - "realgraph.num_report_as_spams.is_missing", - Set(CountOfAbuseReports, SafetyRelationships).asJava) - - val NUM_MUTUAL_FOLLOW_MEAN = new Continuous( - "realgraph.num_mutual_follow.mean", - Set( - Follow, - PrivateAccountsFollowedBy, - PublicAccountsFollowedBy, - PrivateAccountsFollowing, - PublicAccountsFollowing).asJava - ) - val NUM_MUTUAL_FOLLOW_EWMA = new Continuous( - "realgraph.num_mutual_follow.ewma", - Set( - Follow, - PrivateAccountsFollowedBy, - PublicAccountsFollowedBy, - PrivateAccountsFollowing, - PublicAccountsFollowing).asJava - ) - val NUM_MUTUAL_FOLLOW_VARIANCE = new Continuous( - "realgraph.num_mutual_follow.variance", - Set( - Follow, - PrivateAccountsFollowedBy, - PublicAccountsFollowedBy, - PrivateAccountsFollowing, - PublicAccountsFollowing).asJava - ) - val NUM_MUTUAL_FOLLOW_NON_ZERO_DAYS = new Continuous( - "realgraph.num_mutual_follow.non_zero_days", - Set( - Follow, - PrivateAccountsFollowedBy, - PublicAccountsFollowedBy, - PrivateAccountsFollowing, - PublicAccountsFollowing).asJava - ) - val NUM_MUTUAL_FOLLOW_ELAPSED_DAYS = new Continuous( - "realgraph.num_mutual_follow.elapsed_days", - Set( - Follow, - PrivateAccountsFollowedBy, - PublicAccountsFollowedBy, - PrivateAccountsFollowing, - PublicAccountsFollowing).asJava - ) - val NUM_MUTUAL_FOLLOW_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_mutual_follow.days_since_last", - Set( - Follow, - PrivateAccountsFollowedBy, - PublicAccountsFollowedBy, - PrivateAccountsFollowing, - PublicAccountsFollowing).asJava - ) - val NUM_MUTUAL_FOLLOW_IS_MISSING = new Binary( - "realgraph.num_mutual_follow.is_missing", - Set( - Follow, - PrivateAccountsFollowedBy, - PublicAccountsFollowedBy, - PrivateAccountsFollowing, - PublicAccountsFollowing).asJava - ) - - val NUM_SMS_FOLLOW_MEAN = new Continuous( - "realgraph.num_sms_follow.mean", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_SMS_FOLLOW_EWMA = new Continuous( - "realgraph.num_sms_follow.ewma", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_SMS_FOLLOW_VARIANCE = new Continuous( - "realgraph.num_sms_follow.variance", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_SMS_FOLLOW_NON_ZERO_DAYS = new Continuous( - "realgraph.num_sms_follow.non_zero_days", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_SMS_FOLLOW_ELAPSED_DAYS = new Continuous( - "realgraph.num_sms_follow.elapsed_days", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_SMS_FOLLOW_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_sms_follow.days_since_last", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - val NUM_SMS_FOLLOW_IS_MISSING = new Binary( - "realgraph.num_sms_follow.is_missing", - Set(Follow, PrivateAccountsFollowedBy, PublicAccountsFollowedBy).asJava) - - val NUM_ADDRESS_BOOK_EMAIL_MEAN = - new Continuous("realgraph.num_address_book_email.mean", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_EMAIL_EWMA = - new Continuous("realgraph.num_address_book_email.ewma", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_EMAIL_VARIANCE = - new Continuous("realgraph.num_address_book_email.variance", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_EMAIL_NON_ZERO_DAYS = new Continuous( - "realgraph.num_address_book_email.non_zero_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_EMAIL_ELAPSED_DAYS = new Continuous( - "realgraph.num_address_book_email.elapsed_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_EMAIL_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_address_book_email.days_since_last", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_EMAIL_IS_MISSING = - new Binary("realgraph.num_address_book_email.is_missing", Set(AddressBook).asJava) - - val NUM_ADDRESS_BOOK_IN_BOTH_MEAN = - new Continuous("realgraph.num_address_book_in_both.mean", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_IN_BOTH_EWMA = - new Continuous("realgraph.num_address_book_in_both.ewma", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_IN_BOTH_VARIANCE = new Continuous( - "realgraph.num_address_book_in_both.variance", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_IN_BOTH_NON_ZERO_DAYS = new Continuous( - "realgraph.num_address_book_in_both.non_zero_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_IN_BOTH_ELAPSED_DAYS = new Continuous( - "realgraph.num_address_book_in_both.elapsed_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_IN_BOTH_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_address_book_in_both.days_since_last", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_IN_BOTH_IS_MISSING = new Binary( - "realgraph.num_address_book_in_both.is_missing", - Set(AddressBook).asJava - ) - - val NUM_ADDRESS_BOOK_PHONE_MEAN = - new Continuous("realgraph.num_address_book_phone.mean", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_PHONE_EWMA = - new Continuous("realgraph.num_address_book_phone.ewma", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_PHONE_VARIANCE = - new Continuous("realgraph.num_address_book_phone.variance", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_PHONE_NON_ZERO_DAYS = new Continuous( - "realgraph.num_address_book_phone.non_zero_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_PHONE_ELAPSED_DAYS = new Continuous( - "realgraph.num_address_book_phone.elapsed_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_PHONE_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_address_book_phone.days_since_last", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_PHONE_IS_MISSING = - new Binary("realgraph.num_address_book_phone.is_missing", Set(AddressBook).asJava) - - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_EMAIL_MEAN = - new Continuous("realgraph.num_address_book_mutual_edge_email.mean", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_EMAIL_EWMA = - new Continuous("realgraph.num_address_book_mutual_edge_email.ewma", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_EMAIL_VARIANCE = - new Continuous("realgraph.num_address_book_mutual_edge_email.variance", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_EMAIL_NON_ZERO_DAYS = new Continuous( - "realgraph.num_address_book_mutual_edge_email.non_zero_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_EMAIL_ELAPSED_DAYS = new Continuous( - "realgraph.num_address_book_mutual_edge_email.elapsed_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_EMAIL_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_address_book_mutual_edge_email.days_since_last", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_EMAIL_IS_MISSING = - new Binary("realgraph.num_address_book_mutual_edge_email.is_missing", Set(AddressBook).asJava) - - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_IN_BOTH_MEAN = - new Continuous("realgraph.num_address_book_mutual_edge_in_both.mean", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_IN_BOTH_EWMA = - new Continuous("realgraph.num_address_book_mutual_edge_in_both.ewma", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_IN_BOTH_VARIANCE = new Continuous( - "realgraph.num_address_book_mutual_edge_in_both.variance", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_IN_BOTH_NON_ZERO_DAYS = new Continuous( - "realgraph.num_address_book_mutual_edge_in_both.non_zero_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_IN_BOTH_ELAPSED_DAYS = new Continuous( - "realgraph.num_address_book_mutual_edge_in_both.elapsed_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_IN_BOTH_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_address_book_mutual_edge_in_both.days_since_last", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_IN_BOTH_IS_MISSING = new Binary( - "realgraph.num_address_book_mutual_edge_in_both.is_missing", - Set(AddressBook).asJava - ) - - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_PHONE_MEAN = - new Continuous("realgraph.num_address_book_mutual_edge_phone.mean", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_PHONE_EWMA = - new Continuous("realgraph.num_address_book_mutual_edge_phone.ewma", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_PHONE_VARIANCE = - new Continuous("realgraph.num_address_book_mutual_edge_phone.variance", Set(AddressBook).asJava) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_PHONE_NON_ZERO_DAYS = new Continuous( - "realgraph.num_address_book_mutual_edge_phone.non_zero_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_PHONE_ELAPSED_DAYS = new Continuous( - "realgraph.num_address_book_mutual_edge_phone.elapsed_days", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_PHONE_DAYS_SINCE_LAST = new Continuous( - "realgraph.num_address_book_mutual_edge_phone.days_since_last", - Set(AddressBook).asJava - ) - val NUM_ADDRESS_BOOK_MUTUAL_EDGE_PHONE_IS_MISSING = - new Binary("realgraph.num_address_book_mutual_edge_phone.is_missing", Set(AddressBook).asJava) -} - -case class RealGraphEdgeDataRecordFeatures( - edgeFeatureOpt: Option[RealGraphEdgeFeature], - meanFeature: Continuous, - ewmaFeature: Continuous, - varianceFeature: Continuous, - nonZeroDaysFeature: Continuous, - elapsedDaysFeature: Continuous, - daysSinceLastFeature: Continuous, - isMissingFeature: Binary) diff --git a/src/scala/com/twitter/timelines/prediction/features/recap/BUILD b/src/scala/com/twitter/timelines/prediction/features/recap/BUILD deleted file mode 100644 index 6fc497bf3..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/recap/BUILD +++ /dev/null @@ -1,9 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/recap/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/recap/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e4b994100d99aa00c38c23684be514ad3f0b617 GIT binary patch literal 36780 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 U%?ivxpj;)$kO<5krrjVO022kYng9R* literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/recap/RecapFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/recap/RecapFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..48a7767d66b8b0a5f5abbce10540e2285dc0a83c GIT binary patch literal 44421 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 RecapFeatures.PREDICTED_IS_FAVORITED.getFeatureId, - RecapFeatures.IS_REPLIED.getFeatureName -> RecapFeatures.PREDICTED_IS_REPLIED.getFeatureId, - RecapFeatures.IS_RETWEETED.getFeatureName -> RecapFeatures.PREDICTED_IS_RETWEETED.getFeatureId, - RecapFeatures.IS_GOOD_CLICKED_CONVO_DESC_V1.getFeatureName -> RecapFeatures.PREDICTED_IS_GOOD_CLICKED_V1.getFeatureId, - RecapFeatures.IS_GOOD_CLICKED_CONVO_DESC_V2.getFeatureName -> RecapFeatures.PREDICTED_IS_GOOD_CLICKED_V2.getFeatureId, -// RecapFeatures.IS_NEGATIVE_FEEDBACK_V2.getFeatureName -> RecapFeatures.PREDICTED_IS_NEGATIVE_FEEDBACK_V2.getFeatureId, - RecapFeatures.IS_PROFILE_CLICKED_AND_PROFILE_ENGAGED.getFeatureName -> RecapFeatures.PREDICTED_IS_PROFILE_CLICKED_AND_PROFILE_ENGAGED.getFeatureId, - RecapFeatures.IS_REPLIED_REPLY_ENGAGED_BY_AUTHOR.getFeatureName -> RecapFeatures.PREDICTED_IS_REPLIED_REPLY_ENGAGED_BY_AUTHOR.getFeatureId - ) - - // This needs to be updated if an engagement model is added or removed from prediction service. - val labelFeatureIdToScoreFeatureIdsMap: Map[Long, Long] = Map( - RecapFeatures.IS_FAVORITED.getFeatureId -> RecapFeatures.PREDICTED_IS_FAVORITED.getFeatureId, - RecapFeatures.IS_REPLIED.getFeatureId -> RecapFeatures.PREDICTED_IS_REPLIED.getFeatureId, - RecapFeatures.IS_RETWEETED.getFeatureId -> RecapFeatures.PREDICTED_IS_RETWEETED.getFeatureId, - RecapFeatures.IS_GOOD_CLICKED_CONVO_DESC_V1.getFeatureId -> RecapFeatures.PREDICTED_IS_GOOD_CLICKED_V1.getFeatureId, - RecapFeatures.IS_GOOD_CLICKED_CONVO_DESC_V2.getFeatureId -> RecapFeatures.PREDICTED_IS_GOOD_CLICKED_V2.getFeatureId, - // RecapFeatures.IS_NEGATIVE_FEEDBACK_V2.getFeatureName -> RecapFeatures.PREDICTED_IS_NEGATIVE_FEEDBACK_V2.getFeatureId, - RecapFeatures.IS_PROFILE_CLICKED_AND_PROFILE_ENGAGED.getFeatureId -> RecapFeatures.PREDICTED_IS_PROFILE_CLICKED_AND_PROFILE_ENGAGED.getFeatureId, - RecapFeatures.IS_REPLIED_REPLY_ENGAGED_BY_AUTHOR.getFeatureId -> RecapFeatures.PREDICTED_IS_REPLIED_REPLY_ENGAGED_BY_AUTHOR.getFeatureId - ) - - val labelFeatureNames: Seq[String] = scoreFeatureIdsMap.keys.toSeq -} diff --git a/src/scala/com/twitter/timelines/prediction/features/request_context/BUILD b/src/scala/com/twitter/timelines/prediction/features/request_context/BUILD deleted file mode 100644 index 6fc497bf3..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/request_context/BUILD +++ /dev/null @@ -1,9 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/request_context/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/request_context/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..07d639e5ec8293a4db91ebc27f92f335c074b3d6 GIT binary patch literal 36780 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 U%?ivxpj;)$kO<5krrjVO01zXzyZ`_I literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/request_context/RequestContextFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/request_context/RequestContextFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..a7fad92aaffbf24fd1c5f68e8055aef7fa9a5ba7 GIT binary patch literal 37639 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/request_context/RequestContextFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/request_context/RequestContextFeatures.scala deleted file mode 100644 index a7dd28852..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/request_context/RequestContextFeatures.scala +++ /dev/null @@ -1,57 +0,0 @@ -package com.twitter.timelines.prediction.features.request_context - -import com.twitter.ml.api.FeatureContext -import com.twitter.ml.api.Feature._ -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import scala.collection.JavaConverters._ - -object RequestContextFeatures { - val COUNTRY_CODE = - new Text("request_context.country_code", Set(PrivateCountryOrRegion, InferredCountry).asJava) - val LANGUAGE_CODE = new Text( - "request_context.language_code", - Set(GeneralSettings, ProvidedLanguage, InferredLanguage).asJava) - val REQUEST_PROVENANCE = new Text("request_context.request_provenance", Set(AppUsage).asJava) - val DISPLAY_WIDTH = new Continuous("request_context.display_width", Set(OtherDeviceInfo).asJava) - val DISPLAY_HEIGHT = new Continuous("request_context.display_height", Set(OtherDeviceInfo).asJava) - val DISPLAY_DPI = new Continuous("request_context.display_dpi", Set(OtherDeviceInfo).asJava) - - // the following features are not Continuous Features because for e.g. continuity between - // 23 and 0 hours cannot be handled that way. instead, we will treat each slice of hours/days - // independently, like a set of sparse binary features. - val TIMESTAMP_GMT_HOUR = - new Discrete("request_context.timestamp_gmt_hour", Set(PrivateTimestamp).asJava) - val TIMESTAMP_GMT_DOW = - new Discrete("request_context.timestamp_gmt_dow", Set(PrivateTimestamp).asJava) - - val IS_GET_INITIAL = new Binary("request_context.is_get_initial") - val IS_GET_MIDDLE = new Binary("request_context.is_get_middle") - val IS_GET_NEWER = new Binary("request_context.is_get_newer") - val IS_GET_OLDER = new Binary("request_context.is_get_older") - - // the following features are not Binary Features because the source field is Option[Boolean], - // and we want to distinguish Some(false) from None. None will be converted to -1. - val IS_POLLING = new Discrete("request_context.is_polling") - val IS_SESSION_START = new Discrete("request_context.is_session_start") - - // Helps distinguish requests from "home" vs "home_latest" (reverse chron home view). - val TIMELINE_KIND = new Text("request_context.timeline_kind") - - val featureContext = new FeatureContext( - COUNTRY_CODE, - LANGUAGE_CODE, - REQUEST_PROVENANCE, - DISPLAY_WIDTH, - DISPLAY_HEIGHT, - DISPLAY_DPI, - TIMESTAMP_GMT_HOUR, - TIMESTAMP_GMT_DOW, - IS_GET_INITIAL, - IS_GET_MIDDLE, - IS_GET_NEWER, - IS_GET_OLDER, - IS_POLLING, - IS_SESSION_START, - TIMELINE_KIND - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/BUILD b/src/scala/com/twitter/timelines/prediction/features/simcluster/BUILD deleted file mode 100644 index ec194353b..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/simcluster/BUILD +++ /dev/null @@ -1,13 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - "src/thrift/com/twitter/timelines/suggests/common:record-scala", - "timelines/data_processing/ml_util/aggregation_framework:common_types", - "timelines/data_processing/ml_util/aggregation_framework/conversion:for-timelines", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/simcluster/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..3b4f7db569c3187c4d26724103ec90bc4e2674ee GIT binary patch literal 36877 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 NAVVTBdra#F@c<31$>jh5 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..6032098fb4c9ff31f4d76fea6cd1d7a1f32d1eba GIT binary patch literal 37648 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 <=)Z4NTU-B_Po0Qgmg(FRa%Cp2Y_*Q!V zl_YHmG>vj*L&WFIy4(Z;=H{l|HClvSZs}!6teDp_&2$4@Za%aKc4bO+l1qNRptvl$ ztz(zH@>NhSZNA|NQ=A=9e16Q+OzXI_F0{zmuLzdCJudrs?KlS*a-w&7~aKiT74IM0$G z#}aI^`}6K}Y`utK*d9j^Gi=_G*vOIbpZ^pLa;Ts&^tmMi|{QTx7VbntIr z*PipHf0+EqUU}O!)HdI+_Aiq%I>()bVSkzoN&0P)8~(S+PTT)KliYIF-P7%d?3F%1 zljud3@4PlyEd+%5*qFF{(dkBJln(g7H_CNk>j!(Qr$?YI8&nM7Hxfw=7*d#;+ER=m zi*$$09)mbzcc#}BpSBH*93S0$tY(yWz{GmBW>MyKCU|sUz+vD#S4>e};XGDa1_NDD z02nZkWod%hB>o=r7JX2`enit2fsoC?JZ!QVFdca`_vL$^H&%a)?c1WqfS_zNESAD|U-)JQ z>_Xl(>t!8HV)f}SQR)kKs&RDmoDL@r!e98v24RQGJp_!}Oy$BNvHcRMd;?JywzUFv zB-SGaZZq6K8KuyeM&OTO^%YOxW{o;Pu5tR{Wtq~UuSqN#$;baAE=uILIGmsh(M#)* zQR5w+Uo}K5{e%rZpu~{BKcMS?A5cv`p!8BMuK^7?T|1D4r=tWz@XRqJ9XzEA7DIot6QMcM1bN;&0Oe@z3Jf zX6yb{yqZp%u5Xho3Cw>fgzJYtIKkf?$D^9;0k<+#p~@+BqlWP)#YY2EqlJdti63JT zAr`k+l^#$!_44+^jsmo+egdue(C?aW&})G&Us&7(hY)l>5D+@rHzF%wS2G`uxafI{ z1AxF{?y`D$GmhH8tdk)r92Ux>*-YkCvEVedSkMWV1^ze;Yp+^kvQT+`hj#|@Gh@cZ zRmQuW@3I}~f{*GO!qJ9zlkit6X6h0Fh1;4~AO6MsKHQ7YXu5TWVylfT`%bK;spj6h zjvlxb_^Z%!)NQh^;waS6^W2re^k=fEaMDd2gJ)Zg1)gl$PoOdIF0oIIcD&c+526a4 z4zMiUNX*@XhV1s-s8%AW**!TqlC+EcqEAJtF>uxiq`Xx&8i{2No_#Ocp9AK=uHh-W zjy(Gmq$j39>}4jZBP59rLrk#8(>iyXd^5OaFkfFi zI)YN!Ehay-0BNB(T$Uh1xfZL9;JSY8!BRM}J-fE)w5l-{kx#Y#u@sKsPmVX zp54SAt^aP-bhgJYWo)*}=8=~*At~X%>SqsKs&`Vv+I{uvePQc8ZyuVZ)IejsG0^F> z1gS(->o0O6ZSxr>7!B`3a*pXxvYaxh$$gM~qdj*YCG=O$gA1tz?Qn>Jf!JnzG2^Td zTvW3Fe+eX?Vlt3Sm6M-OWp?881g$>K40&qX)sqr3FH#&8xW-!}j|v7vz_-vl+6u#@ z@Oh=>Wi*?RdPNHSW%31!ah%_^D%so;Ya0V3LJ5&7e!ylfnUrTQiBSlCLQ&m2aSN+X zVsrQ+@^lC-fcc10bh9yvzKWB>n%%Vp7)xBnJ1Q2X8=)I zOgZKY?cG^f_M|kV&?i*YixZFD>L_$(=icYvf?rT5Z#Q_HfPw@5BRC+t6jJC3+Qee!#fEC-mm_}ny4uN34 z+}!%86m@KI3t_&T}%c30UR{|=aZ5!Te|ZRQV3B6 z0`mo@+V!==Q}3edQA7b!D3a5BRi&_=MHo`ZyK_5{rkZOCII05g^MgmxfGG#)y0&!3 z;`kH7Ed*XJIIp}67Y1Yx{i~V(Yi(TeAB~5!sK@q@fc4D*ICt&+7CcMIS0 zIBX1D4b#TQ9;5>F;Op`1tehHHiDI`JtjNab{fU_1RhL(@53Fs#4n!}@)CdKNJaI<^ z@rL8C9y2CZVw^1~gyu~pW;4JwDe;!5AG=}9oA6~(;wn6Ibh#`fw?2Pe8_00)uo^o4 zIXXVJU~lveckd-*pTlw;{`esTNbe=ql!`s@jsF0msQreU=M8i;SK)+ykAtomZO`SN ze>@~NlAvt-j$8Il%f%xr#4v2MD{3@f7hl7Q+?}nuJQcToy~yu({Swg*B-~q={|(@v z@EhPb><<9@d)I({h~aja;nN<%=#_0Z-ii!)`wsKKNH7cDtT4QwotDeHAISKCPpO@L z`z>Rte*1&{IB@p(UMS$bmx8?xyIU21DbNX=9UyQ5^V@NQw;m2bx8TL*g6VbGKb&i}f#G&{__(@*V?-FlO2cdNLrcXcCP|Vr z(SEGl5s@kKxcF8$si=hO>y(yD8}+Jq5h3r$u^r`;ib3Liy3yjy%@NgAI$+bjIb1L3 z(F9*^z!cQOvOYbUQc|`eUv@&9JA$QM z1=@i{jWJop&hAr-ZdFPYhoRw~39lA-RNN$0L@<+M^{G?csvDtO*F_~7U4n(#;7}32 zI@CGfQ^f>?Iwf$uOd8EoY)}eIvYZ$T2s?l5U~Czjkgtf;)PmMrb+cihzr)2be-}44 zL;J~5yrFBT$GAK`hRe)c%bHo?KQ#6->&0pTU^kTuwXI`i`W9vJOJb!$heDlldMy0a z*1ZB@>o8gK11sJ5ZPl2pFj8XD!PC4sRHIfYwyh=z9Xd{uX6jUh4aOC#ODDs+VvSRU zEU`;il5=8G)XU|Fc{cKhO}=!6ENSOqVtP6nW6Ft{86wU%%~bg%VH2~glXa&!r1sPL zy5J*swo4rb3$tT{q7}4n!-hMV{$ahuY&f7VjMIh?IhaAcBcz-_m%TqG41eze8cTo0 zhfJ~HXh|v{6!9SpX{|V=EOQV*E8nK{e*YI0Gmr`=@;4Q8#Gvs`?KGDO&?f6QcV;3F z8{?5SwI_Y)tRzf6v1`o_9U|EA;82w6MF|`;np({F89eQ5 zP(a3nB*^Q*NGEyT6ZNp9u$sCb;*^4z5eC6?)#Fokc?Ow+Ii;6H+l})4g~ME0l{w9& zfN7h%FMS(x?V1abNlsjeBK*O6N6YO>;#0Z@8pCarK|zplTH>goLpfr%M>gq$#7~$L zs+@1VoUHKQ`iN%n8prK0!ePtsaEhlLgIt*?V`q?KXS_aY2f#w0!%(8g#x|8$c!Cy_ z`Pm8gra$K!Qu~xUiw4J6rCFAM07|75bFme3gE_+>Fkxs>REbN7eS54?0wC`+&?jLxXG4PrebbEu`(`g4<0S5>JMnu&t1~;+c|wJ*^KyM zl&+0p!5fHXIik79WFn9OaB0GjOc#_HnT|jaw5mAnpcX=q*Xk!ha1>F3bBdr_2Z1@F zOgW zn4es-i*v!ePIyFu^@W46n$YhNX;-EO(rZtOCa|dftpXnTPZhyE*97wAO6pZs&Xoa2 z3OtCqsm|iF(_i zY(!Ji_YS}$rm3pBNkT624;Mx~7a&+C52&)%JXL;Nmwb*Qq73|@G4l@6i80dyvKJ+q zD|~A{@H&A=5nMKbi_+b)Cx-2R~(N zkrglle;YUNCp}zJ%a0QUM~-l{`NE7hy#imM1q4$53kdT!kj}q>Y<~kS_)c{CNaem+ zEWyx3ZkC!w@Y`U={(-<>4!pNGFxjBf0N?wODpRk*rb@zHWX1+zz|bs&V75w1?L(-p(px!l~*;5xM3Io?ovx5xWT8KbzI&cFsPIOdqgk9MW5JX-eER`!? zkkh1AA^^-oEq)^T(}5u})l}kZBaRbW_^cGL5`#L$iqB!49)ye)p%|a;M2h0Tyokt2 zAVuMvNg*3EMNffwF`M&12k#TOB#_%K*sKJMk&N`x=&CK1-OJo0)w1^9aAUUP``X-RbiqX5;aoLRK;e z$>_NE6dKr&{`mf7>fM82dHI4~T2=hKeUk;sga;lpKmn6A7WeCoQ9D? zAKrZ5+}yjKy<0acIZy7l5#Bi;4((cfR`{!yvbTM&&kgngRNEV;cM-Syd+zo6UGIm} z2WRQ;kLT}CZzrzpui4Y%n|fEzw`c9u)yU`P*>}LB{ac;u0{jdHSnb`N6@*Rcn}_pn z0Oa%(*K~z!b>wkZ1FrR9*C|78?w9W6(?g@yb&8?Gh}-js&DYY_6hs4SrihU1cW08pDyZ_E9=XwK?!XUD5~^XIx1DqlMxs_qpZch6T&%WLOa18-e{>O0>e+s71hA79`1 zCOuzQtNrzH?}F|}##aAxA76JtgO1X+JGcDecb<3Sai@gg?4b0J=9B{u-S|aZ28UurnthJnw^}*%uzEy}<8*lrUADO0y`Ks+4xOZ^k z8p6hz-0VmI*Iraw7v4!HX*Neb>L=^n04_lF@{+n$(@Rhggp4`Z*>9$ ze1yD2{O`^$d|MUw?d{du3@*s!i`ApA6qVf-XktPWOYMu^j^?c^rxxvtq@Jw21Txb? zh1jgVk2UKSNYLfOi?8h&x0?o|YTZm(+uM9olckSUH{Y*~Umv|3Ti@=siR$iCd2U!( z9^ZUwU+?;Vt@YiXvu@fyku58Q`D>_ecVa!+-M6`E64;quT6W7WHJLuBluwsquurWB zyesu*aitQ{ARO03dA-yq$ai!LX(}MS zJr5f+l}~bNZESBV6c+~)B{P*1smH{O-#$O@KK9+tA3Hq0XC_9ln*tn%inXyl}5IAq4d1`JbJ4U<_}h%ZDdEKGeX$%IwnQyFx*OAjGauD5Mb z$;#dojy|{Gg4uswMa+5daS0^q%HHe=1`hq$0S@5+huH3Jg*-L!-?|=mr4Tr}tL~=9 z*KTd4YBRF#Qriu%)(4MH_ileO9zb#x9j85B+&N6U&Wi=4ztwEpDc|Xsj61;CNHA3^ zL~L4V0HTb!edM&ZHn*G0hqXQP<6kR>`k1C8LJsB+fky>9pPe6v^~>V2xm<~&@k@Mq zU_B0s7mtcx_4-1H-07bvzWzR3B0nXKG5Oqy2Xdpp*C-YZqQ;fHW@q|?rGXJO><4B zpB6V;oT-`7a~(0cJP=CStr{2jpxV@dEn&Fo_{fN_SNVwqylV8|_Da$lM%jNn-0@cB zV-2AxBS`JXIE|h#igo#DHxzS1AO!{i!8rb* z^)E?lV8;xo0ALs_FwFX|upWRN{0_53<8PczFm8mo-#C8{_?zb%$p**;9nvje7#c9_ zw>2bd$8zZ>q`T{@=;z=Ak^>#emul&R4iF!&1z!dshUW2G@Zl2%4E5=0TEpZ$#2dr< zN5|oNX+NC+d=}60nCbG#-NF(f079how&DBH%UQ_5LFQQBJ$fXbw2<4l&z1|f%hMTe ztJnLH_1v-b9Y^KxJ{Nqk>o_v@+k@L9%&DX2&)1F2E=>N+_O0iij8)K0?WW;bRfGt8 ztwPTGCy0cR3)`y)`tkzIrrVRZcunQ6F%hN}Z>@}-ySG;{-aki=7N5o+zpviBSk_MJ zIue9l|3AXs0lKnn>lThxamBW6Rc!3owvCD^wr$(CZ95g)skkbs;O#o+-uv$P{`cPB zcFRgjYdd}P-sf6#k2%(!YXmE|Uvp*6c%!7hKAN_Bzj3$sehoGjs9u@WecF8-9FLup z&$M0mwteU~v-mYBmHpb`@z^%kNA!8|$80KZ`=;BQ!0^-k)yjgDXP!>!e4;|uoM z&cOBSMh3x*??y(9@pY`n^)2DT+wLn}jX*>xGz8&y-b?f!KQKe(_C2|_uok(oPohlt zbF_xiKac;jMEKBXq%Lf6J2~qSXaG9V%_Dd2)UOe&64;Q z+Gx(7l zZ^WbUXN8pxENihh5wMzJ5f(&r|8(V;^2yStPcf+1?i023>YUm88O&zLSBg*PhE4L^3f+^0t=tN%7j=F6cQ-9E4z6J+ zm=a8wcP4H#NGD+zx`v!|mn~Dp6;59GPWIL8+14|5Cay5b$gF@bW_V6hTwg|Hf1?Nq z1+_iGIF6(2gAp&oD7s9>)G9MWKe|f?3bGTHJ7XS)A87Ri-8`f9)JC*+QdFzb-MIQRU$qliWh#* zVYC^^v6I@MmA74|k5I{d8mfJhf|SwYl>3j1wdC~3Y28~3eO3d|uUs_#r3c9ai?>bH zj@)Z10V#IH#^GF;tv?dJzu57@Q}!U^uzm+&k3FziR=2}Q$U>0zJuhNEr(Qx zvnMMsAgzbh%ilCcdr(Dr=uY2N4H+SXU(H3^&ng&J;_J z2&yx_mlCkshO9o6ZD_^5d%K$!7l_DXYAk0LrgS!1O%T>v_)PFB?_{TZ&dwls)V`jt zp!PkVA1Uq9ijC2}nD}S$GU_Uu^HJIDUJ^IWX%{DCH=c zG2?BvI@jk}ZW?D?Du_`qhY<4$Q5-@Pjp&>*7cQGOBaPBqp4Md({w5EqDJwnT#GCc>^90sNDeQ`PQ-_49t*b4GMZ=%N%!Y36Oik1{As&jvRgQn z%ht?>+FSV(6Lr`S*4${NvT!PL{Mt3#R5*~S_qHtZOO#|r^7aSBVaRzWhR~>DR zV$Re)U#-+x`{iM2@z)tOuW1}Bb?lq$mPl}nh+D#e{zPT^Ucxwne4|Blb3M=C(q7?nDg=p2(c#hpLcSaxC6E_M_x*m{@O7!j(Hvj zs2`ceHrdSb-p?cz;-}D7u?|{2s<1rHDp9OXUgp96euN}?^;)tpL;cOf@UrKJsn66# zxo=sk7tN^VQ;vDbQr!#K?x$a_85n-ABO`AClh3I^Hc8|za2H9rlnV^YhI{rX#&VOC34t9V=nxgy}II>wfFH#PX+A+F^teLjbHDaRid;a*QKIe%NF z_1Y-xy+%0EW?JZE`k~F?V86SqAfkrbjMfQ0Sw_BzYfxtkKhS-~UK;~^c$mJXW{Ubr z>_B(D3l_{~=7MY>{Ld1SJp<0o%z6RWO>Qqv2d~R**+3#Jxycu?t?oS=!fS+0T&FRs z!W5&g2H4F(Uf}R8(L!yUZ^z3%Xu+fuwQkN5d)pd3KyJ~LyW1wLv2F|9*u&c{e8xYZ zR`UQKo0;Q%Kg|G|y=9%8SyzMI{$3)8nzl=SNlkIE|4Zu6lGQGrs6i<6!++=BEI>KcLDq*+m>p0_Sa zYoHqxYGZ_GGgI&WoGYrUF0HN-I1<~ykx;sxmap9EnJDGXQvYe(V7U?{^~!o|ASm1N#;m)wgb)OFKHZJfE z;xV}(HeD5iV$p+(ENfTF_GLe=P&L@6dRgBa0N1-{C^svo&c>1Q0wOH-lYlQ|Pa&-< zMXhRm+WgqmUCk6-?9WB3JW5)eS!|h}^TDlV#jPRS2B&xy8`|JZT2LVst!nA=d>7S< zWS>J@Q@X2eRd)6lXX8Zo80 zkfOWw9qfT?QJ_879^YfZC;Mq>dj#jcIqtcZRw#oeczA02s~;Q7#>uH}T(#F(rk@l0 zxJ7v0QxEOTVqqd70$7;L?M)@i+EAa4KuojUBxu|a4Ci@Y$B z3aguSr51TPe(FN^ps*mBeGT*>D&e;u|!GZI~bI{ztAMLVDU z!FIo30`j<8Jb5_gOtj*5?RISKBirm~@ErOg@u6c6T|9$<*3FbE&=fOJOa(l^pvq)ZF~BErfvgtj<`a6r|u zHnCbgO>hNZ0)bf)cE&kkQuFJY?gJ6D6Bu(1g`ts&FcX15BNsy<8Pf|%CbZ#F_d|7YGAP5GT1O&g%k^W32 z45V)k9-jG;EkcCT1k+`l@Cp$2-yxAf{~hvT%^Vog_42QfJWnA@_2&NynFWPRA{f?( zDA$*xG*L_p=4?f6jgGZJ{TPib6serXC~7c^HUe*F2t_Jta7!A9xYn8CLL&-dU;!19 z=Xoxn$OTkeQEGQ>@l_Z?Fb^YRkt(zv?9es@2E^&NPz|r>?rjK6!^;<8h>;+eUy! zu*&C-cEX|++%^jXA!;Q&>=1z<-A3+*AqM*_0-?v0IV)qO77OPSAWFmRzfz1E4%@_- zC@!1l(XItC043U(bc-z*20{$R%LaOlUFbDjq1!lNjRKQC*KT8pj`h6C5d_1-63lIl zqQM%>9H^bv4}+rdI+h3iR70K(hXR6?;ZIza!!u7eLut~RF#$Xq{(ESawID#+ABk4+ zNp3tuAoztLC_-TNZ z6fO+fT9D%J%?QK+F|vj|$o^lHu~^%Jv7?avhhyP+41Q=Wlp}-sv6UH z88Dy!^MC>HNq&vqIX*t!0qeeLo3FsEfJ@K$Yscv|i9am_bVD*cGG5-Zk3rl!?Y>p- zE2*;2TU!dGW4~cs7}NxAA{@d*W@7l~3GKw+Pl6K!10cu2pfr3x2K@*9a{EyT-)Rwl zj}8x}&TdR=4}{*QY-yv2}MzPJ{-_z?9wZ-st=D5dP3lC&fiaWl~KV zjkf-OZus(%SSWv=4J1ZbN_KtK70f-9U~?E z7!$|%bi``d{7n?G-^y!5$DTQY9aQc0}|z-&^Tg{pp!c0KX##gu;FB6M{pY?V=f97o?o zOT#Qf-y$mCevt@9T>XSfW=F@h1gbW7@ZxV_t2;fbKY&*-jpj{*#NK1(Dv;?S!P8LJ zdzB1g?G9G0FOIyKP&nO{s-1#TW={flI=%jQ-cU%biTuPxYBNkNp`I_PUhiv?g?GHA zVY;PHK66M9It|W=jOE~k{lI^sbgUAN?2%<8(Ydb|-n>j-h`GOwvIq<7eH5P~cljiC zz2BPf!+d#yVz1cDE8_S@?yN-kSdNwSTqHl7v-$Nc0b}nGh&ObRnu{9E$U;xYI?c#7 zGS?~`Kj7^u>;49GEiJPd9VS2T3+4itI~|yuFyar*&|W=t(OSDrVJJ6z$cIj&1yyP zYLu`OBJbY^E8f(8Nr9b5>RF_cGMHHyo9Lf0rB)dynkvS`xVbAD^)QcIR?`j!KNMwKThhyS_4;Y>lT zEl4M&8{P@~kY&vDO=oWy%OF-7R+y;~vjlmHC~dv{)fGf3JI>)DhE0^!d5ApB>=6V! zJ;VYE4U0U(u}4c>lL(_g^NA(Q40)O;Dfycq%4owgX!EYlRfbPz#`lg1<2SCE{FA zgzb+AAglkki0C2FMwxECzXdSo!Op|eb`h9u6tbKnPhSR8|Dol^;EV64LP>_#O^Pr- zh35#&F~0N(mJnxvLW+l*^`u$2QGW&U`4bTJI)n=7f))AfXuC|G}MY4M(G5HxV#U{+}5_T|!AXM=Z7YiVPD=YH`s zW}$9I)UA*Pd`cheKX+V?$Sp%K8^Wa*F;sG@52@$G53MqHz}XH&_gb$|R6*0f+Yk}C z<`xu$2a_VyBC7OwsoibGC#3eeTwV73c;Akm{wmu1B@Qh2hz8R4usO+fSIFTLW`?-K zCs!`{Zw|^~%AWoEHiTrDWUVN9{>L;dc-KBHHe^Dsph4oNcBdhZXw2YxEvS0Yu|)un z%1`ab)Qn>2>I&Nf!6k~@!sykT4g1IndNWT#9zq_tpg2^uB#V33=9A*6Ntl8bL3iSg z1IX*^Lw6Ea`CT}KQrUNEsfLrvdJ#A_d0oMusa6%(VNuG(9;rt z9v#^bCSfN1QE^AZg8#P)56~bpJ)5vWDV5jvyH^D_rGM#A&N~6>cz6D{j`#7+1{RY4 z2MN~#%`D&H#}|bZCB1KdS@AjTj}=c!|Au%f16uL<|6#?5;bHLbA=F7|L*kv4H<`!8 z9}u_dxHq~?tGSFRD{kqiCR^Kfh|b=btsiLmQ|oW+JM{n#$z#<7 z3!WStK6_9rD}dpf$1Zk_bfAr*N#78%u`SM-o6-j^%dE9TG=bV1mUD>2`dHir;76#X z9?#*}yzj&Q zcp^>#6A4yDc)@~$;d4s<;&ko#=t&J1sL^Y2LPh?Pg^(I=SgwtxILS**Y3Id(i1{J6 z9aZe>-n{h7O-%5})?7qO2^xdhP==?9#`jGhkg$%xjYz%8HET}McJY*}Ws=YF`T?I8-KMnBu zkRqi3u2tqD#6Y@s@pR}g_AD5Bbn7A132hOFNEE<1ybd?VJ6*htYa8)!P&97<%uZJ>1kcuXBtTC2^B-V6_1``8{LD8aF2}>5P z4^VT{twO`}Eu0^9zX$(%e+hvY;g{h~vzT`>0bT|Ve1k?xtI!FuEnu}(L zI|+TCXhpD!xEw%vJKl=j{KI6NUHU?(YERU{V+JRmL{DvQq9&5vNCXNPJQ~B`(RgVZ z!&*g}$*3X~k!J`eMA|@ZdBQG|eHsaT2nP|SnQX;jiNlr3I#U>EnuwCRYSsmoQnPA` zP9YWD5Dp+HC4$}Ph_X5_Sr^lKCnp>@8HyRf;Aa=5*(76pV69_ys%;E@%|)xO)6;I%qlFD zA_%|?EKY>nOX(r5uYgD>sTn4stT*Sgq!E;W37Mi{j6VgA)MxVpBE)CPGz3w_1JZKk z;qwR+j|xe}cz6|NFKjvdT6erC87D%X<;Xl0U3he7rQ{wJ_=zMd#d=CHbXYn#B{9v& zyoi@dDL)#s8xe7I^kb~Df_N3?DD#8#*)RPzc@cl+FB-K~k#S|Q2v4fKi1kUyGNav@ zlf;B68M{XkDiQSLsc{7{@<3D-#qk_8RkAuNNpw^C0GjhzQ-q4Nek5#Fl{DkL2yvxh z53GXyQk5}42~tO8N-DWXnVCvi zS#tQFs70{v=jJ!h{}o}nz{4sUV`R+DAVHXwfkD~yYCBn{{=Pz9M&o;+)TPqo zA%r@y%!g$T?Q|tcZ{-xFcnCRvNN8@4Pquk_o^6w=476R0}A%$Tbh!lX3V_2Ii76LkE25<&%B5(^!8|svqzV<%g$@-bQ~xK^2I^02jH&#ZYkn3z zCj8*Ywmk7~Gm`5RQQ2v4^-w{$Fq|)ZG%%dPf*18a5cZ&U<7?6IMGF%+r)-n$F2@C= zX|^2_9X*~ya(`5UHwG(SMh6YvMoBMBIw)M|{#f%@{%AYz!goQ>0cr1(o7aHW$51U}d zabvVJa~&!;ihq=bzyXz#sQ{G%6!^j89C+gCw{)J#@o7r24{c5_FP!|pm~w*IjCqjQqfik4)_Nt zpC8CW^`uHcCTpv7ff*yGI*4ke#yg09PmOaB%}7mf7(#%N=E{O1+H)z0h>S;#`8>?b zi#2r4_{S**5&Je{Abm;yphf2!(L$z}wH%g2Bn_gyHD!rNm4Q8qgF942fgN>dvrmO< zxUivxcj+RU&+w>-WLbA6)PD-O>yZ;>eOP2pdoWE5$)6ROYA9 z)Tl`ru2=6|B22*j-(gA0MKt5l{tC;Jeo+1+nU2QCpII_V3Ee`s!l^>=H%qV*WJYRb zB#n(=6Ff~Ws3cc*nWt4j&}WHyb<|>$|F6%y?gJJ$4I*f={09C(#`0U1O0c1s|B4He zHXUnpLXH=M$AwmIUy{CfMa8kT$bEOpJ!hU-XF{g2)a}GWd4=)WQB#2>LMEibW zBCRBd`M4wG3%$r3 z@e3H`eRJ*BhR-Hi&eDug5E2g*53v7LdO4N)Gp5@i=zT{&*ofO0|!ahxVNqZ>XOM&jIM!e@P+r z|1}8nw_}2@`IWcOlo`X%N$w}XJRhnMe>;XHRMTa^k=rQ1fPZ^mMiUL=jByJ+rRjA{ z_lMY;pYk6`O!$RB*-EFiA53r(D7--<|J35`|0^)|KT76*i2#dUQh8jnH$cGxBCq{0 zPUx|JmTA33+sxDLS4*heZc2Fg)@dqYM%ZcLDO*RbQ3mY1Om3L`8-=TZ!`uXo~?HdS{`u?y2o*E0kVkYQw}ZEV_dK?I{n(lYx3wNF}^Fc1;7FL)BI&{%rKOC$Ch86zqdFOY`+d ziQA-X2#9N^+07%4I*`zI8F1Lt^&Ec{mkfMB>AL?S@RH&v_29=s;A>gDGzt9-V9he) zn*O#H{%!OYuhm4%Z*h~c)Z@Ip=i)XH6yW?d`xppQ`Uj@;Zx~%b>9f)#{-6KT&N{Y4 zhA51g7ntlI&2Kxdi<-V97unbwW z30|C1R>1rho%QgoHT;;hAKo5S*;oMQ(ClNyOSw^2AErLb>zc()D2!dUua-o6Y#Xd` z5ddeY{CnKe^t>_dKT;5U7pD{<5&r{}-EXlUE29R%HT~w4v9&jp3H53K6scRh;4edts!vhd6%`u8U)%gve@dXrnLoG+^*urygW>>`0$+%M^RvU_#L+z;V?9D=B7pAjX%3k5abul;L_f0QF4`&El zzJ7n&69DKP{T4+cWAK9UrpkCf@Fs#Q_UV?TX8iejzn0(E0#4H6 zo3Ri_L-0pMMO`}SPQr?&h!awK13A=`B-N8tlz&1}0z-12r8=R?7ckLOn!9(x3Um8A zfgOp$+ndo)9@MjbUHgH+YE3M}-JZpv%1sS#Y1qw8Xs5_+3GS=_I3!w~cv^rGbfKl3 zr%Hpkgb<|*F%5J=9cjFcdh?*Vh|kMP%g;($!lF|KP)Q>Qb5rYBWH~8OvBr@i=-GLs zDgxk=Kb)#NgI7$GKF2?i0}sdfSr4+@*u#lo`21t5!~RYrRap*<(oYK7RFt}k0P%VE zLyVo)8mchJqeG|fDn~_3MZw?Rz1zf&iV&uRxZ?wLcp;(xSaC%5K+3sW&Sw$p#DWBz z<3A)xCSaq*6_k|fWl8hOs$in?9P%A;{KIhRYEZ(ckXdm2fj41*hx<7g&k__aMZCt~ zyVuU7IhY`Juxqh#0#xYeJX#!o&adFTRqnMEJc!Y|uX9>#0RwRuPtW&z80-NYOwiGS zh)&fujJ6=6t>R3%v(SdjnG)QC4MLm6|143Q4O$PD*Wa zTt`I;TBH&!= zZbl}2S;Cl*QcwD9emOgG34`4TgO`*zX{nr?_%BWzte#DN+*FiKan_WD5}!ckbLIz; z2E(#hqlfEk6aZ$04ruj|3@fBU+{_}})YLUvKuSv*!GBW{6~#kV2Z*|0V;_kYeS-xa zJg6w&lmPowPb3`b9EtwN z87EZee9SuM{06KPgb69UDRb5qrvXngDoR^wN`Y#(-#G1u4&fc5336F*;X!I7{*zWx z<;uouqRE{+F7UU4CGot@>zQ9zzpZ-P<$Tq255YU?kt$I42D$1nJ5#t{iEj~N+I6Jy z5Tj6P4cIOtQw^R~doUD8(I19m#(;wEIaa_TbKz+@hwV=Okv`;aUby+u4-RG-H!_pqG~A1Iu0$Ee536BOf=@eh|`3mk^J^Vb9cg_?Zu>tKlY ze-ZH5Z9GgOf#v%b0g59iZglK%N49J)Ffn;qveIDlvG~Qz1refBqEcybA%JVpda8zJ?G$!cZqc)bCkxI$^OxrBl;MI^G=fu*rdV%#!dvCm<`L9ozUTlW`2${iOL{ zq$=)_{IUYFXs{ufqbM^GlN*& z_@dM2))K>%u;*VCx(pPxVXp$ij3>c8A^DPE2p=v)T#M-5Z07@-d93KeBfMb6CoS6M5n}; zp8Ke4p|zlQokJ6)swtmM!=-|OF`rtB$74uQr5>?y)FP{^gDFU1o zCrM@Z;eNsl;Cu?^l%|}k%jSkkeC9JUpNIO&*7mvDH1^Loh51+!Uh9*47N&{*s*p4? zuJ;kM^P_@BR!#OKnZ~27r}mKmF~pvN#iY$U>axYe3k^`C+6nRK7UBR+DPn*xt6$fn zGSjOoXXzTEfjA_C?i@Mwy#%Jy=(rk1BN8MA@vfE$4Ri@4a;O?6d%|^NJ#~_2NoXyN zV{@^aes4y!7ybPt2xp?!nulw-JPh*s{$ec)>K&SgeDH(VA3F8^V!$#87=~u*EY&0l z^&Pgq81QV4yhMmhn#MQejm(-o2~1G$)kH$Xu#}|Knk10`mcbj9;h7Q}pVGxz=7C5i z$k2lcv*sGk!%!IIxA8CEA$h7}(JF>rry;|0cykcX#KTnEm?kKRPxR3W)3Xf`fpZ!2VZ%GiOs57fU2+3*1queI5>y^>vHb;U*(*i0T0gABgKai8d?hC zSB9vNLM)e?W6yOfBv(37-1NC~>fkiGtUa zOuIPW^}C7N9szDY(CZJTF0KZ5qnv&!sn=qh6rI2)rI2Fci0x4bsAG7yK)XSJrdCa|!uf}b;1T%o37UH(HfIPtl%pJH@1lD2{6{YFgsLN#!g zBWJn{V`;2Emx%D?evjBGng1dD+QP*4&yqX;^AWJ+y*S`G59kh*c7i;`t zAn?HP6BYn#(n047a?@P|PIHi}vl(pxXZH?3BsXc_s?GONl|)|fqujJw%cVBl>g+&u zfa{vBybdYJtGzsOQyX^EK|+DPVwQL70l4dzzge=^44zPOa7!F>=$G|%81&E@uE@Ce zFC^?80XG+Op08EG=!zAl-u192BI2CdxICs`Z;a}v(fKLC3oVAnKj~Q^PiNf>FU;N7oEy zHF#d+lcfB5yBTRq5BELV-v-txeDA>-Urvq+=pz*aBW3qwOp2d?sU^mUhKomNVQ8s1 z!LSf2q|`6CR-tRI^**I}Jx3gfEx(sui`5;_e{Qcl)jCoJ0k)uO0sj2yz57=Ss;{O- z%Kvr2N6+U^Le zJ|iyQ_QjcI*p<17N9dOE2o(%3Of*KuC0x?gMv-0x&Aqf=v>52K+mdyhCQ|J>#FvYIXQ~OyMQ{VKvcS4h-2T86FK7vNuCMCx% zx|OlhBy7!Y07myIJDX+D0*4`;kAg+?5V{j;A0e0E#kXIDoA1n6R74D0uk4cj}& ze>(P?JI~n|*sS$890&;Nza29J_9j*_G_v`tW9wE*zuk8xypbQ@BB)Zcq-_$L(NJhc zLYgKKalJr3OR5s?HZ=Kh#{Hu`vY z!`Ev4O4mRkN<-83qYuY{ZUCIQ$or6&@TGe)#F#qz8CfFW^G-U-(Pj&y)}k3zn_5bH zb|u9pZ?7uXO&4ACDA>UY3ZsE&EV%JHj#Q^Z7CHfnTT>#9D0ck0u=DgtkhTVAT#v9w z7!jN}brMOeJ)Z8JWHOeRfJ)}*TbP zx?GR?bWF4Ca)!^&_BIv=kuGlUOGg>?KNK-Jo)!}<-8pG6I~YGNxKJn^zO|3(cIRn zKh>MdZzl^M{yKX{fhrYVHG#|I!5g<_d6y#4qPMGJ;BeTVa?hWlJX%$^Zx0E^I9>na z=v(-V>uYKc#YL&7T#b0ex7+{Gt2Rl9q-_M)lC+Zs1O)xxr=*L8sjVsFUq|M@I-F_A z0o#&d_54&v?l@d}*>H{M5W8HvS}8$5Z54@a64kb$QY1Pf>p{43?DI3+svCs6Y#FSp z7W{O%@RnhR--39mk43#6L8a()JS_K}9D0=Gna{gdU+HG~B9s91cbKE>+mqIjk_Q6O zP6^`E=vA{<;QR0j&Mw#sBH5C}RWtRz^=hqd8(b|6rU#5<+iY!L%Ml!k4s~)HeJF9S zDEQ%IJBld*+Fg9K3}PU3!U}1zRr@BL2l8)>oBYu4D_iq08!+%_#jaOiAkOau@q|6Q zR&;pHup7;T*@=?08A$3}UdhkOzotsNWU$ski)_c=@I9FXLkGYhoQNsEt8u?JN;6AH zk;bEm(iO9wxntd{zC1ooW?EWSWUxWr=+&-XsV;O`y#SPRVQa& zxM7=NfrFi4#xM7A=hp8d zQ^ts4QUFb;w32$!v;~W{25p3shtfn|^9h!K#hXm14X%GEVJU0+{v=7mZv!5>!1f!S zpr%pGO3%0FgN@YL{z?f(y)Q3E%Lk*i1aCSJy|8bNsPD(W8Q*>eY@RXzp&^3xDTZiYeRqvmD&XH3Jc^t1-Vp^r_paB$7vwX z2glqea~ULbJ{5sv2zU&t?7x;J_80R*T)=n89XHYrYh(5(qi()v2$vj9328g>#4(Cg zTF9?j18GgdlG>1ay#;GuBZFP@cj#59vZD#|OcXrEVc0CXAdyS9B`Ji9iI0U)aCSk; zCwT>rV*ju)%v1zOfbsR^fjia{L%UN=oo22j#^hj3Fo;Mup00eG%P(>mlxwOLG3gLi zYJ(-oz_jZN_tUFanq`F&CAw%pHv8o;T|PyUTCNetlClvM^{|Xd z4)U2VYt|`B-6@LzrDINLR5P{Cr`WBfu#BlZb?#?VL3J0^_kjTWvaN^}P7Ig*z`&N~ z?J^EJgTXx8=tF!7pGUBELiK8tg!-KpoBoA)t4qkypYe9TU7ZU`!K-bwQmmh{YCbPO zMMcVuZG~~^B)2f!B9v5coKKKfHmh1LYb|Ld|5S}U9Y@}?U=wa(68A8oX?A5Zrs;Gc zLEdo924^Ds+yY+gdalUBlQs#i>H6Mh;$J??qRM!443^^a!@kUUPgoKRa|RAT+q*65 zvK|$7B=6OqcQ@}aAzs;_dxigm8MQ&R`tuRjVs|Z6Cees4F{1 zy^q^tST*Q@IL7p0cf~xR7Gky#&YLR62S5haPaOnMAaOJv_BY zr!iB!$oi^&RTP-ojSB=wh{e%bn$=6&R*^q{kXR{YC1)kBU%pa2$A|_i-?dE6&OA(mR}y3oJcmT%`scsa<5>A?g?VEs;3&qXu6~y zmD89Z?vODWP(r1X#+Xo%!4qVQ88L>m=(o$KHqC?Orl=n;k{jOydD9@K-dJ7^-@N9I z>lGj58`SZB?4{GeI>mCm)$0C&{%00%otDfxnGion7p0HEeAdEnQ4) z|N7Xgj;erjShZ$oD zLM;f)+@T!dv^os-ZOj3yDd2O(a6qJudWsiCGaHTs4&mA(7+dT!!;MgqN_#Z!=ZGDj{+k_}$=gUeelKoB{ z9vnH&&DVVGl8IUzn`p(E&OwV_t_#2PTeX{5+=hz^kzltomD*R2(<9TVrV*t~261aJ z80WY)TpO9sWp=zTJogfJQYzz#linNJ6k!p-Zr3|zbOqvfSo@7J(lm9V8gqp{rq#1W z^dDodNzNj_tI4U#mUpTNysf^0{c}K@J7wkefP#&H!m<7#{EuV>Cwm9yzeY7XuHG(? z2~F&4&%oXOICCC^1zMOS2(|UHv@X88AGrmHqtSk8XkU2NbdGP@=+2l7q=b9(dtDg21K$uf}`~5+tbZ1 z^Qjh6NjpwYsG~tW-0^II={}d8NDP`S2Gk^DM=Xje-7XoQF<8h0mM55%sB3$h1;Uwqrl zUTh7e6VSizQ%HXOk5yXSTxhs8uqG1@%uwh_b8oH?!owM%zI=#FKkRu0~Ork+w<{#1fpM@5~PYx5Pf{MdVso&Aln zu>grmQ(H=VEY3kj+8sSBrj;mCZ^Fqw!cVpalsY9kifS&Xo<0B#vh zF7ES{BsoYBj7rGoM8!0=Y>Bil-t9ev z(sOP%*6-Hc3r-k^p(yIjqla^T1GrptK13p~em5IkIQ%r~q^LiM9*!aK$A#~fk}#s2 zy%VfR?%h>Mt?7|+Uws&WweFtVyY9Y`)f0{Gz7gJm?$=e<9XSm45@Uq2%SPw<-u=0! zKOC9O4Gg}|`@T*6UPIS+SNGn*|HgAt5##pJ^GQw| z9v62H5gJrMPv@t*?yXDn-JSrCE*)!P_Pd?uflYgDU7oSIK@B#>QXe1dWewER_2?7I z@oL}oRGkn49n)YJ&RQS5v$a7!Hk6ft2)Rnho6y*R0Dr;(}X(Vz!9S^A3Tg=xV! zEWei|aTL+lI)+Fk%6-nDF#Nih0?3Yk0eKAN^ZuwuQ*p_1RG1IoQ4$lBfJXj=hBZQB zb<56&rVoC*xm5(K5EQRJbGfzt){}L=Mr!q)H7+< zT;sr1DSe5~;R15n+CH!cVhv^iKT*)QWTe$$(=N61i7qODZ7hT>RT~bI8xP$t&}y&4 z@eGCu4N0DG^P`q@8aNArP(XT&k+$Q;w}RY&e$_|W52tz9*;=V)Yhf3b%3B;8lYvX>OReuSSc)Z<9j-F&wM^weAW2tO@Ov zM<+#vp1*hd)#}J58{wVD^>1ey8M`r8~1-GXB#zwb^Gt!8^XasDUHZ(OGG zd^S!Sd%to2l!#xVBQ{@q`m9yCA1&6}WiOR#7Y^TbO7_I&iR*=(&uN*auM6gwVs-V$ zoqHSJbUZ!qm7RI2XqHcsfXY(0qk6xyPF>lVGOb5HaIW{X>c6VrX6)0I3HYY;%xznj zV0x}k@dedeURN!iGzqNfJ^IAGD(2{x?Zy+%Hy`ccX5ny@wYw|Oayo%YeM%FnA&*kk zo(Js=Q7m7$GCmrYJ22m3yKX50yb86eDz(ghZtrTIb%Eg)(wAF2#0)3b?0G(c%V@gD z1Sf-uKcCnc^@}XtI^m4ujMpAf^VgM@DV)>lNC;UK%`@%m&53i4RK0z~wg2~l$>MdKRPS;vk z8+9nlF6-aTJIVKQ?q&V^I7^TJmTI2x_U7LWw@!pM~lK~^#?SFgYMeNw4RudtK<~f1lD%>Fnm+n7z2S5D?XYd@kG%}s;+KNugBlEO9=Lq7;(W3j{|6y8 zcK(7>kqukx6b!3VbKY*ckuQ3a&um@7ycZ81%?Vv{Q8;1gf4RKu3kut%n>*jJC3AIa z7WD{5C?A%b`9e;jd*`QB3jY#QBld^Aa-8Fu!0=deYu| zTK5uf{F6)l@lz*mPdof<3g@)9ca`U~pYuJlUifzVlC-p5nW?s!pQg;&z3kkc>T7SB z4ppx?x^2=Wqw301-?xuce^lL-I~e``^ZF@IJc5f)zq-~gSNG)N*4J{?HIJ7qpI7(n z=JR>=3yV)*n;ut}dVBTyy+5zrw!T-nJ^T5(e!F|0Pu{EjZU6Vp>BI3~Wh|@Ke6P6w zGXGr7@4Mgsrq^54KYX-)f9$Wn{r3MCl^P!4onn^}dxND-wMDrqO8l@{aO1=ekBdqV zcZt1>UES7yK6>(`#G4x`tG`d+{CTce`PC8Ul{1CYzxi7Edk1Un-g@ZP|KL>SR@GNl zd@p74ER@q*eil6S;w#y}zpRN(Dq}$-R^q>L$G1cF0p5&EBFv!SaSjIOS>_RIgO*O5 z3T&aC0*<+Xx*agk02E_jh;{}J2B+qg#D`QCq!!15T4(46RH}J9`~WJw2OLM{hUo^< z4UETtMnKy5;HEvg#*Q}b;7p*Bi$INnC>oywMc{Q$a()qbBpO}&m)p0+Ujw!0urM$P zplGiLiomre78GE0^_R)3WPn~yS3h|iG?!5Rv^tHrFl^%)rALRlI3QB3mZgPK%aQkjzqo~}d>1M~wWVfq^w+3ip? zqa81aZVvi9DZ-qJVwgEdlPKug(I;LI+SAIR+R>(A&`m&}h(MSyqXKFI%CrQ!e)Lge zgnsR6sDAV@WOO6Y``-v7RGP5%#?cKx@8}{7_=92qwr(%FS?GO7gjrvk(H(>6NuryA w-qk{w!qW;36_kz_x_Hq)$ literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterFeatures.scala deleted file mode 100644 index 4d2b4db81..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterFeatures.scala +++ /dev/null @@ -1,61 +0,0 @@ -package com.twitter.timelines.prediction.features.simcluster - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.ml.api.Feature._ -import com.twitter.simclusters_v2.thriftscala.ClustersUserIsInterestedIn -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.TypedAggregateGroup -import scala.collection.JavaConverters._ - -class SimclusterFeaturesHelper(statsReceiver: StatsReceiver) { - import SimclusterFeatures._ - - private[this] val scopedStatsReceiver = statsReceiver.scope(getClass.getSimpleName) - private[this] val invalidSimclusterModelVersion = scopedStatsReceiver - .counter("invalidSimclusterModelVersion") - - def fromUserClusterInterestsPair( - userInterestClustersPair: (Long, ClustersUserIsInterestedIn) - ): Option[SimclusterFeatures] = { - val (userId, userInterestClusters) = userInterestClustersPair - if (userInterestClusters.knownForModelVersion == SIMCLUSTER_MODEL_VERSION) { - val userInterestClustersFavScores = for { - (clusterId, scores) <- userInterestClusters.clusterIdToScores - favScore <- scores.favScore - } yield (clusterId.toString, favScore) - Some( - SimclusterFeatures( - userId, - userInterestClusters.knownForModelVersion, - userInterestClustersFavScores.toMap - ) - ) - } else { - // We maintain this counter to make sure that the hardcoded modelVersion we are using is correct. - invalidSimclusterModelVersion.incr - None - } - } -} - -object SimclusterFeatures { - // Check http://go/simclustersv2runbook for production versions - // Our models are trained for this specific model version only. - val SIMCLUSTER_MODEL_VERSION = "20M_145K_dec11" - val prefix = s"simcluster.v2.$SIMCLUSTER_MODEL_VERSION" - - val SIMCLUSTER_USER_INTEREST_CLUSTER_SCORES = new SparseContinuous( - s"$prefix.user_interest_cluster_scores", - Set(EngagementScore, InferredInterests).asJava - ) - val SIMCLUSTER_USER_INTEREST_CLUSTER_IDS = new SparseBinary( - s"$prefix.user_interest_cluster_ids", - Set(InferredInterests).asJava - ) - val SIMCLUSTER_MODEL_VERSION_METADATA = new Text("meta.simcluster_version") -} - -case class SimclusterFeatures( - userId: Long, - modelVersion: String, - interestClusterScoresMap: Map[String, Double]) diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterTweetFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterTweetFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..2e9c6a4344c63b45e2714271291bec4b869125c1 GIT binary patch literal 38645 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

    }jIY71}{iMP*Tm^UgZ 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 Y-l2sl2Vg;8tx5pm1eixe`q#660G?$>X8-^I literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterTweetFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterTweetFeatures.scala deleted file mode 100644 index 355a89c22..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclusterTweetFeatures.scala +++ /dev/null @@ -1,150 +0,0 @@ -package com.twitter.timelines.prediction.features.simcluster - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.ml.api.{Feature, FeatureContext} -import com.twitter.ml.api.Feature.{Continuous, SparseBinary, SparseContinuous} -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.conversion._ -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.TypedAggregateGroup -import com.twitter.timelines.suggests.common.record.thriftscala.SuggestionRecord -import scala.collection.JavaConverters._ - -class SimclusterTweetFeatures(statsReceiver: StatsReceiver) extends CombineCountsBase { - import SimclusterTweetFeatures._ - - private[this] val scopedStatsReceiver = statsReceiver.scope(getClass.getSimpleName) - private[this] val invalidSimclusterModelVersion = scopedStatsReceiver - .counter("invalidSimclusterModelVersion") - private[this] val getFeaturesFromOverlappingSimclusterIdsCount = scopedStatsReceiver - .counter("getFeaturesFromOverlappingSimclusterIdsCount") - private[this] val emptySimclusterMaps = scopedStatsReceiver - .counter("emptySimclusterMaps") - private[this] val nonOverlappingSimclusterMaps = scopedStatsReceiver - .counter("nonOverlappingSimclusterMaps") - - // Parameters required by CombineCountsBase - override val topK: Int = 5 - override val hardLimit: Option[Int] = None - override val precomputedCountFeatures: Seq[Feature[_]] = Seq( - SIMCLUSTER_TWEET_TOPK_SORT_BY_TWEET_SCORE, - SIMCLUSTER_TWEET_TOPK_SORT_BY_COMBINED_SCORE - ) - - private def getFeaturesFromOverlappingSimclusterIds( - userSimclustersInterestedInMap: Map[String, Double], - tweetSimclustersTopKMap: Map[String, Double] - ): Map[Feature[_], List[Double]] = { - getFeaturesFromOverlappingSimclusterIdsCount.incr - if (userSimclustersInterestedInMap.isEmpty || tweetSimclustersTopKMap.isEmpty) { - emptySimclusterMaps.incr - Map.empty - } else { - val overlappingSimclusterIds = - userSimclustersInterestedInMap.keySet intersect tweetSimclustersTopKMap.keySet - if (overlappingSimclusterIds.isEmpty) { - nonOverlappingSimclusterMaps.incr - Map.empty - } else { - val (combinedScores, tweetScores) = overlappingSimclusterIds.map { id => - val tweetScore = tweetSimclustersTopKMap.getOrElse(id, 0.0) - val combinedScore = userSimclustersInterestedInMap.getOrElse(id, 0.0) * tweetScore - (combinedScore, tweetScore) - }.unzip - Map( - SIMCLUSTER_TWEET_TOPK_SORT_BY_COMBINED_SCORE -> combinedScores.toList, - SIMCLUSTER_TWEET_TOPK_SORT_BY_TWEET_SCORE -> tweetScores.toList - ) - } - } - } - - def getCountFeaturesValuesMap( - suggestionRecord: SuggestionRecord, - simclustersTweetTopKMap: Map[String, Double] - ): Map[Feature[_], List[Double]] = { - val userSimclustersInterestedInMap = formatUserSimclustersInterestedIn(suggestionRecord) - - val tweetSimclustersTopKMap = formatTweetSimclustersTopK(simclustersTweetTopKMap) - - getFeaturesFromOverlappingSimclusterIds(userSimclustersInterestedInMap, tweetSimclustersTopKMap) - } - - def filterByModelVersion( - simclustersMapOpt: Option[Map[String, Double]] - ): Option[Map[String, Double]] = { - simclustersMapOpt.flatMap { simclustersMap => - val filteredSimclustersMap = simclustersMap.filter { - case (clusterId, score) => - // The clusterId format is ModelVersion.IntegerClusterId.ScoreType as specified at - // com.twitter.ml.featurestore.catalog.features.recommendations.SimClustersV2TweetTopClusters - clusterId.contains(SimclusterFeatures.SIMCLUSTER_MODEL_VERSION) - } - - // The assumption is that the simclustersMap will contain clusterIds with the same modelVersion. - // We maintain this counter to make sure that the hardcoded modelVersion we are using is correct. - if (simclustersMap.size > filteredSimclustersMap.size) { - invalidSimclusterModelVersion.incr - } - - if (filteredSimclustersMap.nonEmpty) Some(filteredSimclustersMap) else None - } - } - - val allFeatures: Seq[Feature[_]] = outputFeaturesPostMerge.toSeq ++ Seq( - SIMCLUSTER_TWEET_TOPK_CLUSTER_IDS, - SIMCLUSTER_TWEET_TOPK_CLUSTER_SCORES) - val featureContext = new FeatureContext(allFeatures: _*) -} - -object SimclusterTweetFeatures { - val SIMCLUSTER_TWEET_TOPK_CLUSTER_IDS = new SparseBinary( - s"${SimclusterFeatures.prefix}.tweet_topk_cluster_ids", - Set(InferredInterests).asJava - ) - val SIMCLUSTER_TWEET_TOPK_CLUSTER_SCORES = new SparseContinuous( - s"${SimclusterFeatures.prefix}.tweet_topk_cluster_scores", - Set(EngagementScore, InferredInterests).asJava - ) - - val SIMCLUSTER_TWEET_TOPK_CLUSTER_ID = - TypedAggregateGroup.sparseFeature(SIMCLUSTER_TWEET_TOPK_CLUSTER_IDS) - - val SIMCLUSTER_TWEET_TOPK_SORT_BY_TWEET_SCORE = new Continuous( - s"${SimclusterFeatures.prefix}.tweet_topk_sort_by_tweet_score", - Set(EngagementScore, InferredInterests).asJava - ) - - val SIMCLUSTER_TWEET_TOPK_SORT_BY_COMBINED_SCORE = new Continuous( - s"${SimclusterFeatures.prefix}.tweet_topk_sort_by_combined_score", - Set(EngagementScore, InferredInterests).asJava - ) - - def formatUserSimclustersInterestedIn(suggestionRecord: SuggestionRecord): Map[String, Double] = { - suggestionRecord.userSimclustersInterestedIn - .map { clustersUserIsInterestedIn => - if (clustersUserIsInterestedIn.knownForModelVersion == SimclusterFeatures.SIMCLUSTER_MODEL_VERSION) { - clustersUserIsInterestedIn.clusterIdToScores.collect { - case (clusterId, scores) if scores.favScore.isDefined => - (clusterId.toString, scores.favScore.get) - } - } else Map.empty[String, Double] - }.getOrElse(Map.empty[String, Double]) - .toMap - } - - def formatTweetSimclustersTopK( - simclustersTweetTopKMap: Map[String, Double] - ): Map[String, Double] = { - simclustersTweetTopKMap.collect { - case (clusterId, score) => - // The clusterId format is as specified at - // com.twitter.ml.featurestore.catalog.features.recommendations.SimClustersV2TweetTopClusters - // and we want to extract the IntegerClusterId. - // The split function takes a regex; therefore, we need to escape . and we also need to escape - // \ since they are both special characters. Hence, the double \\. - val clusterIdSplit = clusterId.split("\\.") - val integerClusterId = clusterIdSplit(1) // The IntegerClusterId is at position 1. - (integerClusterId, score) - } - } -} diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclustersScoresFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclustersScoresFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..6ab4aaa45fa4e2baad19ea2ddd0586c6065e1196 GIT binary patch literal 37246 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

    _Z*@i9xge;{OI7mV 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclustersScoresFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclustersScoresFeatures.scala deleted file mode 100644 index 0629636c0..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/simcluster/SimclustersScoresFeatures.scala +++ /dev/null @@ -1,43 +0,0 @@ -package com.twitter.timelines.prediction.features.simcluster - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType.SemanticcoreClassification -import com.twitter.ml.api.Feature -import com.twitter.ml.api.Feature.Continuous -import com.twitter.timelines.data_processing.ml_util.aggregation_framework.conversion.CombineCountsBase -import scala.collection.JavaConverters._ - -object SimclustersScoresFeatures extends CombineCountsBase { - override def topK: Int = 2 - - override def hardLimit: Option[Int] = Some(20) - - val prefix = s"recommendations.sim_clusters_scores" - val TOPIC_CONSUMER_TWEET_EMBEDDING_Cs = new Continuous( - s"$prefix.localized_topic_consumer_tweet_embedding_cosine_similarity", - Set(SemanticcoreClassification).asJava) - val TOPIC_PRODUCER_TWEET_EMBEDDING_Cs = new Continuous( - s"$prefix.topic_producer_tweet_embedding_cosine_similarity", - Set(SemanticcoreClassification).asJava) - val USER_TOPIC_CONSUMER_TWEET_EMBEDDING_COSINE_SIM = new Continuous( - s"$prefix.user_interested_in_localized_topic_consumer_embedding_cosine_similarity", - Set(SemanticcoreClassification).asJava) - val USER_TOPIC_CONSUMER_TWEET_EMBEDDING_DOT_PRODUCT = new Continuous( - s"$prefix.user_interested_in_localized_topic_consumer_embedding_dot_product", - Set(SemanticcoreClassification).asJava) - val USER_TOPIC_PRODUCER_TWEET_EMBEDDING_COSINE_SIM = new Continuous( - s"$prefix.user_interested_in_localized_topic_producer_embedding_cosine_similarity", - Set(SemanticcoreClassification).asJava) - val USER_TOPIC_PRODUCER_TWEET_EMBEDDING_DOT_PRODUCT = new Continuous( - s"$prefix.user_interested_in_localized_topic_producer_embedding_dot_product", - Set(SemanticcoreClassification).asJava) - - override def precomputedCountFeatures: Seq[Feature[_]] = - Seq( - TOPIC_CONSUMER_TWEET_EMBEDDING_Cs, - TOPIC_PRODUCER_TWEET_EMBEDDING_Cs, - USER_TOPIC_CONSUMER_TWEET_EMBEDDING_COSINE_SIM, - USER_TOPIC_CONSUMER_TWEET_EMBEDDING_DOT_PRODUCT, - USER_TOPIC_PRODUCER_TWEET_EMBEDDING_COSINE_SIM, - USER_TOPIC_PRODUCER_TWEET_EMBEDDING_DOT_PRODUCT - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/socialproof/BUILD b/src/scala/com/twitter/timelines/prediction/features/socialproof/BUILD deleted file mode 100644 index 0c00b1e5b..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/socialproof/BUILD +++ /dev/null @@ -1,15 +0,0 @@ -scala_library( - name = "socialproof_features", - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/ibm/icu:icu4j", - "src/java/com/twitter/ml/api:api-base", - "src/scala/com/twitter/ml/api/util", - "src/scala/com/twitter/timelines/util", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/ml/api:data-java", - "src/thrift/com/twitter/timelines/socialproof:socialproof-scala", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/socialproof/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/socialproof/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..47e5d42e0994c8e0e905d635c720dcdbf97a7b7d GIT binary patch literal 36864 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%0DsbEG+_ba9tqt3X-(D<@Qi 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

    RLa8Zw|T>jTuk>Qy1*viwoh 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/socialproof/SocialProofFeatures.docx b/src/scala/com/twitter/timelines/prediction/features/socialproof/SocialProofFeatures.docx new file mode 100644 index 0000000000000000000000000000000000000000..ea3ebf53f4ba8c7adf5a767f7b336e10b1100225 GIT binary patch literal 38222 zcmagEWmp_t)-H^@dvJGmcL)S`m!N?Fjk`;L;1D3VySp^*PH?A@Ac5fSr}I2B^UlnB z&iDPPzIs=!Th^+sy>|6hRe*-Ufq;NOfRIY()2&i3N=Sx;fEa^=fWQWi8b|>gTrC}3 zO*Fk6EnSRQJ?-t9l9g1}#4)~{z2K&>iIV$Bq2reCIMO>ZClE^4WZdxUEwh~{LOt9~ z2u5nnsD{I_CS<1F`H`;Gi*)%m(;7%gpBNcs>J(5ym-rTJi#kj;6eEy6)2Pavdl`Wo%J~bsXd7Qd!*^Pmh2bP#>4@aI`>JY24`z6 zr~0+tA~eq-WB|tOPx~HLk8vHYBe?pq=xYuAO)T56pC^FNp|rJghtSzNZw^Aa$7|Y5 zpE~sQVm1A2jzZ)Jz3-&ZGLL(L8R!})jK0C8b9Tg4`G(&0-`z13#ZiksEJqmM&Ce;> zPiO^>pnu`f601`OO2nm%atZLgIUPw+`rYJ)8mtINEBkdwn~2Z{i4XYPU!Xnhe}r8n zxJL=9zLR_IEZ%cl3(hxJWKLl)cu6KH#OzM^_~i45TvG8)TD13hsbphMZ0wFQ{|QIQ z7((?ws^~?lAbt<7-X;_T1Ty&3#M#o$g^l&ku_|%$12hLl;F+k*2u+DYvzBz>im~*e zQlV(i_leVD2Y%CaBtDI?|_))wgrbe2w1qVKVA)34s_O+D!!E|hS zd|M`7`y){GlR?D=>tTqLiiWW#^)=jN2i5?;b)#^}OzZCZeHLn}NgeMgE4R%MwE)Ly z(%;IV zT)CeeL*~v`W?o4<@(Ke%MxGJ!=<5eLoS@~lTW%gDyYXz^NziVgy?!o}J1IzL_{vdq zgRiLt+B_^Vj4V9iEXd+3vL5d1ni<~uQ??AFKvi;R-&xP&+$F8Gp!rx&lo}xlQf)T0 zd0%q>?ShB$BA!MGDv>#OV>ZW?e9t~H~sxz@HnnqP7R_><_P zhW>s(XsW)SX-QuT$4PwR{s4=D4#_31mZt8}s?E9e^~A;52{i2vZB&8M5{`nF@-A=Y zq_k2zI1gdnzK`z%7B`rciChwSbX;R^=qg+0f?)`Ob}@{tD|zkh23B5CRgqTS1A^f+ly zs~spcS#(kdL@gAaiLd2jr;?C5uqH27r1HMABZKXkjr1Hbd2_Es6E7(MSrvQG;Ka#TMzum zl#_uaBO~_ihn8+-gBmN@4XIE$U^6BoFXBLF$IgsKPmv~hcD;<_i&7(hrlvHcitkzY zg!!~PrFiVgO+X(YOIg_w@u*IZX*-QSBOXd|GipjfW4z&!IK^NxdXJY7ffyc@7mvB<$XIe7+9AJ#PtG-zu1sIxZDT=FGcYln zC4H&Jx;uyz?qvl7A$t{p%NGSaoebPJ8N{wf8u^{ju>O;wBZwLW0=e3XoAu;Y*T&IF z8=Xoc?oh-IGoUEiiXM}D0^c>_ly`QK_@Qm)-RW^ z=F|m)0T;ymh9Sh5xvfOba_pT1I0&&TZV;N|C(p3+KKKu?QWA4#Mry*FOFNOXSWkgj zAB*C7UahDVNA`N@(hl|bJLz&@4Qjx z`gN)L_+Zr7lj3Q!f*!`p^r|HAK0D~Z1YN?QK-~r7_R>PiIU_&y`+S2>Gi*ChB@+&X zDmVL*O3i+C#+~8awy^l_*e0P#2o7d*n^o>zg9$g35^~Inwz!Yv`KJ;eqNBi2*qkZ5 z3c?&9$l@dq!I|rnN2V%p+m;DZLbL3rl<#kcbVlTAvuiJg6jS&DLKb~l=Nf*z`~78licYV5Gsm(E zsAlArG!Le-od$K*)yt>ceB!hH49-&J#Rq`Pr$Zl(Vzes4sq4k`I)^Ci<4;vW`hgxI zpDL-8Y6SY0k;JYO4q+*#{SV9TDL!}TpM>)|HgBRgL7a8^k6;d^+~<9tv1Yrr=uj2a zXStKW8>8C_B9t}ged8BjMmjUUac%P2`|-$C$s9vo2!ef;dGgWC(QiHg$DiDg=GC{wZQN^XEL~G$;Ci9SQVde zAGW+JCO>?rcxs?6WWr?5nkmms>icTVvm^`ovvAEu;Fi!-Q$sgu(PCLywovv6B$G___$@ia`y2UP>v?myue zx#IHkUZ_{$DOUG133mtD%^3vh_6@pJtkyN47YH4e8AiB-Y?Y+-C!?4#y{rbX<=_8q zuXCrRV(7C{$1GT#lAgV~owN2}Y#cA*9{8eElGyOEzr;5@v$X-Co~Ke*MI0=_;BrP^ z7N=~O3t#`6`*V0*J>keV)Hcgu*@PSeC{53rdH&$vVl~H-PSbGS_WTYTwN(Maye-d! z?|%?b5e_;XkF`Z!)an?a9s}Z0WAYsDKwPX1jUp+<^gGAMh<6`kLgIF(96kNLpLfTv zlxJKily=WOJ)bWdKXrtL&n~9c#G=Q|kx|5yq?&9WnXL;53wrZ#drWQJo78N3#&4WM z5{c*!{CGV&57#8fnsW6*Qf-PDbCH!iK8oH7gh(fgRlmr?SQX5o6%?6VcnD_rGzs6c zp2Q2^_a-yjGg6#ssCoiDmO9+OE}q6S+y7ff3w|$7Ea&;Z8WD#;A}mgDhdK`KP>I1E z>R*k>-|MS?Z%6)KYkiYY31KJra`uYU7nX!m>=5AHr^e^@q>XE3M@*Kq5aI0eq4`nqHztr>TL+MG+B!2%Go|EnB z4Wzu7tZu#Rto*zswvq1AyQSQq9o&ZrQ@6ZeYDC3DW4d#8@Z;v*f;iv>-WbWMae-K> zcrWN#$uI`X1V;NV6S|-4-qdDn*J{xmLfWHSDpiWJs5Vn$8~U<@D@uZ&raoOG^mEv| z$%2b}={x_96+}*FkLR*ls=aTzuE4)~ zJyQcC@DMV~_Mc5(Oa-1$6dMGDu@)=@`ag5+;_78*>GD_0XJnMLBU|s+-JM@x^8C|2 zJ``ej$^jzLo%o|qXLj8gmlD_9?;k(#KgFGx1kg~3lWD1IX@4kBtQYFb##3e3)5%KG zw0wEV3Fxpp^EV-j&3HN8;Op;3?P@bP(|#(MJiP(}{9g!sg&y`#J@rqsQ`TM_UQRQ_ zmWBbZ4{>h~PfKU9C1NedyGHj98yCRT1>n=c+^-v8c=+y-*Gs+dtNmO1W*D3QDw%Og z$@z5uL3rxk_W0UyOU29h@nxgex*cDM7+Ga+Pp8Tkfr#k(w`-dQeV?a=wQ+BcuVQbG zx`2MnJK*ls{*C9mlZuf~CU@Z_Oa1;$qNM%S{wvwTK6(!BOCP@|f6PstJgOBt70Y_X z6IFD6f1$cP93FCS!nXDV7Ucm7*gQcWA3k~9@ZdUWVHH2+9VK`ioKr z&;|^?A>RV$E>4d<#&>NS9tb|5!h5cSns?@$#AZC5C*NFprjziEUq|^nvv|J^ zRqQgjd3AZMu8T=a#s!42y>_j40b44^lLt8h?1AfkU4{l{T`xCMk5=lbr2S5y4K{R; z|92TOU%BiPinoE9hiorb6Koo4f?9KZP)pZSYa=Qu3AVGnerM7OSXpC})!#Q}Eif4zUWAng~y;2SaL@8;fhJ$zy_NQY#s`4AaAr|F-+MU|XG-zvRF zheWCh9_nQhQ>z7lzwI->4A{PVGrFIUTZR{PP+oJhgd$`tZl^v0y>tjOi;<<&Onc0% z>&L5e_Jy|$CoNZ@EjZlt|EdM~RpXfJ*_u74E*$oNP%Yqa`)U7UoC9XQr>U5q#p}8yLw)LJr`6& zQR{EImcBtxIi=A6ojA5En~wOFuVG8Ng6{ZFC$Hzf?3pr2hh{N-aVc&QW+i+{Oz7pK zi>UaMM9-`$v_{sYpEW7sKFF!bm13!XglEpm61DEe97!ep%OkCkdmF7y1K&dIk~= zOz(lT6U9+dK`3*Rp1NfGsw)Epg7qd&j|sw6aUf2pmxegfY6k;3vi)XdR)HLXIu#RE zuw!CNAbI9bBcZqijKb`Wim)vj0HhxOsDU_!@+BTdXi^942#e$;UVLzT2W(;PpOc@! zC-MGy5@wqk04ed0>#LgxX;@*{ypTuwHrcm(M$6)7FC7J2_m;{QO!dtX-L1*d|q`gdXOL|{GY7+|kBjXzn) zky-vrA`3YJofk5~U#jPmJen{%{#^C1p+Xm_#wmAT7q)S>ptSx1c^9d+o8Q?3WPo0P zKG`BLx#t6tOi(J_xA@Z5X3s8AKpVEfvb_tjwC?=A6L4jC-0qb*T7=ag<@s!Iy9re0y?4kz(;1o>ntbX0d4E4 zCfiDtwW!ycF0oOUJ+r^?n}?HszE&t5n}-dsz?2YZ^*lrH z`O7P5$i&(ng7SMVf7S0Zw5d#GF=N;ZdaUy;gE!R3b4kpQDrOc{kC{v>)<%1VQdF7a zh_wA}!!FewOl>GS&X|Uy`|XJ_zdkhQRa?0AC*x!dYzsz){GyHxOj?)AXcjd;KH|!_ z3RpYO#as%J{Z7h#^aWnv(NlFufq58h3M7lLmFE<=#mBk?FjVYz0&eqB`8^j?FL9sA zm{;S+aCClJM`d%4Ij6M7c-ikf#5vm8mm=d+dtV^%1zD+;mAlt9PoB^4Q)L`7gJU&h zhzlx)ug%y^5koPX5^!4q+s_w~gXE)tesSU0gLk+d_9T$J1RHbM?~B=KfA^WjykE)B z?A=r0B9OwyAfT*#TU+SEbEr-d3qSu`xOFxCBvvhMuY)Kuyp?FYFc;Yc#4=pG?b#XzH zQ5vTm&$&%SlZz&5@6bHWR&P@X0sN?5czVX}?)Fs+yx`G)){=f`B!55!JmJ>jG2JA> zHGe?0qjk)n`3$I4R@W1$T6*bkNbeRY)GAu^@IQR^nG{;rl34Z>ym`1x0S zFYJXuLGkpcdQmqev9CvVVLm|5yeTJ{Hh*mVK1^VWG-ARzq0%VS5|pxLvA+P9WW8?7 zk46_9%$hIM(wfwxMbm<%KVXEWgWslvw#3IFs2az-{_O0+UCdQMo1!Uw?x#E5XqG;> z5_z=R!UNbmMke@m#HnjD6r8&kuafyzw}RL0sbV}&B~j{otmT-pT^h(k47Z43I7Xk2 z%&GnJA<9;EKHYDHNEyIj|R3>WRrRNT#Xs zQjabI5_@^qA~hujxbACHb6zMYHoD~`9=jY{u{%`ixJ>N%F~)4D5%+rn+c7zxa8;*C z=P;rKqckn*c-|pSvr|3h24+uTwpPhcW@xm0Nbp!}g^qcKD23}>0fxs*%BgJSq^ul2 zqmDGsS4%G@C?M(HBNf;+f%_fD6>V0xm#aCF9o1 zvj58YPC&5uNL0@tPAEopT6dyK9{H9qXQO%DRFFOlB}UkXBWYmTI7|A-=XTq4_DBCT zsCkWN?d&XZDP5~S8R^U0{p;f*F@B{2dL}!6_p&Ehe#5{LAIF$J&D` z7k8OLcQytkx>9|pY(`qSHQ=do48)}k5tXA(;D7Y{MC2U{JqnENhxfh}e; z9E*cD3s!Eu&}%ZLTI0UnUbf1WhQ+sSIJF7> zPP?f{Jxr#IYxjo;E9GqLU4|fLAa6hR1e|@!tYzIK`qDqHL$vM@&1MpQzWH$lx@3n0 zdx-Vtgpi%Jrc;SBKalp};&~p|giX3rViPTct4x^?-LRTk`Wop+E#6kL<6R}w&lfs> z+@eK~D>a6r?At2dg;BJQs~J|WqO2P2BC>><(Vc`bv-!kT{w(_1pF)w~xx<+C>ydj4 zow=>b!kRkm7SkkxjO8u)zMGrg^e%bTfm3U5nzXVzOHsB-n@INC+Q`17JX7q4Dt^iO zol<1&%7D))g(vIkYi)APE3zO$k2C`TgAFi8vbt1O>9m-2^6ehJRqLS!pD z>xQ&Kk&>d@Ov)9PRahU}*6k>zc)U@sJFklB#ADUO0bN~gvsD$hgRQDcs@C28BLY1F zq_`dmbMz66dibBsc4w~3T+M7Wse6>sz17SRG)hd!kGe~-g%9w+uH5HO>YoqaQDYIx z$}6b5w^8^^G0Uz{uvAw*nl3e!^hj)I^lUDFRwB4rDI>W%jJXrYek(__7a_3fwJLJR z7fiDvuJ02n4DMEQv%=#9EUm*Np4C;RzyC6#1spX^WWFj*zmkY%JTo^G!S$A6qBAUG zfk zkLz54S1VIfak?$;*KBdJXXPQZak;#&-85qW8*GhEo?e%(8+q+{VU_t#UXg&d6>D+8T8@aB(D}b^` zQ~z|;Jjwkl1M;zwe#$c7an=d?dV7+!ap19YbvPiz?>R5mKWXh74m5+PCA~mhXdMoX zTRs+d=K6={Xl&*1@pRVS8a_6Bt~DL9>fOQuE-S|F-`!KGz!LO~?&`;P#=Bhp@A-w_ zNC+@RxA{L0wzTdLfoR}(IM^MEA0HfFew0jZdm_d7OuG&u|C+j;g}SGy;QqG0yaKB| znygio9iI*5o?&l)nxOEYqt<4a4SY2?eUy?VL&s+kDMTIRIChuUKFQYFHAOu;>gt2b zCk^JFH~)Sc-d%-$kQ{}(Z%v47Qj_PGQ-ghK3p6IZJg0rWnzJIp?mWD+y&>=Vo<&pe z`Cv7Q#L!Z{?BM0~T<2^7I?M_*mFTR@APpq`F(i5}?NSMM$YDjRkA1(2lGrXY78ttR zn6U=i0cr1!A1_lH!>lkeN$_cB#dzyU;8S7_*HiR{DsExKrmn#j!C_1%wzA7LubbVH zyC(?O4WSd!mjO zFwP9o=Mquq&N{x|pJO+NPUq|Kf5TXKAa*JpTs?dm^HFt#sv%DKkrC_C5y+Q2c>z_A z(3xO~*qH{cYzVrORdh77uD-?V{KzPW*@-*7Y?aS<8?=^Q(4w}bILze^)t>xQFmRI= zdMQn>10I&{eC#7)=P&+YWKZZ-Vm9)qA4Ga!Y>uq~(OkHOeQ6}y0Of)3Df`K(0^m<=~Wg0VgKYC|_&Gk3u`0=Q{5F-rn0^dtfMf!O0Y zuq&{Jg8~gpho~B0m`PkIKy~EdWXr~2poR}{uLv!-#Z=ghM7h{)8?nP#R}vsNbpf>* z$UBTYLU}ElLUV0}!jC8ny0|1_ymGP1`IDl;8KQ%&VL7t(T{0O{{XN8`dp|eV_gd;g zPdD~(>Z@Dfgwfn+&(72|5doL!{)W|EzM{WDeTt*GG-<93nXS&eN`T~4rEROg@{*Ue z-N^+bBp12wcLbR;(RpD^^4l`?dUL$c63bt+87>5(#!xj7=E`qHegJKdMh?nw74Ylq zr^;8fq5Nc9aLy$mRp?XqF+>c@jT;r3rRuYgj`nWS|%DZ!Slu*4PGMb!HF+b!6+)x?$ez zSEk!P%vjGWK(gVShkDzf&GZ)?$#hx>QLmNd8XK#Wavz29g;LH}tS-r%6|2^|iOk!U zhm`VJFW6Ol6D=@C^2`gQn^$m&AZ69MYB#PYi9OL&WvfZmCcNn*vcWvkItefE;9`ki z(uk^N&EL$_YGAQ?jP_>O3WLg4Wt*h%Zq@88O|=WR5VDzns_Ea43~}F0%_YC9?@JSB z<)O!X$F+2Y?luoneNRKq3Qv#T>+c~b8$zs;F*z((barZz^0q;?IW2i5T~H|%%^~EF z@(cgvr~dV$%eCx2ozAev(WUQIqdZPogxO^DVcrzQ*ba~STqIMYREoI{tB+|i{)Q%q2|6=*KShcf-&JnY7Ux@_RbEmzy`b|*l`}VR za6}JvxjJ1E6?lGor3u5loVhxU6ph3Pg%rp1u4tY$=PN1gd%hNgQU%WnEs>+&(#kU8 zf<8fg6hdN$`qBlI8G4o#i%|@&Dq1q5db2@~%8S*&sjSgs6-^cz5#+jN7#HT25003i5~po;T-s|A+14*Z*P@aQpvcqaX1M;=7<*N@zIvR8nKB4?_+5lze3K+vNrq za`b@vqD}B?U`IpxoQ(Lr-Xu7Q4v-}cgca|@ZeVaoblm4evsjd5&_fC`K-j8D=h}9` z+Pig~V8Ro`(vQNb{HmC${ZD7Z7KM7}HU==%Yx1kg#pLD>4diQ)C%lf2<;61MmoeI9 z*+Zf_<|^Ws0wTWEv6Q(?sxTeI{)#fW&7vFrDF%rx77; z-N58dySkGir8iefOG_dY+LI%~KMgXoYY~M8KySlyG12#}7ER?#Qlf>IB#%HFvpRW7 z@QC`*)rx7aNF~cNGUJ0V++B+!;axK^i4ua0HnWZw?nvDq%(0Vi6X~ z8J^2B?)MQ_6vcbKo|(wOL!TXU4QAOIF8C%3j=_R6Pi8oO2-3RmlDwI4Nh_Heb51{s zF(Pn&1SLTT#ADM#nu#;Z8e`ObudXHdI^j;)z={zsq(|wqFZXX6sVdU-)ryz$?RQTcxYGSM7gq12=K?jG)%`nM7{hW3NAg?XgjRpC`?fRW7TK?M0=_00~y5L1I*SVy!lS$22 z^T{oklU3T(eAHT&8@S~G-bj0_wcq+567}pXjj_#kGIWRNx@f9xg`ShJMVOvz_9 ztdWQCm-x5q>}M{R*p;_1(SZk(_^p@J69+8pO~*g&WP*dH{tn{*-$BWfdn`BmmjeQk zE?5VDsJ>UC+MO$9VvpYs2*hx`^X|YpsFZ2?bKafE0^?v_)`#<~g><(Wb+jgTt5!mFn1% z`MrmIn}TSo&-HBVB_%7yJl@1`Q?9@3PW$`hPupc;1mNp$jKL4~Nfx*n0NR)AGj_kK z=7#;%RyFedQrm92>->OgbVR=$n2Gg|GQZGewU`OEz4={z(=$i2}W7a#i ze3Z|qo3qw6%iWwY1-If2B0d^6x3*8UFgMx@rid*YR(L5rKK5A5yra>tFsi1Y|e~|Z? z%0H;<+#~6=zu3nd=TP|WbM2U1qRJA1P%7`1hd$2Q z^1bZt3q|@OWIFASbqW8|&lTn{2-nv@k5~zArN!qVsS-h(bc=OtrMZY=#N{c?Nj~Md z!jkgX_Kt1tsuxkE^tr}ITxo7p>A5iQOENNVk22+S+IM%-bKLnhP|aLgS21(kzskxBSOJ1cpF06rr`%QUu$W5FGmV#)x`H}ya?6m*?Gs&;?xqBM8 z&t2sYHi=zq^CoDQ-AY1QfR9Tk6r1tUlGceB{6@Jxa&2#C<>Uaeb)Aj{`dTKr5l0SJ zS6_}be1U1d#e0xo?AGF{@&m}^qw|BOzwHk-0Vt_ny%~%-g9!lx1ZV^#pJfY-7bNfH z*1-@D3;+%SYgnoOK^uSRmQ7bqH)r7&V?Cxa-)0jv$7R42*#M2-8X~|Balj zl#XAb>c%2G0cye=fr-7-jyD@VyEU~b5>FMNh05j#jI+9c>Ug5x4l`qGFcl_q;T<)Y zsD*b^g#I&4!i)rQ&p}5(Zo`7nI{u(}N>st?hhO|bV{^QPn;hcOSsq^PY;bus5)5^gO%2 z*o_0dP_|)jTa2;~Ch_`=7io>fJGFQ^dQOJF4I-cWD~95KRk{xzwVTRAMC1A`QS}O; zE^coN=}c}!4sJ6%Az9_H*hY|#5RFxjk!C)2KwJ^@AuF?{UMp<++TtlbGx=+i%v#KhLG9gC^~wK zao8_qMV}1VQc|1R{UNWk7tWzP!oBg>dOS+8jp^4>A=_BavUWDm5hsRmtcnI}DhcNsAjlolgA z>{j9!hXlE_qo(|T+KI1UAbt!0sQCf1_Fcb6fl045v2syKGZISZ-9T`}Xy1sUh(qn% zSJVZc8v+0f9($MV^Q&3RI&QrJMbWTWKEp-|uZA_Rh4s9_S4Hrj!-$TWwdV6xXSYPB z5Wg~ixO*u00fjDrXy-z7-%$?M{hGzU(6Q5(im2Sw#`_B|6!a0EN5nF%IhEM1XFGP{ zHBYtl-gfjLEhAq>oMD2fx=La&BhK=c2Q!|iroK{c5STpK^UMq6Fn)lHLw1jUY;q91 zs<@X_>2yNm=tg7j9yH~4p*=#Cj8AJQNkA|Kp-APhXK{>Hk&IA1PewbBP9JT!rhl(Qbn@^Q{v&t-a= zK5w}0>uf6iPzTV;P1Hb705~19<{jn~Lj_g$!O07KKtw?{^@l15{+@H*nmAG8yq?Y8 zjYo*x-22QdhOmsQyr_Y7#RajBb#1 zH~G!qRCtT(0Az3ypeLr&rty$dN%E-ZudoSl8mDW#bw@gdg;MaIkrE&`rP@#-6tw0^M|Nwy2iaK zW9oT~$k*TqwF{hszz5jfvSUZe`7lngAPEW7;fnCEYy28g+(l(WSHqRlZLQtg(1)fU z%pEaj&(A&E-+J`^yHwLT-oMrHxvE-5o>#@>#Q%{$NBAZh~A~-S`4KqsZ*NYg(^2W^7qlgf8pIbmz&rB3NtVe z-$E>9mK{!rX&D?OgXUjC1(Bt3{OhsYL3)m)&EJhBUkg+-DWmW#$5TmYwmI^kVnPOf z3%#YUGE9k_Ush4humNjStRh^lT)2?H`%|xq%kx`ZQ?N_~DO%+rV%DO0Mb4rWjpzpq z&7EV<$eLs>Cs&EbeRvVv2aMwD^-=5ZXU%i2rmgU7=$jiT#``?N3?%e=vpLZbc*BOZ9UpiC_CYp;YC$e$35cv<_m;ogJ)TEiR zt@p5Es2VW1&jd9dFC9Kc=UopHDzIYFyjCk3MGYL{uws6lpl=K{d{f|24P^gA0aX*W zT(Il9vMuYQ>w@)uz|R<8_l@s^B&AzR5}+e*u%F=tB>!sN-sz%XGO#oya7xTOHcflk z&V9qLP~nbST^R3w;a+Q=OMRaYxtMobejY9g&Kde=G5@c*aW8l<8`7g6+d%{8Hy7a6 zxdpB$C#)F2>;4kF6^2psAs_#AM<+0>^CCB`&zO^lY5FJXBAk%!*1G{Q0eDd|&ML!E zi4eo3C`$&Xh&1esFNVQZ@m1{NCDK|(NCYbAr3U$T*G=ft<0U)@`4;p5k&iu#)YTGA z+{1>O#5PBfW6)Z-cK(hKm5_U1j%H?*w4h2=yR{G{)<^G-r9>~gd|Uhx?Sr>qdO4;> zXfTw?JEF+foqzXOvT>3VY{H?mY^bqY0ID+5!51>jqu6z1i!^iR!O&Iq$ z8Co*-TL zuhZ_y3>p9CH%=eOVW;FWh~cQJL}W+eb=tJQ=?}R7L0@8SExZK_How2!3IIky0`~{G z|2v!kdU*H#W6|kZTW8{^MiH+< zN|DEAE^ayF`>HJog<|jX??scUYJ>qU>3NJXFRJHJ%FaBX82>aJ3cr)}RyTg0n69z` zJK)A}gQ#~ia)k+7Xb;EQBon?8M6~L|c^;g1iBidIyH(ctk7(~>Xv3qV-aRwf8Wz4G zXo6HHhmc>*_Ia<=s6`UgDjjCnZwSgEtmn_+SWq-|m;8^o9cto6HZ8G^uuE;QkR9=b zH9T_adeAWmlXOvGY|b?&F7+#(q@G>pRai_( z)|P`q#lqTfXMhit6ENDe;Q2CnG+(t*Ei&0=Vk|iF?4g6Tb#OwtGFn#;UU$XQj)nP_ zkihCq+RPH`7f;E$p{Wt;()bu5J9`~xR%Ou8*z=4pr!|1vLMg(&o|El+jP-As6PKz>q0PL6C~@VO;y_ATyna1 zvaG4rx>PEXyGJIweM^pcz8JB}K_9Uzkgrsv?A-sBk%7gUdTeQlO7LAbO?gq=+%o%k z%_RX1c+yZGcHqTzVZdT-d4y8DjP-rkbSo<;vX`8T0P>l2+7u=iH?((zk{9f<_i)1W zPZ!Ws_B%0rii1E;Rt2S42xUlb*(G&}hXh{zCbjqHKdIQkR0Pp~sMw^M`OLvK zIlp_clX=^jjkIe$8p~%V;|fV#>Avfb;I8Ae&`vpiOi2qgq-Pp;bDu&HG%GT0{7B(b zTmGI#yO@LNsIAWNtM9mIPxo(fFq{VUug!xF30ZAu{kW%85V(N&?m>HyAg;ZQF3+NIxv? z48HlkY7r6lgL_U%9+dB~fJB(Fco<$Y_8ltY^3*^^-Er{*9^JoGAfx}SBCO|%M7csu zyV};RD)>M}0M#(91@BhI_!P?WLs+4&`rJqot+jCg6wGYo|IZ%Ph3 zOjx^Qy+AlS$<&OUJt&!Jy6SF<@biNG`B9&F7|zK(y6jaSjl-+bPcdY)A%{9Y-XJ=0 ze)K@>#7O3e-&l_pSc$d!6vAoYI$;r;+5QHnh&lV>(J8TBuWEK1FtVld@Ju;C#51 zC{BR#C8MT*l|*u*gl)=_JORhWZOnlkyiE{Nz=GWIIZ0TfWsy*YnRkLx-Et_)4uVqo z3LPJoF38@{|8w8IsaNov01pI&OAQ7JfgY)B@T1lcxvV zrlUcX>=X!!(Q&^iET|#l@!gBG+k4T9ig}~->cpcDj4j|@{Ng!*SR-+ABcUh$-x05b)M)6yRaIyEg7u*!{rT7Ifwx;3aC(QPzIzSy1vO@Mbpdk~EwXni1ZTy5}9x z+Uc>j=i=O-adT>O<9))nvY42pav;k{#(!07ViKOcnj5}0xb!oi8ufDhb@$>u+w`zd zje`^a7C}N|UKNZ{ zyPa{j<-6Lpxky*cO$|Tuf9}|{!zas068hl%%qsKqCE#so!>C?Z#DTPLuVirT%0HD< zfOze-UW7!5RFF*g&Fxuev+@oItO2pOqgO1{jK0uRbys3ZiA^j57yO*9+LlkOfeVyA zoPs0@(_%&VoB|MzO&-5KYG<0I9QT4a!pHmDQt(c!M$Q(dIgn@?+x4=UL;32Nt8!;bU;@7T+Z8;R4 z?&{m=@zoo9xw_2k+ccmF-rC^7$H-=EeL-1Kn%+vt+@+1d#VLua(&mwb}$~gAn;mSG0Q5cuHij zH^DcxFIEFEtWlSQhBVzD{Vm2(II_l!n#A}25cU>Oaco<+FmAzvySuvu32u!$!QDMr zaCdiicXxMpg1ZwuK!Cg^=iK}5x&QaRfApYwFlzT)bIx5=z4or&wX!I&X>oU4<3j6D znm0q%Y0w#(bRQ3Q)oq%lIj7SviknR@RgCF4j~HDZ3B+u^>qgjB(i^sNXKMxgFhN2J z6&?dOUR+e~NjR;e(+e~ChQTCJFaH6HOuZJeVw8U4x8_^d_e|L4$Ce)~9nB9I8*zvz z1}wjSHLWhk8wG!Ed$jM=t@=97%OB4G=`ndx0Ol`OQwXO{x}pVHfnrq$wuJUo%S&2h zt;$Ep?^Ue_r&o+lFVar@aQmAwFH10W8GdR%+C|iaevFH_%}_9Ejo7vftUBpB7*_>~ z4d~>f2G~+alaIUffEGxwP#?WdKh6$DkA9@xhwZDe(k2i@C1v0a>hHiEL>IsvF~A)) zVl9w%|AxR@f@ubMO~dUb-+gcNuTQ@>a-FmW#Vaa#M`?J6|AX?M4gM45e`bNj-VAA% zlJ^~qOJ>#v6c5V083fTk00_qZ53YYx`VMwVk75gK1`BLv`FFD(TbmEtOrnkNI2&MG z@N@4t|JmR_G}nkVKrU#JYyz910-L={L$q`#mwZNixV?$`6?i~=phfXgEg9bd;^n#E zO)o&-Jbn*8d`6F^Iz3IJm$Zv;r&s^vF#J=}N6Qb7*`qvqx_ok{utdNXKEiTK@AuKm zW$?j4=2+j)j}f?%0VibAJ>4?PT<5@p=4dfA#LgymnIC0YBt6P^tBjD`UzNCH3XrxYhHOyS4jkprJtJ z()gE$?fd@G=yADp>$z{6`#w|iUlWqqFYWFRt+TyEp5}i{C-b(hf4(FgTVJl+O8&Oi z_9!>lTzN7&XRGB19KWum5lnfnr9~NDM!Q{J6VAPEztB|)gcU+#OT|gi)fyWF=xYG@FgY9hr8{b9hYQ^uj7#Jk9BO+#o zHS^g`6XBp#j7sho;z8(>{8Ag1rRb|LSk<5~3nIF2s!~+xc=1Cpywb#zd|YH1T!*mz zm8!rjzihAaHCr&6?0s!fd%yGIEx={>LV*7$C;jDhk0;YjSFX2fFP`tMb_BuMVb$~L z;X6K|qHCPo|9FrDgR8CnFxc4U+A{0$Xa7%5|6Au4j%Xpww3IemQyxH&M->Itbk7@ zcn%X>pN3?9p$G{DwA{nkkD}~?5ii0hIE_bDD=|agyGr>BxR|vpVdI)?-72l+==u-y z&9}?f_y3s3yDk1Y_9oR?(7uyNXQ#MJP~FV|+eta_kd zxoCWg_Y(W&uNx}uxmT3^l57eMW&DBb!0K0=p#;tk=oh1^u*FjCsEvpZbWd!Ex803s z7f*>Oi_&zTug7z0gcfgDQoGYUWay!{{@?-VgemCx7G_BX? zf_-wX%k6iM&NTTp_Q}*)ZjN3)Id|`J-k{^~2Z4EaT3T;-v%NWl(+BfdZu zVoRIVdBc)1x#dyrxJc4uQM(maO2d+A@7nEcoq@wh2*lTN0K z>z{P=*U_p@6p9ZBD$~9f6R=wcE#H-_X-2%GwG5q<|vpl;cc`y)#X`i7-d{2g&x}ytbQ}RuGvTk-();FL51DDQNs6Akk!4! zB>dXy%*Ji^X8+yygtg1YWwc3P%1S9w4KaAt&hfr*&uXOYMsXP5wIdl&C#>UEdKT$Q zI4L)cA2RCIFp>Hh#Tp;$D;&JZl z2-~s*@DG{}6}Q9ZH+$4?_bI=~!-V@AKg8t6nbQa$uV3%>?g%^tv$XYiUqs$0)Q1r9h}|D!#pW9>AUUz6 z?Frhgzdqal939^HG2DV1|MN5Q$31tMh*4%{D2g;`Qev18$xlQS`#vdm;K)J7#>gT= z4FuRq4n{J+eBnLf@oMldpLS!O(jt?B=Osys)357(lt5v+*STmLE7u}*Vyjm;uq3F( z>OYAO3J*qyRd0cvH>cNCU&|dCslf)ZW=ATPgi?{?SFhkE!+}h^wPcW=qa-qtx85NR zLhdR9=K)f9)zD@rW{hofRf`?9p6?dsA5W-xjbm7;qhDn`V5ly}Tj7WZQqJ&)=+xVP6uotBP4h&HJGyph$w z?X#9X@K7xG{Z^T-6nK87;`Hru?*55k)hhersqSX(ZLisOqLbNM{AqKamjv8Z+GZEM ziO9;v_g0!Gd1Wt#YSWClHUPSt1dDMtjQEhXt zf_FzIU0U-AL-DHDfjj3(-1XJ>;*;10voDg#Ma4*>7h@i5=@hkPTVh~B7SAt^!9n}; z)KKXcdk$Kzn5Qv-+M!8oqxB5W-E>kRehMvR%YfyBGV{ZXB8AGtMIP+$2S_3pFGX`x z)ZdKs&%1sYdrhpBdY3eN&%bJK%ZR)|p zyY{y3f&z{-gBNv^r|>b7Q~Co#SHFL7rqhUzgB`s7jxZN*sWscHT7 z7X6KqQ z-MhG}5oRDe5;g_(De1fSo8zPrduUuPuD2Q8&NF9JA$yJ>ub^KVgS-2|Qut;*fzl1g zZ?()u!-8YIHLYL%kd)VkZbe|a8<+o zoQk;JUVk{TXH6g3YsKn!AJH)(1p3y&+Nxx4)ldD)sASc|y~`k0($wnC+e>)U91Zv1 z=rBh8g}&0la2nPHisy)Q`H6OxKD|xMFv~^D6+BM;Tw!n(Z6k}@>*{>)5SOy%ULS)z zlwuDHa4#np9KS8odaUJlUm_f7G0n9z{m|mDv)$g57goh>L~92hFCkyY)vK|F@9R8a zuZ{vfdQMkEBT4Njy05d=2@7UDeNM(7{$~-%jvnWFdaZ!-I=2U>oyYm6j6V^U?D(_j zM(2(d;U&U4uEU5$ev-jgJ?zE+4{-RVNTC+a*TY3Gv_MjdY8OZGolSKfAh$@$?M)-r zXqUN8?7>YZKEoeS%Q=AG>*=FCKTQA{-6idu85jMXz8=De8rBPcq$b(f{*n5#Xt{$Y zqF<6t|HgvxE81mbVZY$^W(34~x)sMfppEm=ZdVrk!N$&6{@2l_Yp)gm&;NgR0JiYk z?62z%>@A!aNZ`I6dmmajSK$;gooq>#vyr6oIG1Jfyf0<>vYvHD88qlfXzM>XHX;3l zx zNxlX9UT4mf*gT!Zix8dO9KC#USzbx*zAUsso4eGAY!gImBW6fF(5%{{#g9$h(MZw3{#3Bcqo~Q50ermCY+$oVVRI0--Z7rpnie>d zCR9*avudgw-&v&s*~j4Kq|S`9^vr08mS1H0#3;BU*d!*`$e!FE#07QwM+hI^)|8A`7K9-i9v;>X&e zVPdiiSM_Cv@yGZcZegCcr1@(?97g4%nfVu6oU~wR^DODsNY1lY25XO>HJYz!h?~ED zB@cRYtPz^PBF_ya!+y!QPz^sHJ$9n|^gBUkCYu|tfIP&}A7dVoHfd_R299nuM*Q_oOiff6wY zh%hVD0NVTv!X8!I%Gh${B*6uM2?S>0vm?#{ld4b0WDkg-jlhU=Fbs`!n29h18o4M6 z$%sx+TwYKDn(@;~8$1jH0aaL<)*~`W&6kfg#bsa2LwYjmTr?qvT*??oL}qr;#1?fX z^a5azNkH&x?CDRGLqK|F;Nh9?*}{Z5jWC@?2`>O4{}~b)^j{&*R!o5*ozMS-YhJ+h8PNfc?|CypRkKvGCpjU_=Q@pRp3^N?Arp`JLo?T@)-gKWhEEZZW?QYR`nuH z1&0KgHP>-crlqAw^mJvJ}8m;gllZU5D;Q8UN+E6?0k>GvM=>xmMAc(Gp$zU z=vYt7904#qEP>pXDC(?%%>G&_y)Y>1FC#hN4^`xua3~;HX}-iISv<3JQG7c-$F$;qJqV5w^nn}(g3|E) z==bgS$?ioVe4|DDH9Xj#JiRul)far5wB}JS=fK0((ZJT#!q(X#F%}#s4O4QveWmNm zL-<2Cl@u2pl}ROGIO6;zVu5<3nIv=`H&L0sHM#YP=yh28ux>a4y;o+1M)O4Yb7W!W zXyxHRw$8(z)8TaWOK&;nTsa|heQ!sBLm^bR&S=JjYPFHPLAhET<-x|dW`H-+?=F-^>;fZmHUPzD@8kvE>urpB+{B*IHsJxVK zbMD@c%Y_bMreY+e9%AAc96%64+RhWfh^ZY>NpER87eQ5L_n-YGYc&m^`tlq+^_QsJj5elWdP_dC$Oz(>0PNml!%^3))Hj*1VOKyaz zCe-mJ)#-joF!PKx*H1O~%4H7fLZ`twk~Z%@v+etLl(uEUp&hcc1UlE%{Hy25Gf~&q zVV2LIb$%C~B6oPjcf4I2@xy$2fMPFO&ne*eM((IccwdT@@Khi-n6>`(H4bCv9*8$^ zmYj_m$;d)a$2!T#HZ;@xIkwN!S;qAh=vqp8XKMP@^V-kn%4#?3z9xNd1>^9}x45}Z zV;uoeP+iy8)p0YpM}U8Ci;@2gEhkl}tnO%r@;5|uf0hFta{hn`c!gAY2r z|I}majV(>ugm897rg?mSYkZwAv6+0oyR-j+`>DSUfm%+@;;Z76%eGLTKiNG|>$Qh4 zzlJmwXx|5rGL1?F@Jf`BBO=dVdrO|wJ_-Kq2WlCl64IC%80+XCF(sEIK-D4{yzoJk z@eSMsrs6iei+}NE6#S-HIy+BY_@G_XZ7$oy^wzpGzR;Tkie=WIv*Y;M$fcSn)9@_| z1dS?3P!|7Vnca!JYD<82QYX9v_CCvq@vHXEAeLUV6zpfFddwo^38IwM))!|G#mpGH zyC^mhR>uMI5R-cl@YEnPC^RhcH2W@1F%2S&JdFpI5EJA{qO^O*KuklQPh|tJvlBWg zpV|D)Opb1rK_#3&_s#OoAx}=ABon1Ag2Nl(8|EhRKw5Gd0>mMzGFPM z_JuR|5TMrunwc=l5T^;T)jK|&ffVo%?;PWshnO6ONFz_4fppasrCS56JF4SLveBR?ju@R@~2QC+gMHF`p zKajtGO%SJr?xN*kWB(<_;r}VdOpWcAd1E)?Dj1f6Q^$dZ<@=$+q9UzK-t-q+cM_8`(?R znx``TUbSf)$%+6B&)v$M1WxGkpFgDb_nz7>hGmx^m<-_33+pR7)CSdZ;s;ll+Tm>a zqkF8DDJY}q-mD1=Uvdiy!h=Z?Y7&*ZJy&lx;}cSQoG&lB|9;zyoct=%_$dY~`+x@0 zd%rQkd0WWt17@0--3Mnbxo>t#AxiGOyHr)3?E8>cR|jsyFLFC@2qiObRFn0`m2|>zta3U6Kgi~H1ma+|8V{1^ zbYxuk-}v2dfU(Kzh!*v4OeaN>Q8D_=z#rV_Q{gc`l!-D^p3OCRI6CJCNeo5t*x0@Gv7sbDIDCHah zb-X$LOUK*jdL0YN|3bn!Pb0&7@cvmoNm1w9A1gklyj$_0_%Dcu5}*|y{}(HU^!Eb? z_o0r0>*8-LJjvX~#;;d#2A3_m^x>O7d4af8#=O#{Tg;?QSa3^4G+0}=LbP{JZTvvf zomhQk->L<0NF1ufnek-d@Y#Y|SOD~2-L|o-r2MTEjCux;4XtrbToixfvP@fwM-r&M zVmSthua3l=0e%FV>+tN4%zCe#HSLR#DM&EG6t137s~}!{bfdKYwF?rbIF9Co^)``; zXnZIG!-{MoQRfm?k0D-B!WA>d8yL*uVsjY{^Bm5U1XMdjoGgWg5bcY$L5;H!Ra5=+Mw9pxir4JObkm+ET|B6JY);W zik%YGZFyB%A9e8BpaMldu4U!|M1Q(gu~g^~_6!($bjtzMF)bn5c7~-81ndEv5Oz(U z#b^aitqKKdXunb&o?~Q7EE->SbmcbsB{qS7b5$@M&aJ2iuZ1!|kc=d>uQHT?B-U_< z1QP{{LD8gH3Q7E2>!<4Sr2++)r=qZP9~T@n9N8 z5U2qHbbuzRB^S*AcLMq@(UM>VaVdcEdbAn4@rThUyVRLb#g2%X+Z0YNiH_>bSXDT? zfiM&>cqE42z2U+nhNZF;lR;TBBF_L$kd&V6;+Rc1`y>+h01hHdBiWMO0*5n|W%_5J zX~K$XDj8>3ij68s+WAy;12}+yq%d}a1Io&r#4nhZ13~Zx2m?6uJ*UGZ>GVq_Xh=iK zjQCC=>=8Q6MVk))mn;sNP2-hmnJLiPmT^?98{vK-UOY$E(LV*mwiHdY7}?;GT2wfP|5L)?rz<4ST!-h305P& zO(c@|={#=LRn+svB&gCpKaL;q=YAUeoOedN<$6~0%o{j$jbK$;jyQ*e#z(XUCJ$^_ zdc5~!uR$4&n^~EKQWyc4fyD@udnn$;^yCom2_u)lrVr2Fd|dXkMgC!k^E@7 zM}+u9nSvmqut!>|GL@;LLfYn@gi07aabi?nl-wUxSz$B_O@*w6N&?-O-jC*V+8CiM zr56cXMLESVCrnIn&fFsy9Q`M><5f@3ntsc;-84_ zR>HSS+))zT)f5IZ7TUvTpo}+Flxrz}R^_#c&VEHF|HF3=@*R1jJ?zF2UU^ocj0-m~ zKjbwC+R|@T5S^Vrjz^_pN+h{B3@!Co5WPNmcHcG~%HMvJdotxh@_c6?Pj)zqw%D|ADL7Xrn4TG}b#d^F( z?QMy?gvNVMu|v7RO$c>tkq^rh+TlWi-ohb5VIOjKpU~76q4;!PDDo5MO5kq6nu3;~ z4TcSwf@)7{UbsHS435P5x^BT$OCTmP8t0H@)!Qz$Pw}^_38dfG4xnoI(j(5Q2;)*< zmmklw6VbG1K|qOc2?eATX=smGUQ$o+#wMJQEr=EpC>J6r`*YYl63UcG=h~DVjC~)B z>!?4lF(&hCtoWF98S#T7Tl2)ePD!j%L}aGC)b3Q5{MYCxaZ}0XLl>MU|ygpFjJTjpFHVnadNL_*}#%}C31yKyV+DO43 zE<%W8u~P6%G1VIKd$Obv?M#RErlvl4p1H*nykOsnh^ppC@(fqhK!uSF-55Kf9qph^ zyJ0+3#27Hx;vd`geMIn&Pd<>SQJ>s;CCTw@SQr?0u5Q19S=T=Oi5WY(kvp-E2n&r0 zaGM(e4m8NA@7BQ#V@7CcX4;f-6yB8v!2y+$DFc-PbHh!X8uMq4@p`lo-wcAZ&zp?Q$* z*eR>qQ_)rk_W1@Vo$kp&btOweCTb~nfEgku+lgo<$J&W}PmZw@NlT8i8$f`O;>v&` z+HuMY3y(#O`Z&nUi#2e{`0f;gux*PWkiLX(z`Wy?NIp~4N)}5zk~-1OijsJ^a^DWc z-VG|Ez?K@c$%p(ET-f0Jn^a+qCwNpuvWy!e>i3D<)$p;B9xO749he4G;*-%_=? zz$V8J`cOEC(mn)FgOFtal+{=j`a=6wqKnsGA%SL186P8jogm%;p^mY0N6fOr0G48y zhNg?LJ1@1BO#cv^95F7<_2QXLgbBF)D=bN=utqG}pRhcsd!;`T>1e!snI#ew(apY; zIg|sgl|N-G^%laPNtjU#?DLp z?zxVH1Tln*XxAr1xS0eo7k7xfbOpr`gjaZ?SI|PGWGyqhK7@zpbmmJkoFj&PFb0LP z_b%e|&!ntAv{-0qrmz)osz4W*=^-J!oA!+mevsu5{uJi!g*~Jw!IvGy0qkq&0YYT& z95%m4f6(h-D#VSLS7Q9~624ueZPO5e2AQfu|JfeHUt5R*(PeWXOr|K_JsFLrQzUOb zkNyZ;qA#G=(DTe;kH9Ez>nqn*e1^$Cj9NEB1b~4A{tCnwnlyC{ZKVAf*fyAVfUph6 z`zoJmLhTC|v zr=ic0kKm8kyGZo$<-pq@Qeob1FMMTEqJOFN_0v^!pI5`(_RQ(D~0}2njqfB~g6+z|jYS>kEbaoXR!T8gW-yS@Y z?UJzfR?JOT@5QeZG9e%?9j4b0IBGzGTcyEalUK8Rm7UV?0mZAn^T1Pzqu7lf3xTg` z{@f_|BY-u-glqEKO6a%YYrJM7QJ?vB#$vbA)~>T_e^7wq*UUp8Oz}HR@n0}s0L4#= z$?G@N<+KZAV& z6my@=_L&FGTLsQfD9K~~O=mT9V+B8I<%g$RMJ5)&F*x&3;aql@)r+ae{IY6(9SUQc z?W;M_4%-@QOc=mXGWQm@I5lU4`&|lx_xywcB;vn;GJDN-qoq|LxF%m6(l&Mm(xG1T zfFi#Xw<6F1(dGpE%$rP!&@&I?PBSuVonss_% z7jdgA3d9wo?p<0*I2|+%;d17-q$5i9kDO`*2bwsxkWvGY?|&1Ej|;X0Tb z@Ovf~A_vnxo4JVT8Knc|tV5=%j z@2hE$t+_kV`IM45i|HO}j!3tKsDU-t$M4O*o@X!zb(oVnB2<+rH>C*@VzWq=GI4}5 z&AOVOJ^{Q)i>*gP91Or86clu5r#gIAFh(4c-091rrX;Bxr=olhNeK+eeUj{eDwoGZ zQ*P?o4*Qwg*8%K61m4z!hH|f#_3O$H1XfF8A@0@;4i#={cys+uZbBOcZgX%)dB8r= z^4P;1l%NwW4DT0oTTe1QGF7dZRWqaU~al*&g2Xf%%FgN2)h8ue@J_MhCWO>lnfuthCj#27C zUWQrg(Srhn2_f!Se{Eh!=yxj)$nHov zw@dlVq8(U}fY32$nBRIO*X&27>tLf z+Z_ycKMp47NI^u0N-IWd5RqmvrtE2Gedcs=?*2LIM&T7s?u_e zq73wM$x+sPOOcz<)Vc3uk3UtRL(T2Px zHkWT3b8<3ZXermj<3255j7h2`d^A0u9y*7?u7|-(h#xmsN{s)T69=n%gAX?qr9+G* zWxn_aklC!+ex&}8OxDQ38Y_8#NxmIgEhNJdsSr1_FgG=Il_rqVf_mUzlte`EkktSp zPT1H7A_d=Ifg3j}%2!3eF4Y4GhuUa&DDWsz=ibptIL~d82ejp7K)j6**1&$MM%LuRn@F5& z23%->Dv9s7g=DFc;fhFNJC76mwO~;!uj6X^C)RJvo;F!uHC%)64!R`s)I32hx=c>w zZ|T%2KYg{|pcVCVGXmk~ zrK!uY{E{#jAm}d)Rk)Fr{(5~86Ov&^e!qnomk`^eIL{O!b{+FOHjTX4xiPP9KOs*Z zZNz-%bId$H#w92>RtUuGXcY(>M`4{deI_|=f zK~M+H7Ucbg=tdMlfT$RY24-HU;1t!zQS%*ahy6PWN8AzWk4){vlO%i{z8xmqCLK$-O89$W%7l-;}o^D&Cr<5QBo_{^9mx~3vmmTVxx6ogjQGH7 ztyP#z$O4@rUuyRK7c?i#SIaK zHSp3Ik*NZ}NnwIyW)JQMOh3+tKu#&jnVL*)sQ4#71JhZkuWT(JD~+Sye<{qzittjK z*flpv^k;^oo^iE@n4KRLG`wQGE5SGxZ8f=v1c)K}5GX2T+E$Y(DweN@8qrFKM>iJ( zXh;$Td|Ljx8j+q_Sw2ly7YW26>38MGs_iB)o)r|T=)G^f_4vCjwJkNsP_)>jlb z4FZOtkvvT`PC|Wy?JEjAn#0c#!V@O(^?AcHrjPvN)Vej05HZXpC^g4P#DUY`^-Aze z@%0a>qD`|vBqL<#{g9;z?GrX#d$U)~Wa}AR7#9=-br@+17uNVxhaa@s7`Y`Tbw@KJx{{bi2VpK#pMl zqdK0Wv6GXzjp?6tR*k9~4&S-Zy0(h-T6Roeo9t!ws87ghHf1TSfDZ`(srv?Eea9IG zpDVXTx)wH?WRh}mj(+nr)!pSdFf7NIf#8yZkZ8aU$LKc;B0^0|!*M&iTx|8C&&HG# z62?TW$Is(~{jKfoVvnC)kKQ5`)E$}P;J~w`QME8Wl)AYmv^53}!q2jlyY{h^^CRHS zv2v(zKTKUyUhG026;g=he0}7pW{KoNJA#|Ok!=@Ka3LeO-4UgsATlrJBPsAw56B~BAuSbIe~E;xOC4-X z<>ds9)6W((?PH%JyT&OkyrmRkkesArct>RNhN5yc|wj z$MSY1Ds`sfzs->~S%hDU_nowt4bZnw76&ovWDf_+=&#}F0T)^ocd~ec#u6EKerg28 z$+>gWFPWZg+S!5-N5&s$6uxhf=G=M0)2Gz@i=a_}I}O3rvX-c0CIMd6h8K__mYZ!` zdgTh*!nln!de-N^Xa4~UfHiKX{Rz3@CJd)Bz}eA+HjlG&3m}}GuxruceXl|yC-}S6 zxKh)pI@IE1PoX*M!qT2+XP@;cB40GVo z@-hT^U`Yq&0YSNWuPZ72_&MNP?I z8j@n0fkHd)UERod)LoGd$Axii@?hur+&F`W#;$Q_ytVxcd)2vVhOoEOO{0;_W$ttN zus5>v_`2**S?faG(G4h$3zJP$$Z?k~QbJ?eV*(J?mBK57+DUYNO7MKM!O;&o7RZws zw}5nZk6)2h{TX%cXSpOvkFQrlEvcd22fLfVc?$1aaK`7OgFO0h1^;lF9ciP&2ViQ6 zF{JL~7MvekEJiRWgbFG72-hrh$+g;}IICli1F_-r+-F_@HcZ9%RO&t8YI}Y0oHv`Ewi#7JhqzP!p0J9yxO(a52>6 z^G{X{4y^V&3gQ#u(oJuiNrr97-1qhNEKsVuIp+&Tgg=5e42P&-cwr(j($3)$F4hWk z${?Q+KZisPkQkJ*)JYy810R(SGfp`RR^jc!`cqd$f|QUFuv7(TY0hB5X|y?G-vO1P8Y z3gRQEw{B3h@1R>6IZnXV=mcPN9<#HV2h4Hk(|O68MUJms2iiXQh{I>L^n7%-M?ios zB*w6OJ6f~8f&8aqzqoT84S}V8f5Cx(p#IA-6JTX)WqkvyKlOe$l6q~vGvN*W_!dT$ zoFQcu--w1nGZfS?j)?04@)55FV=eYVuyyX&6t7h@(?yMB`<-=+`vvU;8K@r&wv(^~ zI5GF{=_iBVcdz)G&0p#2C`4#zT7LB4*wOWYGZ%R7^AbLHjt3c1M?N8o`+eL>MLAe+ zV$_^Bp=wc0YRxRC_~7YL;k@qj1w8_`zl_45FA@uGw1y+uVV{Lgfa2PiNIilbe%S7RDnCZY0 z_xJ*f8Al>lq{PyM^(jn|){z(DBt*1n(C;uE1rrsCWOr?7#70+Lb!sY&gWII&&1(pX zM5<6Zf*CVRFkjAYe=TREYc7fV|7&YgqCjM#)Nt&%LmOaa-j%>P;{T~9K(obEU* zDk7}}bfuzqie{#H#|83YqSRK+Z=tyMi*F$JiNBW3P!YURHcMVbvynyTNBG;pOs+|HFpVXh){Ru~yFH?Rp;OK;$z2p@#qP3IVrAd1|Etn*f)Gi|5U|L4I}Hd3`o9iICo^Mf zW5z#Q=06qAG-YkqIIy~Ysv)=SFFda~hqZ~GuUsq@A)q!3M>mLQSy3qvose}QT-f*c z=x@~Y!<{$v*Hj9AIG=k>v%zmdJl4gcUJavCa5x;4{Z0-&O!CC%*{!R1wRjdx0QxJ$ zUgq^d^FYxJfoQ7;@nQI)(Zm03a0zD{>=}`4LHweTde?Hf`b!I3H4LU3j6}pw{OBMEnU~3 zI9r{+Ad%r>PZCwah+&imO{ln(eAci5i?#x7fRlsLKwk9$mVm{ROsEB}cOY&dWAgSW zLEUE!9y-tZ8=jzsLDW*$x2L_e8a z&z`>8W_dP(jKueBc|V^w>vn7VAWIIMRcF6m@2;NN^8daKrW9>KfC`pe2k{8;=RF2F zmzSf_Z6L>~BhLlL+$D4BCv-d(hGg)&4=C@wlp*#N^+BA&x62+i&C01yY`>&XGPuO)_drJ6WSUx|;(!Wd%^ma0Eq`ZkkW zVAn6(P%UiK_F1t7mLv_+rYF=#r&e`_RC2_cYW=gQOYy`K-f$p%5i<$e9o~Q&@gqaJ z1^wG#3t_Pr(ahDRJ(7D+NIa55?=vL zvCCWhuRS~)K@Ix)b;ZBdJ`1*$J5xJe12+_0_LYEfD z4g+)ZZoet*CM9&V(kv`2Q5K3_+?batgks4_L`&_ZxbHt+=$@cN7WBzvKJTZ>B}q`r z*5jB{)}x~CmoUjfKJjHtJ4C2CWDuaV%?J%^B-eNqx-{jNFqJ0H{A|dp?4bJI=Vx28 z5w^sM;k4`T-_*ES!a=9kpJN@lk1y_Z57tVkR*4cS1St=le2Q{{Do9-lH8{xU*DC?xU!_Cb$&|a(R?_<_GUwaOdg>hd zJ1hZBgA<#-ZI-1LU2|YQtXRd%1WtVatU<+;VjA**f?Z;;scci{!)pszZ7bh#1mj?@ zSYFy``Q6=#y0mprDzB956&JkiKC41wkE|s?Z!Nbwku6`~F4L@n3n_ZpO>hWKrJcjS z?*_-3PDGpE#Z!%R95umoabEpX5($bW z_s=b>ip&5K+K|Q|;syApZygd!hDBZ|I)KiBaS8UAC*u?zPy|9LSk74(fW+>R0bh)8 zXx4zgwW<^!QYq`AI83y=hC_rYqWQp<5UEe5urNtMp8msp>G^@tkwo3f46~&*_Y!vS zjvzLxTC!o3hEwW6DUAu@78#=+B~&VDlo1sfJVBom4tlhiIMxJb|IEd*e0Y|NfnRt~!0h!S@ZHea z(aF|Y-P(%L+{xJb&(~gML@it&6B@`*FVWGs(ITD@w0T8jN|aoXP;nh`1qQ!2 zL%O$JzuFBSTFbtH5wh_BnnfiY?ch8v!~ldpZx01;kps^Hg`hL4kj<1##WkE;Tp@|& zz%gk?N744QnK2e1R0F_F?Me}jD??ykN9?c~{63Zq`h{DmC3#RZvf+p`9-5PPuX?NE zW67gDGgLuw>0eaRXKj!NR=2>V8#x3luKt%U{;`9_PM{u2pe}-c==!TV?7!9hDGeJr zT?@?5k)gIb<%k>1%8X5^a@8MD!B#)p5tqkIH-!{_Y?GGQ?8;LD$7b2Y|NYa^+8e37 zMTjDLwxp;m(dXFi&Yt7cbj8~yk*LYOfmV#^6tv*^GXGPrMXQn7b*P9C33e+}v2Eoj zJu;n23Q^K{0Jl1WVU}~8dfVIFQ#Wxtr4pVP>8-w10Tu!5X03f%hd+LsrOyZ> zO+!1XAy@EyN-bMh?;-Yz#5D4os;r7kX}hYx>+&nuKRdLsT}E~XDA)if9P1y#-zCdC z*xEV%>DA1bS{r{RG|{hJeK)(K%sCKdXdx0H)Rv19HdTOAFp?qPBf89*l@Z-9rWwqj%Er>_Bd^YW6*3cpe7jFV^LIm>5%psfhGNc z0bEt;@S?(LpJuG^`OI-{hGq5gSUN?O&3gBXMz)+nBYn3$3Q+^#`NA`BvuZ!Ia&s`` zH)2QF8QGoQBi|;o2U}h781&<963OF#jnZOfftj1v&)6mxm7F}E2iBT8qWs7){rNt`Xy3~wDA^%0;}dUdxV*3{ZjhEaFVtnQ=lY_ zRR+~%Jo2OW7WbPc;05yW<;p*96EPIck>k=|t9VP8?ofJSY47c4@-fBvPes^ORMe@N z7H>iG-#c&7)4x#G<{(jNs*9=AdA?I#uY8wCjj-a4!&S!QVDg3*BaxQW|6pw1QSD&&hvb;egw_nRCvN-!N3Q@2C!;3@P0X`v6zihHe>% zT)nn0W=|o%3rV3)z@{cYdp@+JTBFcwue6xUOsdjjCN7yeaprLQIXqV+L^^DOn3cem z+JJ?28Y85{k6W6Pi~DpbK^BseT=F7Fj-y@9XKU&%)yIP!50;VIJJp|Rl(yOwVhS?K zEDX+G64rK^j+Xn|b_@#}`Dko!OJ6IhR2`TfIC) zIGo41t7KuWi+LyM%PR_4#dmTa-Vx&<6h*CR0GE^YZ{hHZUyTN5c0Uc;DQb@* z2crmlap5~9#SJK@Zv@K{ySJ5-tGXmzm+$&uEjwp+E<3MebVMRMuRd=<_kL0PGPED) zA<774lZnprz4K#NZzwXG3mANl(W$IvL(X6lGTAiE>+KKk|I^l)heNghas1fEG8$x% zNJ?}S*~8o{t+$dWX(7haG>l1>5i^#iu|^YPPa>}Bhs@Ni;b*m7K@<s1hmp$UlQVNfoQ15?HoC&)LKWxa^ z&Z|gUXdNOh@cL5_H5NdJNU&hIvYDcq{*v0y^YG*xyrg&Q&`4^;K(M)k+8YxaBFsaBjPeTFs+-Hw*Gu0{HS3E5E55TP+3vQR)Do z1g==%#@&m{6c~Ad_UY^Hjo*gz!(e&Gef;Ddk(QOArrPJ8$^NE`6tAl^tS!*pwN-e# zci-*Q?FG6F|Cj?Qw(?n8?!hn858t4D0Y1j=2ou~#9wTJ?+jmk>NB3I)AubC?u6eu> zH)FB`i58i8Jy0NNA4NmAaR++8)?~jQ2y8bG9rMk9l8>(Mm|YzzsV^;p3EBDKVNHuK zlkR6$e2}ZKod9sk%Ik&zA7L-)=KKd;9!?eb@&ki#ohuaMrWoT4XDKCfRRwY+Zm7b4 zTtXiyW4HdbfT8gWTm=CwF=CTOxeBcem=+2?nJPrUcDQ!v#L_0G_T+5vpfo*8?J2Ix zoJFPSIU1WB-WrgV@Q4>kOe))udpzR|!)_RdXm0vVfkNQ~U-!~e^=O)ukvK5UY6wsG z(?Iqz!xT0}D9j@Xc_2y#Hm93=R@L+Va@5F;3%hu-)SiEaZMAnTE+NTI%q^DKnC#@( z&g!2iK1JCfU;ad|-^XLF+sy@&hRWdKC3O8B8}kQ}6+&TeX}PnKb5bVj5j%F>r_RCW z*Psh@6mz#`WEGv8F)Ok3xwSS{{zOIdx~2y-hWzffEhbpHgG4Io<>%L|d)&B@+K=KQ zX$rVQ9cjSgmdgxcpxy%|}Rr|S(qx(wZ<*?@t1$Jom9eioV zrpVrGY4iwCn~FZ&>PYer?JaJ!@UXHtdERy8v5Yfl!QgiB9JOT6fnV<_&FW&6sl-dcj4l;MItez(1cV|R_51W6+2hyvWS;ro z{syBn$^ok|G1?qui)mJJj}5(1re#`rYT}JgVFkGHRo!T>usFyul!7IFB40|=- zq_UL!Zsh;FurCxQ<7*497j5ktnP}Ed9J_O!QnM?pkKPybPUV>Tro!aOY&sWJabldS z)wuZ*xKFX6g;z=5G_Dgpm10Xg`yTHg7f~ddV!_EVc*d3zJrr+ac$u;(&X$6ObxhqP z?LiZ^44P`ax31ID6V2qqb54oNmyXDhdo;;+uSq&1axQDQigL0>uEyEkH_COd0g|fb zi4zP0JjeD$s`#X_hQ?VL+Mc%A(BJ33Cy9_|~P&&(#22>AA!Dqh$Tw+84bc z?VkH&rdMl;%lI{)A~Pe@4MH(^-e0fIEA%3^)7^47Z-%oS3p(Z9ZVA+UeLB?3R3b0G zgLz6NXa`)8JE>8xe2t^FCZT+`NPWQ_bMopmD!e(V%NWUBBc)UCuQL>q@~Rv2C`k4Eg@pg0p9-s%aM9v#HsYx7(^hySbFQ z(7TPL$F^*xTE8aw0~1$8s*_ z1-5i&xJF?5iy77P-Tl9_h-E%w^h8V6`=_jMzSUQ5OFjCdsyXTIr;x$%^KD`Lflptt z7tJmX4Kx0B`SLZ3$Mvz=WJ1SHV#`VnRR^v2aHIx<^&2cuIg*1fsLB?8##y| z+>^OYfvxqrd1=Lyz$k96&dT0KNEj*dEj=y)?9MVhS#tCiEe-Tgo57shx3J^KK?d6Z zzA4955p(8q{=m_V0r-WgPYsAXgQ8GMul=8@q)Xz)rFdJIbZ=i@KB_E0b`2JYYu zKGF$-a?8Lmu;u5s$Mbx^VkR1jf9UU5ngnsYC;-SV!!Lp@KXG?Izm?wFj_2XyBmn?B zouHj(f)lY=IRGVs&VgfJ3HK$dtTqHYZvnefUDo*qneX_2BmY%o#aW;hEB>CK2LP^) zVgQK#Jjg;+a8!#g5=bE8F^lC&=o~S0?I?P#!I|+_;((fLxxH~p(@Z&Yf0r`?Dtt&7I;B= userIds.size, - "count must be equal to or greater than the number of entries in userIds" - ) - // Using Double as the return type to make it more convenient for these values to be used as - // ML feature values. - val displayedUserCount: Double = userIds.size.toDouble - val undisplayedUserCount: Double = count - userIds.size.toDouble - val totalCount: Double = count.toDouble - - def featureDisplayedUsers: SparseBinary - def featureDisplayedUserCount: Continuous - def featureUndisplayedUserCount: Continuous - def featureTotalUserCount: Continuous - - def setFeatures(rec: DataRecord): Unit = { - rec.setFeatureValue(featureDisplayedUsers, toStringSet(userIds)) - rec.setFeatureValue(featureDisplayedUserCount, displayedUserCount) - rec.setFeatureValue(featureUndisplayedUserCount, undisplayedUserCount) - rec.setFeatureValue(featureTotalUserCount, totalCount) - } - protected def toStringSet(value: Seq[Long]): Set[String] = { - value.map(_.toString).toSet - } -} - -case class FavoritedBySocialProofUserGroundTruth(userIds: Seq[UserId] = Seq.empty, count: Int = 0) - extends SocialProofUserGroundTruth(userIds, count) { - - override val featureDisplayedUsers = SocialProofDisplayedFavoritedByUsers - override val featureDisplayedUserCount = SocialProofDisplayedFavoritedByUserCount - override val featureUndisplayedUserCount = SocialProofUndisplayedFavoritedByUserCount - override val featureTotalUserCount = SocialProofTotalFavoritedByUserCount -} - -case class RetweetedBySocialProofUserGroundTruth(userIds: Seq[UserId] = Seq.empty, count: Int = 0) - extends SocialProofUserGroundTruth(userIds, count) { - - override val featureDisplayedUsers = SocialProofDisplayedRetweetedByUsers - override val featureDisplayedUserCount = SocialProofDisplayedRetweetedByUserCount - override val featureUndisplayedUserCount = SocialProofUndisplayedRetweetedByUserCount - override val featureTotalUserCount = SocialProofTotalRetweetedByUserCount -} - -case class RepliedBySocialProofUserGroundTruth(userIds: Seq[UserId] = Seq.empty, count: Int = 0) - extends SocialProofUserGroundTruth(userIds, count) { - - override val featureDisplayedUsers = SocialProofDisplayedRepliedByUsers - override val featureDisplayedUserCount = SocialProofDisplayedRepliedByUserCount - override val featureUndisplayedUserCount = SocialProofUndisplayedRepliedByUserCount - override val featureTotalUserCount = SocialProofTotalRepliedByUserCount -} - -case class SocialProofFeatures( - hasSocialProof: Boolean, - favoritedBy: FavoritedBySocialProofUserGroundTruth = FavoritedBySocialProofUserGroundTruth(), - retweetedBy: RetweetedBySocialProofUserGroundTruth = RetweetedBySocialProofUserGroundTruth(), - repliedBy: RepliedBySocialProofUserGroundTruth = RepliedBySocialProofUserGroundTruth()) { - - def setFeatures(dataRecord: DataRecord): Unit = - if (hasSocialProof) { - dataRecord.setFeatureValue(HasSocialProof, hasSocialProof) - favoritedBy.setFeatures(dataRecord) - retweetedBy.setFeatures(dataRecord) - repliedBy.setFeatures(dataRecord) - } -} - -object SocialProofFeatures { - def apply(socialProofs: Seq[SocialProof]): SocialProofFeatures = - socialProofs.foldLeft(SocialProofFeatures(hasSocialProof = socialProofs.nonEmpty))( - (prevFeatures, socialProof) => { - val userIds = socialProof.v1.userIds - val count = socialProof.v1.count - socialProof.v1.socialProofType match { - case SocialProofType.FavoritedBy => - prevFeatures.copy(favoritedBy = FavoritedBySocialProofUserGroundTruth(userIds, count)) - case SocialProofType.RetweetedBy => - prevFeatures.copy(retweetedBy = RetweetedBySocialProofUserGroundTruth(userIds, count)) - case SocialProofType.RepliedBy => - prevFeatures.copy(repliedBy = RepliedBySocialProofUserGroundTruth(userIds, count)) - case _ => - prevFeatures // skip silently instead of breaking jobs, since this isn't used yet - } - }) -} - -object SocialProofDataRecordFeatures { - val HasSocialProof = new Binary("recap.social_proof.has_social_proof") - - val SocialProofDisplayedFavoritedByUsers = new SparseBinary( - "recap.social_proof.list.displayed.favorited_by", - Set(UserId, PublicLikes, PrivateLikes).asJava - ) - val SocialProofDisplayedFavoritedByUserCount = new Continuous( - "recap.social_proof.count.displayed.favorited_by", - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava - ) - val SocialProofUndisplayedFavoritedByUserCount = new Continuous( - "recap.social_proof.count.undisplayed.favorited_by", - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava - ) - val SocialProofTotalFavoritedByUserCount = new Continuous( - "recap.social_proof.count.total.favorited_by", - Set(CountOfPrivateLikes, CountOfPublicLikes).asJava - ) - - val SocialProofDisplayedRetweetedByUsers = new SparseBinary( - "recap.social_proof.list.displayed.retweeted_by", - Set(UserId, PublicRetweets, PrivateRetweets).asJava - ) - val SocialProofDisplayedRetweetedByUserCount = new Continuous( - "recap.social_proof.count.displayed.retweeted_by", - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava - ) - val SocialProofUndisplayedRetweetedByUserCount = new Continuous( - "recap.social_proof.count.undisplayed.retweeted_by", - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava - ) - val SocialProofTotalRetweetedByUserCount = new Continuous( - "recap.social_proof.count.total.retweeted_by", - Set(CountOfPrivateRetweets, CountOfPublicRetweets).asJava - ) - - val SocialProofDisplayedRepliedByUsers = new SparseBinary( - "recap.social_proof.list.displayed.replied_by", - Set(UserId, PublicReplies, PrivateReplies).asJava - ) - val SocialProofDisplayedRepliedByUserCount = new Continuous( - "recap.social_proof.count.displayed.replied_by", - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava - ) - val SocialProofUndisplayedRepliedByUserCount = new Continuous( - "recap.social_proof.count.undisplayed.replied_by", - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava - ) - val SocialProofTotalRepliedByUserCount = new Continuous( - "recap.social_proof.count.total.replied_by", - Set(CountOfPrivateReplies, CountOfPublicReplies).asJava - ) - - val AllFeatures = Seq( - HasSocialProof, - SocialProofDisplayedFavoritedByUsers, - SocialProofDisplayedFavoritedByUserCount, - SocialProofUndisplayedFavoritedByUserCount, - SocialProofTotalFavoritedByUserCount, - SocialProofDisplayedRetweetedByUsers, - SocialProofDisplayedRetweetedByUserCount, - SocialProofUndisplayedRetweetedByUserCount, - SocialProofTotalRetweetedByUserCount, - SocialProofDisplayedRepliedByUsers, - SocialProofDisplayedRepliedByUserCount, - SocialProofUndisplayedRepliedByUserCount, - SocialProofTotalRepliedByUserCount - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/time_features/BUILD b/src/scala/com/twitter/timelines/prediction/features/time_features/BUILD deleted file mode 100644 index b5c49af36..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/time_features/BUILD +++ /dev/null @@ -1,10 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/timelines/time_features:time_features-scala", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/time_features/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/time_features/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..2b2bb7cb259263773813f19691a0108d1e072e71 GIT binary patch literal 36803 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

    bM3Qv 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

  1. YKf2ta1`q(g;j;C^AzB0{;%IVaXLv?AJcad`$Hl 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ૅ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 Some(LTE_1_DAY) - case a if (1.day < a && a <= 5.days) => Some(GT_1_DAY_LTE_5_DAY) - case a if (5.days < a && a <= 14.days) => Some(GT_5_DAY_LTE_14_DAY) - case a if (14.days < a && a <= 30.days) => Some(GT_14_DAY_LTE_30_DAY) - case _ => None - } - } -} - -case class TimeFeatures( - isTweetRecycled: Boolean, - timeSinceTweetCreation: Double, - isDay30NewUser: Boolean, - isMonth12NewUser: Boolean, - timeSinceSourceTweetCreation: Double, // same as timeSinceTweetCreation for non-retweets - timeSinceViewerAccountCreationSecs: Option[Double], - timeBetweenNonPollingRequestsAvg: Option[Double] = None, - timeSinceLastNonPollingRequest: Option[Double] = None, - nonPollingRequestsSinceTweetCreation: Option[Double] = None, - tweetAgeRatio: Option[Double] = None, - lastFavSinceCreationHrs: Option[Double] = None, - lastRetweetSinceCreationHrs: Option[Double] = None, - lastReplySinceCreationHrs: Option[Double] = None, - lastQuoteSinceCreationHrs: Option[Double] = None, - timeSinceLastFavoriteHrs: Option[Double] = None, - timeSinceLastRetweetHrs: Option[Double] = None, - timeSinceLastReplyHrs: Option[Double] = None, - timeSinceLastQuoteHrs: Option[Double] = None, - accountAgeInterval: Option[AccountAgeInterval.Value] = None) diff --git a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/BUILD b/src/scala/com/twitter/timelines/prediction/features/two_hop_features/BUILD deleted file mode 100644 index a4ad0eabf..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/BUILD +++ /dev/null @@ -1,10 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "graph-feature-service/src/main/thrift/com/twitter/graph_feature_service:graph_feature_service_thrift-scala", - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/two_hop_features/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..ddee60e97cc2a6c28a3a366c0019bdb3468e1d63 GIT binary patch literal 36821 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

    L;w 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ËHr7gs@G<6$B6U%)Yg2*9+Y+4Aj=&?3m{P}nbc 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 HSU>we);Sqw literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/interaction_graph/interaction_graph.thrift b/src/thrift/com/twitter/interaction_graph/interaction_graph.thrift deleted file mode 100644 index d90df54cf..000000000 --- a/src/thrift/com/twitter/interaction_graph/interaction_graph.thrift +++ /dev/null @@ -1,98 +0,0 @@ -namespace java com.twitter.interaction_graph.thriftjava -#@namespace scala com.twitter.interaction_graph.thriftscala -#@namespace strato com.twitter.interaction_graph - -// These could be either a Vertex or an edge feature name -// when you add a new feature, update VertexFeatureCombiner.java and EdgeFeatureCombiner.java. -enum FeatureName { - num_retweets = 1 - num_favorites = 2 - num_mentions = 3 - num_direct_messages = 4 - num_tweet_clicks = 5 - num_link_clicks = 6 - num_profile_views = 7 - num_follows = 8 - num_unfollows = 9 - num_mutual_follows = 10 - address_book_email = 11 - address_book_phone = 12 - address_book_in_both = 13 - address_book_mutual_edge_email = 14 - address_book_mutual_edge_phone = 15 - address_book_mutual_edge_in_both = 16 - total_dwell_time = 17 - num_inspected_statuses = 18 - num_photo_tags = 19 - num_blocks = 20 - num_mutes = 21 - num_report_as_abuses = 22 - num_report_as_spams = 23 - num_tweet_quotes = 24 - num_push_opens = 25 - num_ntab_clicks = 26, - num_rt_favories = 27, - num_rt_replies = 28, - num_rt_tweet_quotes = 29, - num_rt_retweets = 30, - num_rt_mentions = 31, - num_rt_tweet_clicks = 32, - num_rt_link_clicks = 33 - num_shares = 34, - num_email_click = 35, - num_email_open = 36, - num_ntab_dislike_7_days = 37, - num_push_dismiss = 38, - num_push_report_tweet_click = 39, - num_push_report_user_click = 40, - num_replies = 41, - // vertex features after 128 - num_create_tweets = 129, -} -// do remember to update the tests in InteractionGraphAggregationJobTest when adding new features but not updating agg_all - -struct TimeSeriesStatistics { - 1: required double mean; - // For computing variance online: http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#On-line_algorithm - 2: required double m2_for_variance; - 3: required double ewma; // Exponentially weighted moving average: ewma_t = \alpha x_t + (1-\alpha) ewma_{t-1} - 4: required i32 num_elapsed_days; // Total number of days since we started counting this feature - 5: required i32 num_non_zero_days; // Number of days when the interaction was non-zero (used to compute mean/variance) - 6: optional i32 num_days_since_last; // Number of days since the latest interaction happen -}(persisted="true", hasPersonalData = 'false') - -struct VertexFeature { - 1: required FeatureName name; - 2: required bool outgoing; // direction e.g. true is num_retweets_by_user, and false is num_retweets_for_user - 3: required TimeSeriesStatistics tss; -}(persisted="true", hasPersonalData = 'false') - -struct Vertex { - 1: required i64 user_id(personalDataType = 'UserId'); - 2: optional double weight; - 3: list features; -}(persisted="true", hasPersonalData = 'true') - -/* - * These features are for an edge (a->b). Examples: - * (i) follow is whether a follows b - * (ii) num_retweets is number of b's tweets retweet by a - */ -struct EdgeFeature { - 1: required FeatureName name; - 2: required TimeSeriesStatistics tss; -}(persisted="true", hasPersonalData = 'false') - -struct Edge { - 1: required i64 source_id(personalDataType = 'UserId'); - 2: required i64 destination_id(personalDataType = 'UserId'); - 3: optional double weight; - 4: list features; -}(persisted="true", hasPersonalData = 'true') - -// these structs below are used by our ml pipeline -struct EdgeLabel { - 1: required i64 source_id(personalDataType = 'UserId'); - 2: required i64 destination_id(personalDataType = 'UserId'); - 3: required set labels(personalDataType = 'AggregateImpressionEngagementData'); -}(persisted="true", hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/recos/recos.docx b/src/thrift/com/twitter/recos/recos.docx new file mode 100644 index 0000000000000000000000000000000000000000..ffa8efc41c0eeb19360faaab32a2d7ccec08d581 GIT binary patch literal 38762 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 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/recos.thrift b/src/thrift/com/twitter/recos/recos.thrift deleted file mode 100644 index a0c6c8f03..000000000 --- a/src/thrift/com/twitter/recos/recos.thrift +++ /dev/null @@ -1,176 +0,0 @@ -namespace java com.twitter.recos.thriftjava -#@namespace scala com.twitter.recos.thriftscala -namespace rb Recos - -include "com/twitter/recos/features/tweet.thrift" - -enum RecommendTweetDisplayLocation { - HomeTimeline = 0 - Peek = 1 - WelcomeFlow = 2 - NetworkDigest = 3 - BackfillDigest = 4 - NetworkDigestExp1 = 5 - NetworkDigestExp2 = 6 // deprecated - NetworkDigestExp3 = 7 // deprecated - HttpEndpoint = 8 - HomeTimeline1 = 9 - HomeTimeline2 = 10 - HomeTimeline3 = 11 - HomeTimeline4 = 12 - Poptart = 13 - NetworkDigestExp4 = 14 - NetworkDigestExp5 = 15 - NetworkDigestExp6 = 16 - NetworkDigestExp7 = 17 - NetworkDigestExp8 = 18 - NetworkDigestExp9 = 19 - InstantTimeline1 = 20 // AB1 + whitelist - InstantTimeline2 = 21 // AB1 + !whitelist - InstantTimeline3 = 22 // AB2 + whitelist - InstantTimeline4 = 23 // AB2 + !whitelist - BackfillDigestActive = 24 // deprecated - BackfillDigestDormant = 25 // deprecated - ExploreUS = 26 // deprecated - ExploreBR = 27 // deprecated - ExploreIN = 28 // deprecated - ExploreES = 29 // deprecated - ExploreJP = 30 // deprecated - MagicRecs = 31 - MagicRecs1 = 32 - MagicRecs2 = 33 - MagicRecs3 = 34 - SMSDiscover = 35 - FastFollower = 36 - InstantTimeline5 = 37 // for instant timeline experiment - InstantTimeline6 = 38 // for instant timeline experiment - InstantTimeline7 = 39 // for instant timeline experiment - InstantTimeline8 = 40 // for instant timeline experiment - LoggedOutProfile = 41 - LoggedOutPermalink = 42 - Poptart2 = 43 -} - -enum RelatedTweetDisplayLocation { - Permalink = 0 - Permalink1 = 1 - MobilePermalink = 2 - Permalink3 = 3 - Permalink4 = 4 - RelatedTweets = 5 - RelatedTweets1 = 6 - RelatedTweets2 = 7 - RelatedTweets3 = 8 - RelatedTweets4 = 9 - LoggedOutProfile = 10 - LoggedOutPermalink = 11 -} - -enum DDGBucket { - Control = 0 - Treatment = 1 - None = 2 -} - -struct RecommendTweetRequest { - 1: required i64 requesterId // user id of the requesting user - 2: required RecommendTweetDisplayLocation displayLocation // display location from the client - 3: optional i64 clientId // twitter api client id - 4: optional i32 maxResults // number of suggested results to return - 5: optional list excludedTweetIds // list of tweet ids to exclude from response - 6: optional list excludedAuthorIds // list of author ids to exclude from response - 7: optional i64 guestId // guestId - 8: optional string languageCode // Language code - 9: optional string countryCode // Country code - 10: optional string ipAddress // ip address of the user - 11: optional string deviceId // udid/uuid of device - 12: optional bool populateTweetFeatures // whether to populate tweet features. RecommendedTweet.tweetFeatures in the response will only be populated if this is set. -} - -struct Bucket { - 1: required string experimentName // name of experiment (or not). experiment could be production or whatever fits - 2: required string bucket // name of bucket (may or may not be a DDG bucket, e.g., production) -} - -struct RelatedTweetRequest { - 1: required i64 tweetId // original tweet id - 2: required RelatedTweetDisplayLocation displayLocation // display location from the client - 3: optional i64 clientId // twitter api client id - 4: optional i64 requesterId // user id of the requesting user - 5: optional i32 maxResults // number of suggested results to return - 6: optional list excludeTweetIds // list of tweet ids to exclude from response - 7: optional list excludedAuthorIds // list of author ids to exclude from response - 8: optional i64 guestId // guestId - 9: optional string languageCode // Language code - 10: optional string countryCode // Country code - 11: optional string ipAddress // ip address of the user - 12: optional string deviceId // udid/uuid of device - 13: optional string userAgent // userAgent of the requesting user -} - -enum SocialProofType { - FollowedBy = 1, - FavoritedBy = 2, - RetweetedBy = 3, - SimilarTo = 4, - RESERVED_2 = 5, - RESERVED_3 = 6, - RESERVED_4 = 7, - RESERVED_5 = 8, - RESERVED_6 = 9, - RESERVED_7 = 10 -} - -enum Algorithm { - Salsa = 1, - PastEmailClicks = 2, - SimilarToEmailClicks = 3, - PastClientEventClicks = 4, - VitNews = 5, - StrongTieScoring = 6, - PollsFromGraph = 7, - PollsBasedOnGeo = 8, - RESERVED_9 = 9, - RESERVED_10 = 10, - RESERVED_11 = 11, -} - -struct RecommendedTweet { - 1: required i64 tweetId - 2: required i64 authorId - 3: required list socialProof - 4: required string feedbackToken - 5: optional list favBy // optionally provide a list of users who fav'ed the tweet if exist - 6: optional tweet.RecommendedTweetFeatures tweetFeatures // the features of a recommended tweet - 7: optional SocialProofType socialProofType // type of social proof. favBy should be deprecated soon - 8: optional string socialProofOverride // should be set only for DDGs, for en-only experiments. SocialProofType is ignored when this field is set - 9: optional Algorithm algorithm // algorithm used - 10: optional double score // score - 11: optional bool isFollowingAuthor // true if the target user follows the author of the tweet -} - -struct RelatedTweet { - 1: required i64 tweetId - 2: required i64 authorId - 3: required double score - 4: required string feedbackToken -} - -struct RecommendTweetResponse { - 1: required list tweets - 2: optional DDGBucket bucket // deprecated - 3: optional Bucket assignedBucket // for client-side experimentation -} - -struct RelatedTweetResponse { - 1: required list tweets // a list of related tweets - 2: optional Bucket assignedBucket // the bucket used for treatment -} - -/** - * The main interface-definition for Recos. - */ -service Recos { - RecommendTweetResponse recommendTweets (RecommendTweetRequest request) - RelatedTweetResponse relatedTweets (RelatedTweetRequest request) -} diff --git a/src/thrift/com/twitter/recos/recos_common.docx b/src/thrift/com/twitter/recos/recos_common.docx new file mode 100644 index 0000000000000000000000000000000000000000..739f8a65979ac78801b6dac2c8a9d7b32663478d GIT binary patch literal 37218 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 edges // the _ most recent edges from the query node -} - -struct NodeInfo { - 1: required list edges -} diff --git a/src/thrift/com/twitter/recos/recos_injector.docx b/src/thrift/com/twitter/recos/recos_injector.docx new file mode 100644 index 0000000000000000000000000000000000000000..ed76c05442f6e5e08b82bbcc04ad07058d96a894 GIT binary patch literal 36940 zcmagEWmp}_wm*z(a1HM6?hb+A?ruRh5*#)j+yex6cbAR36N0-1NFccTe`jXSIWy

    |2fEge4^ zYj`0I@mWQD=M#wp?^Ak#z|onA@h+$!ztf!qH|(OAdsrbxaQMcVm(%Xy1$(e zh|ru-34>!v$V|KSBU!B%?(%J>(U+7uHZ;uCE}(!e@hw=-XF0Lr-IGorms^zGC7v6E zt8LBneLKwq$+lbDFJO!rdMc5t7nH1X4-rdS6{m$sIuweaCOifkUQ;l`o7X|z~0Q$G@4m~U$9PBeuhiu=!mQG4Y}>Vy`?XTqY}Aa3OBl)n^km} z&JyUq>KU*?xm^6QW?7N!dn8}PY1M}6EkgUN6V*6liGu`>1yv1IfP5SdjkntKq z3Svhfxu?cXh^~El)HNllm?h0EkChgg2;&CUpgw)W$&7flgp@IZgDh%kNLdob74kDco4 zwoKgi2aw7K{fcvzAHkB!>PDVaS8$UZm;-#)jY1_et-J5`nW-ozwY{gT+%|$${hg*s zezDc1p6WHlE%_mg&gk=;{xd=0pODpUz_BI^sTS-oT665B|3t%90TNGNRf0E2wb{^e z8SI7%3*iEk1NGcobDyTjvs%@P^L|LEV<;|v(h^IgYo|mZ+ry^+85l?skwlr;fKk>` zOahUKQJM!CkuqSaFl7WYyHtS~?6PeS<4#bmr@ZrHL!X^swHamgV{Q9``31W_kXR2T z_A zF0B*`%0pPwci#XE6x9vS&F!o)yHW>;eza)iti^h69_OP?H3ep_=b;XJ2wR6CW_`ZB zI=5lZ_$-HABAy8&*Dm{wscSO-M}zw()~H7GvmTN!Pkk4J|E$Z^ z>MGt5xGwfE5D@5puZyXZ(;sEg7G(%Qd3Rj@c!!L0fj3} zIcyn@)*yzVv+?v;)jS+C;>R>?mFh7ciUzZZa}szbS7pZOk1MER8;w52ASEZ?uTPd@ z(!bp6?gq}1RhpJIzNoS(M^->T*LDr;FJ)cLPY@@yrXi#DHI~Wt=Lq zPUu!4@FE+J8pzb^%e2EUVvggxb;O5r`MIH=CF!C^zfmUJngV*SFmiMP*PP>9ZyL%3 z<5A^rP+=YfC6=CWr5IKu;q{2)lbX}8{OiU5m%n)V-Xv9BKSxzH#H+7T{m7^@qUM;l3ciYh?Xja_|c4%kkOp}MEl@Ca#7DvNk0ZBhnoPyoq9VI z*ao==poRTxCycN1&RuVZ^!5Y6Gdjz;1N*_&y_+!dp$8lvu(bh^B=s24{&_TdoFuT- zels;$WKw&RN-!)FPt(U`CVs62I~_m$r)nC{Uzb+{Pi!=f8H1$Aa7Z8 zpuwvY+Mf@s2f)RG75vn?Ie-_Z-*?8Owmx8$2OGFq!>2;}WFcQ~$cAx&Tnw=z(h z1nEQYAu{F5d#ZP8S`DVJeqo8eKLucn>}zI&Jq4e-PKh>HH~r{cbT}Pau?v)zkOg{R zk`eKKmR>rE{xtg7qeFq2DBmlSMQbH+IwWeKBfA$pW_mKoY}n}*?l#=r&jbeo@x&J3=V@Wp%P9oz!Y{Px2D9hni{{g94` z^(ulxk|LU4_(<`17|-`6A>#%jSb0;9YIkQJdIBCR!gy=q4cBJ1?Xy<#*Ic>KQPeZ^ zd%4-N5yHJ`%1^zJlsjb2!l(&n+y^qFFW)PSaMPc+iiZbpWX9Ewzuq~2P(SyI3MK6A z?zJ8Mu*vP3`9)d=nL@FFZISVFTZzq(~v#p!{%C0rWjV0;fh!zoz(gk z$zXLhndOe|i8^}MgY!EZx>2;7RvwY6ac@M|cih4e{x9R^-+bBHGWwq$4jmz9S09h= zk00aCYFj^nR^z(GT96s62iRn();889BXl#Ip$#A=+XQjX(JdjES1L~TV(QupaY^3H z-r|_w_}Orl0k~9`X$|D5EYF4!hh~_6wUP`clyFHlb6*ZYn7&DW)^eG|+?qjmX|A9B z9v$-BjbWQ@bzn*Ki_-`q??gd_a+3|Nj0k>|n3VbRdC1yu$jEKX`Dy{LNBkGiJD#xpDYLx#DehNP8^&PTP{~Z>4 z8uiatJ9h%1ch&?B=WeMJ?~KqDs`FcdBU;MRZM5G?iF38CXt30(8w%pfm}+bmX|&%F z>z|tu-8}a9=vsa8_Y3suX1|jnic9wNM+@7|AecDr08zYes$WW8m#by8jHY@s-|=(t zjFJA>h@IKN(EexX1j<6QGTDuFEk0e*fHwuuY4L1 zgG^14Z>Y>l;*I3qrvADGljKg|?k$gB4z0uNzy?tC;I8uWY~=U2zQJt9S4opb>G7`LF^%l&K5x5pJDAB=CqN*4QpO(G=y*1+ZLVIN&b z_eIlBN~XD~lZUmUC!$#|xFQNJ@6J`Whr@#Jj9FJ7!J<4i{Wp%$#)pp|*8TXtK8s3B z3Lk54fHz?dJ_0iSBtQ`=e;WV6SL7Se?D@%&$M~*o!#)0c6nM|&5cAHQr2;K7pSFjJb94a-vPAd*JYr8 z+Vy-b`Cz4%O49GVxz38V3H%~W>MNUlO#V7hbKh;&TQfdSlhW|?Q7;ULkxotU5ro)z zwm|?&6$N@lX@GnMkFm&WBI2)V(O`?hPA~+mZ5n5 z&o2l4R{jXjSL@Fo(+!?#fy*76Lc&!Zrzc^lyeHYb%15t$MyEjG>Kw<#SFC}ql<3x# z?qj8c)i}V;-S^izy>6Lo!mf6G8J>IkhaMj9TXt&Nm%G({cisbJ{<8DIS5P<+&5fCy zml10Lem9{OQu+=;{g>VMD5e!?+ofpiYNUOdq-K>O15$qB^uFPRJ9fW{%@b@dBFDVtKr>*>=L|)qtdFIB@_We zaXZ!V=5vP-lPGCQ&9ukNnqIsbM_*XWaMDs0>b&E1|IgY@ziMoAU0buK)Ww56XV*&H z!qSI0jI*}KMbk?SdfS0C>$~9B4#Vn&>Br;Q2d7)-=V7^0G(+A**F`<~?_nU{2$!N|*B_wK0u&qx=QGg?xkY+=5J+c8GgmP_-A zVI)9Gk(d^8boD%gdd?{cqt;$^EPVqXb4sHD+HtH|HXZRTk)ew^0`7Q^$1i6;9T+o7 zhQ49=;*j4Ud=vL2Hl~w{E~4a15;?W1&>UHldeR_|doQahTZ*annX@8Vdv~S(CK2nM)>y|d_CjR`dqx4Is{MIR%X1mQ7rjWPm&bLRPQmKafx_j;T6WG& zxg{Nkoh0-^9_aT7Y8gn>Fuey-&g6$l1tCmLx@r>fDG-gPamu0?0DI8w$oHpciI$RD^C(10Z$zM)k$el`e46Ly|gR zN0=opaN~pGJ75cQe|LTWcjEr56K0zV04e_0`06GCY8Dt)FXWLvxecg)VIOlPf1>F z@50;(!Ftrt!CtW&zcZ5|Gyj)FW-=OG@*C=9`*00LRZPgDR)p8mQl8V zl-@j97m1de-|0Q1zplR?=>jOZ=RJ~iU@GnB_|n#9&#q1XHZ1)m2Uj8~owmHFpGZ5)9K*)UYP0*Rv%7`;J2iM4MPJr%9nI0&Et6ePq z!#T1JM=ps6ZNCO00W~{;)p6)$_I`9ieV6wxOoz^ISI#yC7iJxJL9D4q2MM^--TZw$PFs_x(26!(!)q6= znblW`sm9u)wU?4`LALdjlWi}(>j^`uHw+s6F3D>fhsT~P-2<^Hx4ECcUC{7#fAmoQ zFoimb8-7&Y=m`xo%%F+8U1q$H5%l~ra8|5*FwU{@ktCu+ZY)FX{dmUKQ(`$UEWPBy zsiK?!DM!Psmz{XB{PBW+rWB?&Rq@=iMZMRKh4I4CVvfW;8hHLhQ1tg5c^KV&n0-OF z?MWNhaCXbMb9ih~|IQ-%)YXafUQl6hXlKt~o(K0Gs|zo#wTRcM4v}G(0~1i_)x#N> zuNgwi>R|&aFd+b0J<*OPoo5TdE zY-UmQkjc1gZMbJ3Ntrp0NYmdo>{{Ky*!D)-1;b!;zdbSL=lkZoY74jiWbCYgZGnj3 zpH#5{No%qh%_8PUhnyLg{;OxX7>mI&Ur4wPKf&`qc&ZG^GYz9oZOR~Q3PZLEF5Peow_zi(IGD=GAyH?42LhP*`1J&M2(WpZ7a|U?1-6OOo=czANDWgsj-g z!qxjRPmb5%LuDK?y;C)0uqz6>ug%zX5q&YMB4}G4%g+~)o!FFLuefmR-aAYeYZ63O zf`u{c_sQ&}zxz~u&adQq_U?&L(WdQsZ>;=4iNq${8ewh9Fbm+up+VRpVnsvkaG(8OK{Q`luoZ;0f0%N=hYDpcw zCcjrpc;q%&3n?f)adkzNRvf1p&$&rOm5nBB@6b5OR%??F27Ilae|*B~?)Fs;IOo=T z(v-SyB)dleJmS>iGF~UbHNQu(Cx5$im>x)2ks_Zy%fej}W1$4{*bkBTb$OWGAv~qc zUh5{L_O_M;6~cA;=;>#CFYLK~LGkpcT2VIzk*`N~VLm|DyeTJ{CVy=FE|h^$8?Q|fb&;1{KqZc8?a9TJ ztC+KbCPhQ)%ui>!(JXy%IpT1og&VMOgpB|5kVD62C@6O?UODr%ZW*`RQ`u;aQoPjn zNYg20yEK5C2yOx0V2myunM3RQeUz=t$OG}F;*|mtfqokCD@IY5+s-&4_hM-c0}ghT zrC>nr#=u@&sV4^WAgPA(b3K~yrs(tA7Rf15z*S$Hs>^&qvEdB|(b&bT$m&u$+?f30Ab5w10$`pqHja9nCq$X>_W^T*K_if2&pWlO7r^9}+kcU8ZH4 zAxz;slZWBs&JLo z4CcRm{2pFL{mJ}?_q}tQz^}CHiqs#;6mji9h|p4w#@;0eB6_m+BTvBThs;`*4Z=_T zrWl=wh2_vcS@IL53}o#Gp)8JuNG1ZW1; zR8m(+Uu$u!*VU1I2|32t_f>on^*g1=T9y8GDTT*tYO8Is&8{F5P%-baoSut;?I?R9^)PV@ z)r$ck_J!~q>0 zF0&P7w}Y*!O3K#V{X=|Re5AM@a&xp1^m_R3&Gx4smpGeQsZ;kTqI;{EAgC1?ksovx zV+-%$L0!2|AJpuAyrseL847)oWGcm@klKMO5D>SQyl;>Sl$@0a#pvNj$BqOn>)jL=!Y>lE`#f zntmxB&2VaNAdKTJ$w+HZ#tf0(He2P-HJsxJP?=9cnVDsucwR-%W#?+ZkA_2i$C-Ma z);3XfqUGy{Bk01&sDM*gS{~QA46j zDiu_MmeF1P@YZOT6Zno#=#>~BLu8xJZm^|whj5b`j+>p$vH0QM>G^BPjU3x4aWT`P@6}AJ?!5uGNx-^DKeq<8=!_KnN)+7Ii#2n7Y=yesG z!tf0p{Vn_-F`ZaSu2(#6_KWVGn>cO=oru2laB^G8{g~df&arrBaE<&%Vz_y{^-OuZ z<~|M4&tCcz@Z&ZVa8w)#LqwvG73bR6Mx6|1jpG z;sjMgl=3wr*0m#mH+S+Jsve;;!4k1E4O+=y^HxT|$;`U?2Dj6cK^CJEXL`vhpZ6wk zHNBukbxUEG(;cck`MW^C1`YILnr;U?EbZBtDPreOzF}lf=oKPXvZ$|wx?pVftpVhY z2vO4@ELzv5nja{d;*mcbs6K7T(B$*_@HrQ|f^h;5P;+^$Mf8~rHiCn&JojotHa=$V zf^!6L(`aIn09fcs0QLj0#&ckoVGRcP8y0_{sDoi9aU=oN5kDqd)&~RBeL#CfsJSgB zLT=l1cPrkdd6wF8{m%2pUbG#BcV3l(*^|3x~`pt{Rf*cKys?$wpBoR$@A*&ygG-e@?|Y3KbaQnGYLp#y3~DiVS{p`M)_vR`Yfcwz3X(j z0wd3Yw={=_6Y$kXS2)-2Z=$|}mfwsVm4zzesRF>^xNrPqI{yeS{VRO#-{C)ghX<2L zbe8+^TseM&zVNnvo|T@IWTafm zbr{MULNQmdvM7C8tWxVHJZD=TT*_-bZ(s3Qq`(NtGcSO4PTn<~ghlhR-Kd^8_ERim>s)jrHZ z&}Qzjrhh*o*nKxOm+ZE_FHMYvn-1eG=i()r+uWwgJ8Ci(csjIRpof4=Fp+k~4|a5>pJPiw8W)UL8W9gyP#vrPrT>vdRGswS2Fvw+QaIH7rvK`a@b|zW|PrB@}|fq z?RJ;lwacwOBqykf`Q1KX!Y~b$#*9PRl=IwfK1aMOh*#fhol~!O$dH@U#tZ&&E8y6U z<@lh-Njx=5sgUcq@{lGCTu>C1teV%n(vR85-vA^>ddvY(I2cO9X@#mSqSgF$7)-wq zt*@D7vusysjh8lD(#jfMHt7T$x6SMq+?Mier3RG{=$? zNka3Ew*{e8-m^ke`0$sMlC+qBPhcOppy&@hsR9ZzSmUH#G1}-4V5*>KQqSh$lkBw4 zavO~JfAhdl{fkFwR}K$yyX0I2qt?XraEO(Sp%j4*Z0Ym2pW+%WV>b< z=4Y1<4jG{mr)_pz-LN6O!mx_LuKE$n5Oiw!iIu4S!)6-!Uu^tt|DSAhBc6f0=d_Cn z4F?}eYHamjs5U<&AKLtKy~cqYJ>WWT6Nn7xXh@%x7Q54(1SioEvZR5a;$7%93^uX0 z`>aS7v!XOwa6!f z%>2HAY&GJT$LXQGSX%5NMyo7)NJQIQS?q#e*ta^CB9~DGrh^EmAT1U`K}KxI{BLte z#7&CQJ+XMg6ETjC7%Hh}S{2?1p|m)VtMvb8Ht9xSvQIsOk4An5MQ61AFU4bv3=pl( z;Q_FcW~VA|6XV9giFEs>c2qmDoLQc7C%-yUZ;D@Kw7B1VICDk%0>8D=-uOnP%uo-h z@PdUIrWvTB_D1vRI|GqTR}$T`SuWYjXvK?j+r!0utv|BqoL?t0H600I%sV4z$~M#? z?ch7wu$rk`YUILn`Umbtgt#?*<6EujPV$uATuDt$@epWF_HbYtWMvVjW3===er&=hb3THj$YjDI2- z=Z)CYavTLgw3!Dsz{}jGwZ#_@Zv7ZAArO5u&LJ4FKvdc2@6 zh0nh1-!xKIr0b~`FXqYp_Ps3p+jno6j)Jq_u?71Xkvk93pT4C>!I0n!d#xY)x1jLB zkD-Gq7R^{`O~+BA%|lZ>il={5xi9lur8;RNSYnLdJypgsNOwh$c7`eWgaQ8d@58^6UM;T19_Nr}_j>29w z@XiWY(p?zpqc^j66BtHZl%3sEuWF*(L;3CNRyy|QH7Z{50}hm?hDngz5WCuGIijfh z(p6ijKt>n7hUZ9SS!owTr7MkO>_W5sV57V?Hlv$C5-|OYW(FXqCEJY&`PJ>}?MKx7 z)#sB13EtumKn$&!hTIOrGr2(D@2h7!9dhZi;?JbS4%yu$# zhG@HNGDpAeCgWQ(ms3y4Wj3sm1@n~v+qL&I=Z)>lTNr7-~!X{s>phgWptNDpBmu6f?2L?*{l|INy4AU>;OTH~sE+C$vC6 zm{YzT%WSxygOGowgV@RZqn(*rPGJGA*_?JN!qRsqb13bNuu+8TLcZSbeh>;rxa(nw zkL8rEms4;N&5ul5L<=7Fv_+vDKH8M?2v-7Yjw?^|U^Zf3Jh4wQ!_5FtKV_e?`BgPH?60({lI@q;e)ba$F@6=){mr*xstz(wEF=GPWiZ=-RsN3AwKGwoqYt5S=wyay> zru6tYU^4ZFQnvvO({viQ$&L7#dNKP=BYsoM|3QrjriPdQz5AYM+gLzJG5Leq-C`U} zEy(jH^*3s)DAfOh`n+oZu_GeKc*D2tU8f1+VO4oArsHfj6H}naFLIrrj%F&*ktkLa zrDwP{s(kH$lMaQ&wqt)Hk9o;-?SNS4ZZGEVU3Ssi7N5B{f05s~jeyD3;r}3SVduh% zV);MFXH4X_?qgFo*IfQ0?=z9RSJS>j(r!`3{?_;L8~hLTwglErW24Q^z&7E#M$UGm zEaKPpA7k(HukRLjzH}DDloUQP>7Yjbi~-br9`akt6=zuC*P1QxSM1EHIz0Di-j8Rp zF5j4i&{I8bQcxy#^XOmIZt6rcu228UeO=ftT;@b+Um}vSt`#~8KGF~$h8> z4X4NjpfTp8oZd4MMLJx*4UX}bvfEGO=?jqQG+)=mfhTqq<}e6XS0ImAaW2J$ry zfUFa)DtA~6Md+Evi;ch(?^CgS8{%9WsLAf{2VKnqk%3~$-9C&2QnMD50HKfNNyTzQ z!ZTbkAJPMk73O_+xfH$24@<`hm1b8?cgy${D~!dZX2rOwI#SDvHsq5(=)r$T7vq%b z33^QtVCr-CzG`2r{Fg_)+v3r|zkyx)%v$_m@+Vi-b=Oe)Y~#wmOv>vYb{0kaX)-MN zw@E(a-zGa9{{Kw!DcW^UgZ8{rj|6$MBp#V^%1Lk zJIluhkgaR9%+OcT$&J{uI68W=EMfDE`z_vs_+vK~mzD1~jZIzdJ%P4gRr#SLdv#~f zXZ0ue^%0;EkbIUb(4UdKms$sdJ2wN@v3W!umq?Ha|A}VPJ5ng`0UoyrU+aWfF=s76DZE= z9IE4yZadVBwZTM))Rkvcf1(!NO#%A%G6^#h$TbTc4!I2rM(g;E<|$qUuNQXy8;#ZJ z25xeQQ+sKAWdOOfrTi0KtHW8nC*%fP+?fRVuY(&i_U&H_jcKN6y~ybF=p7IV&^^fL z>|`AfcvKO1-(jy|S?RcUf3g_`c)i(%y=gJbKA6PqGg_cA66@6D?&vul{yd0$22=>a zi&VS|8nvIwLqz5LC0_Lcp(f^F3+X~;NCw_!ctWzsVzQ1PA0is593jn^c0gR>_aQ5= zX24&PTQ^aS|3_Sm_-}FeA!icjb|a%^Tl~LjN!j~J8i9~xu)i5$27{+T&4*Wkh%4kue2t zuCxRKC-1l%oV;TM_>n;SR+xV#&mqU)ujJKs+IM}KTuNg5OCeG}^4<~A_BbK!WDm5h zi8^g=nI|2BcNq~TlqLf_>{j9!yEvJYlZM=Y>ank10A36Lr12iI_HDmMfpM=jky24f zGt!%o+kv3)(Y_G{VaM9pNR)Y>YkU9ef$bw)(G z4^>ScpQMJ9*AKM09gV*jUou;*E*~7gsc)B1?OQ{%QtvNHQ=(r=)q2<;2w6j?8u2?E|fzwP+S~kxFRg{3a^F) zXFCCn&po>TU8?CE?_X+ooK-C&Pb;FbVt?h&3BJtm zsFm9{QW{7TOL141Y!;oFp4i=h-nH45|F5Tzz3 zzCIfGPds~PvU7ToFarbeEku%L*!k6wJWHj1^3pUaWcwE-CWyhwOZ zB9T)TDsn|sT7#!jhBm*X@r%>#LDh|NQi+pt(>80;qh>AaaMu>L`$BTX{#tUSbn6{` z5E77>^{&YUJDtUI^C`C^h_tUTThNJ)5L)AGcJWa$?ZSKaN#l&OX)7!n`uZA*;VzFL z0|{8HBsxa?Rg774!LIAdwyY1Y3fB4o-(!5;*S`!Bmu@YJZytJs{S40|0jqU- zr;CC}!O|4LDKYQZFzIDI^9{R1fjeq-Ww`r^bER=6`DHHne9mp@X}BmTXXszW{9kk9 zUT|+Vq)Rupg9^@XF2JpG3tUkSSW$r2-39n441>mfKHkZWc0g$7d2U*t5eFgT^mmj6 zI6Mb41%oUtJuU!q%;kY@RiX@_49A9n$V`l zOSlp8E$9HkracQ()#6QD!v-5fHir>o(3&{*KqrVw$h}X8Gc$^sP^Bu}nuy|Sqqj$r zA{Sl0EkHzvpe>kQ_NftSbS1KmD6%z|UpK$aW7)$ z#h;gv*f0fPdxtf#h)%JH@I-oJxA=O`S^At8>xstqVIX?Xai`Rsz+e0a zP$ZnzJbkX#?ZOO$5QdL?NMe^ZJq0Q=m7F@P zf}^3V1+pUuL$+GaZ+@T=0p6!|2JE(uX$0&J_TwWt5&5D+_nwRNI&W`O{-r=acxHgu z6)IrM6WMM!49i*oj~AiWdG~mRlyBoRhY#eib8;EPa8y+yvJ=r7P1>LI2V8&AmzY}% zZNY-g?{BvPKv9sO{Xwq(4yT76-o1Oi!bKyZ34kK#?f`mtL1RZ5$IBt>2*JxHeomI5 zV$O3aIyr6YOdM4&;*n1&^4Q45DQ9?BwIwcJ?0xp7Xi`O$z~41Jk0It+#>XAgRW@J`S|4r@@oq-0FlG(uVPBnO#8ZTbR=GdRgYzy?Ecw=Mm38(t z+WQFF;4rCo&rGIJQc*;5!M6m{JN-vdsE zs+gfoORN*@VjC=EM|@!ox2zhO!CGvJ*G|#KQX>8r#5YWf2^^fIQ1DpzxIKL^GSno+ zoM@L&j3%c5Y8n}Z$^wN6J-#S*kUG3GyCzGDx})R!R)gx)7;Y1j9diL)=$M2_+Ne-g zmzrbO`ejcN&#tp7OvWT@%fX>yAuYI5!28Mx7%dv`dYL?$uhOU*k!&+D78G%M-@(#4 zIH6P-t)mOCv+QZl%ydJ5Z}lo=W{LTeyJXG4#E@lie2jpNt&StBGH__@X~vhs8o*_t z817Kd!TKe}`j_-lr9QP5&GcC0vx8UVn~nVxowpo}Bt;%kUg@ zAQ-XmlXcRjD($f^INUp#S5<0VD;3DxBa+=dC&xUUk67iPjo25+RVq+)?tjk6z+_21 zvb03O|Duzov>;|~nSHeCnt%#AZm17E@ZvnzXSTLHd{exH`DNH-D=RRfmy8o1@`+{I z1SS_Jq<4gZ2kf%<$Aro6T|iUWuf(t^c6?nKvD~_o+7mW<^GgrsO`g;tPgb3#C~Bi9?>y244v3dRF7~F zeg&6DwuXOizc^%kFa6eJ9$;c-2`(f6E#=5d#7CXOPQu;|ZDEA)-oAdkUDM3+qOx*{ zEOU5l%damYnY@7mQi)=E3}%bs?-hj-b@IIlNqdH?0%x}Qy?AA%V5R*@>>4DYH~S+x z*54Stb#vL%-FG zPdVlrXNlyNofmI5DG3z~^XgXRwv+*;?QcHzt$hRO%ta@=@_rT<3N<`f1gT0*8SH5f zx6_1#z$WNQVT2FmN?sq>XAF`(;7n-ny!7&LAb;s2ogr)*cf^iFEGNV-nRW^BV5N!w ziWdLX_nlr4A`BJ+4Z1>nbE<WC>+}qgZdoV}S`Bu)<9uG_g9}rW68DCa02zr;-=S z69I#Rz<{nnR!ZjIV}~9Dd!vn6X)sTtfxrYfnH&T(DV3^xJ7h+|+49>!V7P*2;MxRL z0944M@%<_4P8-}y<3V|EH0bOVX-dUZ#PLeE9=dojr!*ZTVEu952=hRjZ`fw3DBrQU^R+G~x;H^fc|L zHmmEa^2%u!f^P4DtsqU*fQ+9P7$z-=*l;dHwcBU3M56?LN0lyAsmJ4p!QS#AN2Etr zE5)KOJ;t>~qrWS-w-CYYI#nVIeaO+JEMx=!Hg45VvA>{MkRSn#7Ug08k&SSA3As`i z45aoK5YBHP{eJ^F{05rypXdb2=Dk=iAkaszmsv&$+2h6kfgn@?o?Dz*?Xl>=-~A}m z=#~-FWRT9X;zO_z=;tD_Ki?oVg<&6xD(Q(9{^0{#CXkc3!J~l9#{fSDo4`}2gA&?K zl-O`Ocnv2(VpL{?ODzBpLRBaxo2OKm+pJkC435Jnc_9DOfe9Mz)aU0Wd{@rM8Ch^9 z2K7r+9wR!vNmwewvESc_7bigZl2VbwN+7vWz&2$`9E0QH)@Q*EUMC31VK?3JIEY!I zWsp#Wn05kF-Et_(4gyno3!Uy4&q-g={&{ZS#4Bi)pBn|z)B>6M=X#{(Q&^iOsFBF@!j*Zn>&$;iaEpd>cqqM3@zYO z{9-u)m?LqrBO%AYFZ5z>_q$M;@T(oaym(!;8o36HrYJ+UaS| z4ftsPM(3)q5VJ8ZsJpY0q&Z`KfA$4{mXYd_p`4?IHtu1}yE^PKWx~hz)V+ATZ`!s> zJ+vQneHyj?T-KI~Vr<766?XaR1{W-Mack>mvwIWEQ#0=7axrW5SieN;?!u8#W^cHgtK1)c)^y+n*V%Gz%{3rb%3 zU(Lo{lZJCbGQwI?_q_dEJ3UtSTwVGzu1{>Py^nd97ZQ_{4`dif`7UdXjl;56a>G^! z7r*;gqg<@L?4G}4ogNmfadhU}!cS<77-#i#BnMpj((0c1B_E~R9{{zER=WYbfSSbx zE!(Q+))yBWMqN0m6@eJln;Cao-pg&9^K^yW)UZ?FQ^$rq9%)XJ;Ct^U7U}QL{;!Mc zhV??ijwF41C4;M%z*G``qScprVPZiN0aBq?w^(;dZ1iXjR@4%+U&%AaJ+5z z)FF1XIJfCmSZKDmQ?Hn=z~-7-5`8_dY56#T3wTs~VKHj(NZ?H)p?`C@-F7=lakJfu zM~%lM`rPPsSMU2&tE|+~Evlo8`tmqz+*~oqqr0}bsa#SLOq#-4L8=uOH-7#2xP9Mu zJ$vYU|C*h0h15FD-SPxN>U(7l2Y?CKhvPzsIdRZ^`YY6 ziWU@ICrJpXIASJ7!&V?geR*wI-)<`yQxImx`&sSBTiL`z-MG(2hzA&^wjHLlwU(NT zRi2yrQksRRDyTl_ev=VKsn+1os-B&*E*5)g&5N-6xQvo}2Xqf6?aEp22?aO(*aA1< zgPS;Su0?%xh+ewxw`JdOcURv`kFQ)i$kt_M-=u+zaaRWqj(4tqvh2a~79XbHpWQf5 zd(27(WxUjGI;!31n~ysq*h{n4C`YZ^Y6D`-_<)MK8|#}b6~lTy1&Pm9Lw&5%QDJ+t z`{1L3osVw!!$#!^IlLaEu|%c79z^fGlKF#@XT!cQQZJ?lYUp0e?jcQJIwI8@MpMFry$QaleX;6*VfDHsRHW(t=+7}uLJ>7)RK&j7v~L*+w>=Xh z>M>e2!q*sZSelLR_IGp~o2PlFGmcAItWPv8nRpLa-S0?b99N8^ovN74+xT|$qpe^U;b$UJ@)-#zzTKVC!$u_7U<5TI>!B&nkufOWObgg6|w%oOza&)xZ;I1d4 zVwiEfJ~l5eCRv0@wBI>*8drOa3yLJM!1_!c7eWOq*A^k^P%i1iR$|!KLoHx?=mX`Y zR;vTVgPyf}2zq6hOk$kg?Qi*M2y%qcmlLP;V;{#(n8v%ma~ul8td-ePK-8gJgW{{i zaD<$^(}h|HZw~O5AJB&g6YpaV=qK35?J8Ro4J_(64|y$d17s@!*bH znO0b*e?t&0AhbX{rxSKl@BAM0ujt={JSQC>iHb{qqcr}8{{!Xk1OATkzpKFKZh>|B zlD`7Qr!eCPNd#xp0)ZMF0tVy$ht|I&tw0?zV*tRz5W&Oj{ulWzKrvkt}g z=G$+azYqAE=USOY*g1WQ4e&5b@UY+3Q0-hQ z*Rr~Bgt9;zk3U(e;hRAgk=fNGZ+6;5-FA;qNTTO9m-md6gxM@MC$9;cE1u(`EGl2x zSUR__FXH@ujvmZEjNgA>zIw8$n>27C4!;alZ#&`3obts;d%Cu4^L^%T>-GpW7p+*SpD+w;~FQ?+Ph2|Ntxir_Dt(^I@K#T{?H zb^KZWw+GP{A~{*uN){s7Sr$G=bCO6V?&ZC|KEO0k!t6giSVN2`=fJxL`7V*i`ipmA;q zm4CXFrObTi7uH}clIdFeQHWP0a+c_qC($g_d<|TA4Mr(&Gf;qov~%{cN;smCt$Cizk+=RVRpSV{^j44OzkaRxN z5}grI?A18u3d2^st}6!hyUkxJx$hi{iX7x-JU#CUWO*4Y_jc_j3BA;fpt!j#``$l2 z#Yu}~>;W(Jo@aN*>Yo}#jd+L@%2}RTmrr?FiI^SH05@}7X|bB;UCP6rTWvs}`_{E= zvxFk&eo4oa#5y4w$2=05w5sn1ll%u-%T?Lams5C6uun9|ho+6n{3@N}q%Hg^oJX}i zI~Qlo@=k8y7#>aIC;da92&U~}31w5^NG$2qav=82)H%uEkIv zR9~?EL}Ox4pgLW4xhjzm64i^a=OEgg?8sST(AwL+(?_J_E)C70NlC`|VaomI`D$`{ z5jCf zq=yEl_M|(Wru0i^B-AAt2G2K>d37R7w`}P>a9pvzL}>HuowT34rZi`^#nyOT?YjkW z2JU{C^)OpB8u7qBxi#budd6m(f1CJZ;ifpxsFa$&f3TL8;S4s>{CFR&$*54maTwXhqo&)G$5;w(<|6CM!#Q0ec;a6RSg*-LRiyzTBlcl zf0lT1+pWRPaqnIgfBO4+)v!0EG0EAvKwRdeKf{db>gKScbokjtXYAqnE4V!6WpYCG zk(zkXE|UwPP!3XChwVkvvKgh#asH%u%5+JmEl*n0vPJ*;-CcvR^Hw$!OXV+nx0r*m z*wpP*c*1E{i=~ZE`bHZVHK)p@heXvGKT3%>?Lt=W%hq*b-@V<(qTPY=-=JDMik zOy?g$+!xwAD~{ft@b=AnluEgZzMJzmTb~*5Ej5iZFP1}3Yzx=Eo7~iGCPi*BpPr(@ z?%k>q1}G~STwxP`ZFl3~b$oaF;eX2BWB+BmMd-V&YO*F$=$fO;L-D@tSjVl(D4}~- zDxg73-=q9I+MRe(&Rx|}^0DPJA!NN+)1@axE%IkQuy3_bnlR2DYHT9k z+JbmMoU)}7JU0+`6o?QWb)2j2MlWvnY2P2xUMM5P2AkpI3KOj8gitna_WE~)9z)qW z`g|{=Z7>f+KHaL+Vvm65_u<|QHC;B*aVN>S;!j0Ncbcl zPH^H2O%{<|IWqQz9XH;doqmmvZvGr?!%zGrih{oHDIYb?$_ho5AxBOM6DISCgzCUA z?H(K@#LNsue58p8SJl~6{>2}`E0Lg%@akzV?kOWWC3HcCtTgkc;b$2Xwr9f^Ju|g> z7o-&oL`5bz3pC;T~|0q3;Z?gO>lUh=WEO9yE#gR!>U$HF- zCSv{k>Jl1qus{oydAaYb>yCXE2dE#J#x>o@^4`lN7ZIe=RkI0NIjpcc$|_N=PF~`} z{c(sae)(E5|DE=msnJExPcxsX^>W{`Rxi3y?Z+I8lEu1bupRi{ZW&m9uOlOG0h3QV z3Sc=?F&Zs>1Ozv}c0EwQm1gLYLF#uxtkkr@;PAB{@NNv+i3za7H$RX^$%+;|d(EAY z5PNNztG#vXzP>;Jzf6cUCZ90C!5eAxbg|~`Qo>>raaSS?>mak+xyQjTpo^4+9DMYM z%x$;?w~|@?wcE3Yw-#|0vMXsz*od03_n?cr$A*JoMxmZ|mocETEtDiDTdeBWNevW!0P zcHdngSmbGYeqh3w4i@{%iNR^x6{%bxF%%{{+W7Uiu)?gAtW@#24)R36RdtLl?QCcX zAV6FxSoxrbc&Wx872#h^FS>kNq4!!Z?7c!f)@7ORWcjJf<>;`pr6i_--;B`-K3PV& zfp1u6hcM86%2^u&eDIQiwswlw+&t|Zbz?+ zE%`ta9EHheiOud^TjDFk4SeS@>%tV{uZFnIL0;epEzu%v+;2xqJ{ZB|RJC7Rq;|Ko z_<-D^sdu(a*<-)VcjFFkxeA#4gj&f1d~9Tn_x&;lX!n+Na%Wu*cKdsYA!*w!{*{{I z=H>3E%$y~ z!C(LX>;N2*ce!6ToH^ULv5>+2z4qbTxYyv6vt1p?R&tSL3%FMl3Vg2=1ahAB$CxT)$`Xy=?rv(LamRGY-H-+o$*9<)uq){0!LyCI1(yX(~6aw zJrkw8S(?908myM1WPaPXruOH?whJ_N^|$9ZlyacS{95AdNG94F^c_}yZ*%{B>(S{U z*OKkU6}qz#(3W}!_M^dyCAoDbhaWLEvo&_*^s2I&(sM;*lRkgB8O1(?)LznrcEtai z!YcI_cMup|5YkJ}8`CO4ZK1p-q5*@K_WpR$Fm(=Td4(A@5u4EFL!K>`+6q^8SaP#i{Zu_fI~`M&IjWts+uR4FCK|wIIH3nf5@ff63-*vZI`?T5!35O5*$Kx_cREmH8S+#nJ)QqPMM*G}uwHdRG zfJ^)Ddv*%uj*CUHA8zh83Z6E=y;G{g1G+W?x`~Q1HRQYQgS6A-*q_~PG(2t6z(cu#Pnc+hr;CUg1J)qG(VeVmM) z>l0#Hoto__9f9mnE#pw_*Xm7X0Ho+{a|^rgRut&Kvn%jW0Pip@>wxIeH_JQQ(h6nR zgn&TnaQSn6$s{@T3s3D;mKl0tAFmkSd&m(*cju61H_Sd{sZRM^j1ml}~5<0q~RpFWcG$6gNy?Q?kvs)#g)Nv$@F z&QyF(^4DMsv?DR4X!9Qv)pYYY@9p*qCLoWhC6k9^PQ@#3R&T~upD%SqP98`xVo!-k zu7U=n??j$|8q?|uGk8s{7G(8(?o=xg$uS14BLub zQHxdZ*LOL5hJr{%S}dJl^p1P7`}J^1%c4T}kf~}UUTM1u040EVX9O5wC=DWn+#{b7 zyY`JV7panhfQYfP3}GzHBJR_4tWK;{PZM1NSU_MFMP2X?Sv35*ru#sI?S;nNLSg9S zBFx1gFeoKZ$;R|U5(+|+FwCA#I}l))h-e}*bbq6e)qO^<$aDVU2jtqms5I_*O=ib$kt8nd|J48{n8 zy%7|-xZw?XAku1QiYuKsh@mA^NS^1Jlrj%cZAGd5mE~7a2;n@ej0Kv|dawh#5Eu~W z7m*r%@tvCxn1<(1q7WlNFux%1!wUPh`h5c3o!77p9QoG2-u=h3bMF#sjrm~?|H90o!P#?JwIgvb#-{IP~I8x9o&C&Qn#EQfE7 z;XAcyZ^i`hZ20d(v!nw7(*8iQLP&P)AqF8R3PBYDvv;%jOLq1U`xW8_mubFZ>J`h% z!1zlf2Qwxa3O7lcyCdHJ=&jSk<1Mi6o3`-^%nEq)UA}gl zT#@bm_r8*=`nC4Q$zdKn!aOr2Su)*T4FOIi17RCMO!=xXBVY2)bblAZ_+ zmV+s~+qpLI=Og}UkWP+|iN>OyG#YjB8ns9})=Cz>fS;_!*q++{MDjMOchoQ%h1oB^ zN~d!wCK_FwJzjk@l&k-^?|L*-``Ta0Jzq%--Pqq% zR(=AnU^?yV2C3bL%oQNh1)|5HuJzqAbBBR{N9kB09@(YHNMdkb zE4+T5K9_KR8)Xv})&D3yL+SEK?0Ua36@>Zp2*p{kkypg^jnYMh_@Nvp>8VI@IA`PQ zTLRYZ0}yZMJT(_BnwgD}fqj~pV`R2fG=9L_P2T+t=vrE4cY5aa^ZKvn>RJ!GffgfQ zWwXfc_k{UwGkqZmPy_e3wMk33-+;jWHq*dcdTyF>1%vS{wQoq6foz9-Y8T^}pearN z7d>Z4hw%FS|Eb5p7gvtF1@ZixLg(b+&g`a8dMou|Z}$M6_i3;JkycUD`m4(KFFPUw zffNrU?KfUxg4%L4pabwA724Ix;MJ&M$0Xh_`^(<6eo29yhniXB(sI~YSR0t=*fPt~ zpqkN4K7=4@gvOpi-xIccOJDf2iazL;&o9y!;q^*-trS{V-rJWa7yI)-aV(qkcU|6^ zc{Gyco4)0MV9?|VD-fbrIG!qLv<2yz3J@^;~2)u!iusqVwa#yk)*A) zzq)~_WXCz)$8d_QScYzUn0(g#W?8s7EuH5 zHFkwgZeK3FO*VMn>+X$PKj(Sty|k)*6guzU-X`~i zGB1%EO`T*MtkPLN*6f?da-smE^LL7;!BYl;7mw+K{bx=~5xHfE=0o_5Vn!;?^&$1# zgrQXyj(A&vm|klY%4!$}x9ehJSG>Z)2w*bAIwX}I&$T3@F|@euLA z2gReQC0p3NvY3=aOTrem47!zc8bDcF8@iRc%Yh+GNr|SQVfLFvID9CiAz*#Vx1m2=`Xzmq)Y=gy zn{%t8rUZJ(sAq|H$Y@&kospgh^zhJ@I0-xHkBVD5Ho|{Ycz_0(>)VD6%Ba1*-@Yn+ zQTdk+)x2Y%j(3;;((yjN(ZELb{~+O3pq=GA{P3)lqN4xpuNCNNf2?>^`7emaGN2Xc z{|_rhj1Gc_51@`i8xn7=y(v5j(cOsw4TkFvgVbIYO=Fy zhv@A6zWEcwU~27+bGshEC4HoxV9A$*C*S~TZ4EGb^Vq?ykqxv}HticiF|ort{i5=L z&o*Nt6-}h^hT{?@HDebH{5Gg<8rlX2;&6}Tbsfh&v#fFDuF+pqa?iRu9yG0l$ijDNG zLZl0!ScCRtf(^xFh}Iv}dPxSxTFj<~bK^g#RsLH4LLJ6SE;{>*S|1YMKc69RpN(as zg98=DNq}N4Q?*;Bv7@9x@23S`A5x?ez_Y?ygcQioE}0G;#+e1fh-ou~HlZs*-^sKb zhKM_a7sjdMw-l?)ty`r`3ms6d&v$}igG1-fiK*7XxXdB+Z?4J~qxn^h;Pp_(h%(W{ zPBkXdkfhqq(O?olF{nCp%VEi)^#K}RK3AdQv;9%j1X4*{Xy2k$s4@np+U+_^y3Eqk zTVL|1Svs776#{CE2pyz@X2U}_#G8bG2&e zpG;q4cA_Sd(^w1&7(5!w@WEtp8p}pamc_Ut6^U;MFGSW*VQIoXl5-jvdj6fFZnaJ%}@w}G2##&W8c|m zStjFh83yu*8Z)757-y7zYsr@L|0auvVe{Ve`ICmGzicfD?K_A4=giZrf?dRUUt9HK z?`xi~fjrPG<%Tg`tmUby2h-z2Sclb^8n+=AZ_7d5f)$^TpPHpyJ`WF6FjaGXW4Pb& z9@R)ra)s3{>=2J8eY!|kbC>XbH4mwFDohYW`gM?jFz=g{XtR;iI{OYzTPIwTktf9^ zt&NV+#Nveu%SiAi*=th6;AK@~qZUI1W?*q*lwK5dyrXCg2%JB$ltX{YZgthJjQF6}2d`ppeYM&7> zT~v~L)DR|;td;AjB`{$b;8Y~EBl9AjD`ouX%&)~HF)@#D$_nDuSfecV(`P>Q+vY|5 znZM{XR>a0tB_cd&@*>tIrOS+Wz8@zhOv%|lkkN=?CQpqkNl*r&sVR@=V5n2n(MV&O zF$U0`&6pupr1c}?s;i}$I3P_nG0!o zu>WLgy%*}t0V|d)pzmK(g=+76JgB8)VTwPOsGJoak3LlAZ1`J zcuL019Y{H`Konh&Da+`5_f@*onmk0%CYA(nETEk)r5UZAqm&OI=MIQ191u&-4n(3q zajypN6|F1l3fp7ZQz&cnr58jRVa?)6Z)_M8UAF~eqhN54*wno5(fXBsyPiV+xN!#6 zB$OL-(?Fb*1-nAO$W6x3n*#wQ!6z1yQ=y|jVS7zKC776UMX@GXOrl@gJtN3r9JfBP=IMirHv_ErxSgb&00EICo z{}XW+YA3!HgHXIMfqTj>+5Tc&NS1EPG11B6DJ1u2C3s`7@Ah$ZD0?>_*?lID3_JSRzZY#VRu3L2dG z1>19Oj0BV}-$^+p8tFfgUZ;(KF7vc52tt>t*F-Be{r~#R?>=CO z*C2)=FKFl=WTLofr2-q8`LDPjY16UB$CLyy1Uwk!4khUemo!|P3%s`{ywd_y-lok+ zBJe7np?Qe7(_*th8!Gf>;;!|F++c5o^qg&)W_ljOGKG-Jg`0=e>7@z`R?U$a`|;^> z-8C|v*nApVZe&`H2#xH^5arb_>?tV6c8c13^l9}WQ(ACy^UJjBL#`Dde7ggN0k_3o z2B);rkf!Q(*Joi|mFW2iWVW$SzQ^MbpZur;?}QY~man3^fbfe=^$T08m#t^#Hiq$$oXvht zg>%7j3dN#Q^W8&w{*{t5fDsQZ#}cs$P80kEW@bc$;I?x!Ob}!xOfZeLcX1y%M)-AC zWeE2MdWaasH;*IWcOd9ZC=JqP+#4xjWtqSp@{UEAP?LPkQQ%yk$;&p9P;A9~7>fm} zZ(mlk#dorIzu$p~JQA;^-ZxfnYz0hGf10*$h6w=!3H=jDAUx&!4YaAA zDDb_Z{6oYYc)r(#G*gtaqG)#!(-H=Zb)fc3AmRJ;i&~b!GZ^*e5_;(GeFN=v!`6#h~|8Fra9=|{T`RCoU z#lOXHLK7_q^vXVsh(`Yg|Bbtc%$QgSybU57;p_1#P$5e`kOidgvYf;FHy+mx#vd=_ zM``wu^Dusp5)AdT5I6!o`)^Xn{eKU_{NtGLYkuVoGZkfg5({A=P`1iR?FS2-6e@qv$bV|__WvCi z`)?(4zr}z>FPS`^nQNe6A+gtf7-!7bKTEjYZ$3oo#i&MqMuXR8=8v2kXnaTDXzU@E zm;mJ{!M&j%9W^E>x@*~U?;-bb?jf5`F#`eHR(+nVn%5fxkxth-2dxfy2HoR$Hvw6s ziYW({nlY}pSe<_ES(#>mgTBGqEe7xPGl(VT$!(Mg-}wxh(-Al?sY(*=J#EX{<01Pj zN!WtOsh|jK2pc0|o80y0<8)H4&BpF)2_@_-8c+T3GpO7$r2M!y&SI!p6;g?yiCfda z;8?X8N;nh!?a?dMF$H&j)yiV+LFy(c8v^3Wd1m8~s}3ZzT@D;JbuGtV%{7A%P`c*7 z0KBBQN<9Q|5CvKmE=)tw0qj}kJk#G+!@rH*5VV>~_$_QOmwKGF_nhAZf&yH=W*-4z zO8>x={sZ$FQ2L}YN%-ggbhD1EP#_9vUAEfSc7uS>xBwU8FUHKbp-7zr^^-rscR9YU zS`oddj%MHepTRx>N_o%c2CPCBY=al3RF$y*MQ1I1bCob=^{2N-RW=U5B{cg;`9fio z-G`;m>Z)d80}5-0#vZ;MQ zVhE+}%=|a57tzpW^k7*>KD^WM=QGe3T2SZ+jv1Zj9IgJ4Jky`?qeY~LWq#8G-W{?gExJg(HZqhCV&>Tz~%Wrt! znN_>EvbxNxw(9r8F5%Z!6-lYYJbY;<<960Dfy)b^8`N2SyC+`w`JIS=8IAxzx;V=$ z`B>*SfFTf2>_>-y(+(VCZwdx54*`*u}CE2tX{b{-e z+6Z6@Kn>L#VE_Am}T&QD8g|b(EJrCQ_5F z_+1Ai%zlX?ZR!|xhJCFta|$>~OK!wM91bBI78P~rr8|o%n;}ie><;A6Qj=9r(op{i zNev9idz$KurdYs2S83ti2`kF$?+kV*j^JQUN4;Oq{&n>yBD)Q#2yc59mpU&kf|XG> zFR{HcuNAn965xPjW#VxjO4ya2dX6Ry;sQdPA;c`u8EvHTChESQ{$s@<#XULqPPu?(tTP)jaE||wCYykbmQ+$vsh20uE31Nu&U4In!t)QqXQ)99 zqd{TA^9SC90UqvVVLVGvd6WqngKu9ulV)LpIKi$Y#);6Nqx0zT{JFn^_g1;rQt=^0 z@4U|Ha0Cp*VLd+G?P75TaIru~3nMvK+cMjMh__0z-mzM=YPrVVD@M#fiLPj$Q-Qr?q>Fln&Z9Uz_Ub)cUM2@BELlm&{2>D z@jgae2m7fJjpRRBU?nF4ojDZ$w=>RY(D~SPF8K{ODTos?1XC95EzSd;6g1R!wA4b? zUtaLq4;;fg#1j;<;KGA6$owa*Wy)1eR>hM$`CJihgiGT2UDh%`v430fw$J&h?H)pK z*dtS*=?!w(V}7c1w;bOh!m{H;=OIC*(i*T;Mxh=&qx=N;4ZKCtp53NKN$=*v>GM1G zm%rXSw2D!FRxrYX9Bm~|KnfNU1mmTNIxmXqKd;Y{BJ!Lle{NwWB*nL=EU<)0-o$;x zXHb^9H5W7-Bo!!Oj9Kl9#w`e9U4imK{(UW(VH~J|^G5Flds#k1{7)wAgqBQ-TfutvD0{vLKr6i@Yk|F@Npoe`&l?0j4=6o#?fRvG5g1Fz4^mM{Phgzq$vuwNt_Cb>) z>6jJqT~0t&L_4m@R~C~Pin~dRzoaVeko~d(vgmLjd6z^0*=m*tTS~ShrMnCf#;N}p zvWD=7PcjhUuOTHV;6OeyE15y;Uj(AlXII6Yb%5i<+bu(nUNyvR#rB< zo(lti%<5KpAtAtZO3K-}4&XBBC2sN7E2vPVS*-~d-|0;(rN?ltqo5okT4+~+E)5cNp6wtwk zTlB$W0W0C7vMH{-4qiSh{=EorTAU=4-G>j49l-q<%q>ejTbIoXmG~rJY%vG*m7@*4 z+AQ|ZH-!b*5nt<*d*-J}{#HmDnb-PAIR()`BdaERlFZ^U)>8Y(fEW^w!4k3-9d+3f zl7)t7QSHP84D)e-rW6Ulr@keIO90w+7_G%*|VOdF2 z>r9eK0n6Zxst7EJjgRRPEptF5QxxdIgc%DhmtiQZ@|$=VEz{3?`3#Xo(gF}z+HEKd z4a^KGeB*(a3~bkfbrhKd|0Yz#pXILl*hxO62lCB4-tIp6@fVrYE{$=jyWxLRha2!m zofyjhR%eRv}ZPy&O#Yujj_LQP-OM%K3 z_>cgQhHoHt_uL5x`HI`*>k;EA=4qD~n72>gdwX1lMirT}5WnOhCL0UFF$c_nh||*3 zaox?Wl-j-;aj>L>MX=Bs3iA2ke(QL@+!y3DWVB8P^+cgMJoIjB)+kO4r)}*EZ;yk6 z2(T&Vt^ZxljSjeXsU9glh|tnelDsrRgA`%A*cf}NTPC~Ii{fPjwvV#QmZ4j*(GmT% z&v?)4q?=gGV1qQkg-VTwb3_unrefB`{cg}r+V%kW@)NUuf9m{la3{+7mx^XB)^X7> zLQ)DPP9XMBx?)^}pyO*`;mRsDPA7f6Q}B_|Y}WG>B0qIJmST#ui+IF_?BVA3g1q2K#<`-VJQoSs`+vpq%8!&U{tQd2L(2nkgaX#9%Bw>2 z^UHWTQi#c$)ZH^N8_EmG23F|d4CK_>MMWxWZQZD7_4Grh6-ifHSP0FrRkYAZ;^ zn(_8eEMs*eSw4aI%9|@AD)*}heaxoU`d}n_2Q$)jxdEKmDXbM5YBuFR z#e)-{D*LHMS0d>f*xs)tWY5(DcerwPfn0 zlMpoQ`2ksy`MD0|*Y2Qg%sV*a=L3QJPVhJYoJmK$Pbf{d5qQl(ZZ78Z1>D`+0I}Sp zJ?l2#2X!(<;g52&Y8}_waO=~3^#PtMhVnY(B(L`J$PHcC4M!;@#)=vK&3oXkU%_VS zUULLu>A_7&?4jQ_S7FdYtN3E$-oKG?w}rmATJU|X3dU5fF!Qd5JrB3KRWyMOhp;nA zqy^cLfReQtxEX5t`4_u37f$Cr73nEy`Iax04peyw=bV%}3v~((uH{4zN!&g5ocGT!~1bGEPs-#kOn|FrGjkD}yO_jh;Bn zz?k`_-@X%@Cf!T(ga{Bd+BK;-bulcDoh0FEcLT7xPdGWOg66r57<`m0qbJvIf*qdx zq!6;(`q15+5D}q^NwI9+kJs&PA^+2{7v4M<6JVpu7dQ|QwEuF<9N5=Y&B)mHZ@0_M zlz#gkECeGzzeUibX35$nHe;aDjf6B!BH??1pcB+#t;b&qx6i+P=eLbzxvZ1vytj+< zyriF^01be_brq8aC*}Q^c{2XEeCwwS!cnVrcEQIJ-d<$-rK9nZNv35W)$pT1(oqYG!EQ&9apOJ0ULu5 z)r}d6Rum`UY}i?PBuHC>3%*BKB#andoFbDHX1V7-ulRxy@8g- z_wN~8yyhkEJ|j?Mvc+mqtk@C4g^G>`>v;zzo#$))IC2vAo?LX6q~;tM)f8El$|xok zfj6?5hBB#@3?~sWQ5j{Rt5yBq>1JDZzd&A2l{;t#ESA=P_7CPg4b-(CDM3)pWhk1RyH=StI_3l*r#WfWuG&Adb+#5Fo=A9b5}abZ1ACs&GopD zVCBwDhuy)9KA$^miaZ#%6>sEbGJq&N3$kJs4f_Fs@~M@zlc#{nN?qi8ESuW0 zj=?h9US<}_a;z8bhw-}$>qm22ufbGruAsdcSK znxW%Cf6AR;it1=p-JSy^81r=f&%Voc5v^4$wn<#q zmPVQ6l%fam(y7nSXtQn*?xJO|u38xWV*V||p0EY!!~lnOErLeb`Dj?-2PO0<*^_{G zuYt<-(s?Km=u4QB{M)0>p^670$#x0S9(2LzLrBcR6W|{HpWoWUUBe)$#zsTB8=PkXgQ=n=!9kRV(az|1`m`Mtn2*H zAIqC_FzYY~7{zXvU?4835e`xT&Hp;R}$&klmh%*$(&pr$aWiyGO$Z9Q}uDavgsXsqFOlDeH zRb+5LUhCJcT&mA^Qt!^T6id)QVLbR$&dbQefemv&Cb&*UJ8w!SCYPirHg27|;+<1v z=!BHyC@#=(pW~~eD|`}Lps7=^C|tM8u*Ad7Fc(z#xb&2X1V9v)BbwuOn;>mv;L>&!=?SvTB0{Sh+fz? zC$#sY7v^`LXWHNAPhTB!yqiJB68pA&pD$VsdiDHJWQNXbbKh?E*3KOSKkh=QCE5_7 zLS;5Uyut$cPe3k|6zL3_DDfI7^TDzAC|n1LT~5RxnF1byD*LbGN&O}Kkmd;;bH|N! z!`fIq%4nO<8^WbWQ$pGfJ@JeqRp#@nRzX^maAejMUT?tKS1Dju{T+Lis_f~4JQIbF z@R&A=&dC&#?Z^t@V&Y>Vlw4eq^T}Spqc}fojWU%1QeXmodEidVjVH_BX7h_22NjxX#Y{UyRoY<5GO+FY!u|B?HD<|W#_VV|L?ynIPAwCR1|yWP zl40Bv40(|LX3Dgt+e~P75;3)lFE15K>+=eZTaTNkFipI2`+Nd9>}j;E5Fohc#imNK zT2i1TSaDqEnGzHHz8BUJ8?V(Mx;bdFLJ(zbJ^<%}soWhRKMqqc^reE-+%xm+>#C4O z@11F<+`4V@8=xhAWn1vAk8d-i$;hao^krRCxTDgI*5x{MZjozuXj_uaf5z*Fha&$^ zD~qyH#wyv$pQfHG5m&x1r8#a3;gMO zt$!p%X@wK8;~;@a4pVEjbuu9o$z#$t52o2P3>A{(>22jQexoxeyYD!8!$?U%!sfjH zCB;XKp}QEqyfkqXoL_MFO?59NsjHoCadDZtSn~4Ls$4l7M^QRfc0bMY;P<7$DQa}l zfPD7zLAqj!G_67-o)vW?8rne_ivr}6K-P?Nl%{hQ5o*V*$f$N|olo(XmclZY^3>U1 zO$F6mG(QFc9LhE$mbtN9_W}c3nzzch7z_vV?4l0{rFZI5_X4Rn2Lq$a@jBSST=q0x>-5{1!aGgz1RyM0!E$J-kB>z&6 zJQ+vXwd4?OVUhGOrfYWNFrn*oB|}+v%LZqmKyLvrb~{t%<4c2j00*Lir-^YQNY1PiUeESdde=glT9O7xLmDkOi0Iq3kl0K42yZI&-i)o> zfx7&~4y&OSm(ea;P|NVt)`$Iy?2>yP4E(BXqI~ew4^eFzmNbj7M^xN0<1ID&20wlW zz*pJdib zBPRuoPbp-mHoU*KZL6|_$mqkGLr519p1yTStD2Pfpy~s&cD&2Dp}WGk?3$@2G1{)_hvjtUNZS<5hSX5$`G$4;AG_%cu+FhOZ?&I)L;q(kmgC2_QVRUQ zg92u+=)m75ZZ574c3O6}%vP>uc7H$is-x=R23Rmae)&j@CybZyg<&kHpirac!_~+< z|A0#9N+>e^*b3|2asTQ#dSs{Y4o1wu2WXX$adCw6x|9SE|GGO8zC#H<4;F#WszI?- zwUE+wYjcMrRRqVT8z0Bm*JH(6gwO~Avv4d&JgE+YeH(McX$nBE7!HWE)lBiCYUaR` zVm`8>>|OKKAjDBZeP*hG;xW3cX3W{746bd1%QSTkT3Y)bx&$WPT7{H`5YUjNTz9z135o3XaRR zMfmZ{#m*PGvQ304cCM_XBH8c6@!pB+%wpBoKAEJ&sfk{aA0@Z4nL;>{h)~ zMpqzVhmGGDGhI_Bnh8(nLs~sYME?=)s`L!XyM}_ge0isa(A&xz*nbXabEmw*E>N&B zP&m$i2>&DbZ&UfdqnaI8Zy(5lA@Q|m;C64EH4nlPBTO2E)@DieGoia5r7iiocyz_P zmjWNB$>`S_*Q+Id0-?hod&8<(I_fzp3K+FY{``=vu3kM(n-EwpN7Ug0Yn7u^2syjzyiriq4AS8W(|Soux_ zJX~=HrcE$P?fQYF6P3~)B$XBsho;ip#mKToopQgE>QX){xq6?aluY{6x$~W9WWIQq zT*MS9JCOseF&q61R#;g8uN*fI@7Z#a0wg!3%w>ooSEr)i_V@dAKQB%KSY}$^^gx<% z`dSN!?~pN;5pYg2unsE>^t|7GKTa3%Vt(BOtP4SIQ%P}c#9W4VYv@&=zanYw&YdpL ze;F2VFf2eqiI!5d8G+P8QIA*YD$SKX*Kek7lP>nFf9)vl=KiWUS$}9s%P=g5xh}%i zQgFeZrqdEL%NYL~{s-x;v$RrrAvP6F=Jy2(1!>$Y&%SiUZ``qQ*+_<*Ns;ALbf)PD zw+u_7(=kJz#X`jly|2GnPYG&FAO7WQq@M~=Rx$tA}2h2 z+k)oCC6u$`5?Y&fB)aGC4jv-uIXCNTw`=YN$IQb}RP`3o!#OVi9#_2&vB=ApX5(|m zU&ftO^~ce}F+~3O2;DML#?&*n!WGHAJ8G#lJu>bq_XDst-Ltz_-PiK^;?dpLqTA5@ zpEW;^90YqwFhkjAWAgpzM(^nlN8$JahR|nvrl8Z5H=Ke(F+=xu_tW?N1F4BP+&GLU zv0Q^Qy8apK#ybxlz;+^T^=uBtUY=WzsTKjuc7vV1QtfXXT~1{x7OZ*yh<5s^IBSCS zX?vRQw)r#n3rr6bl|lDWwG-5lGROIeaEAA%ZQRbAW_62Km>MMcnvm$v*}RE;-=kv4D-c|4viDl^5{(v^TP{WwLfOv$)i-aYR?g5bX5g zrnQ?!p<%>;9_VE2D`FI-2jjB(QIf<}#8~STB9o|qo_?AuI)r0*`?+LS}u#DS%-BezUPz1gjJjZ}9zMbM37s>u%F!hS%%ZzF@S# zU~u*p%?p+V0o=@8C#&%o1UupmEVyr^B{gW*eR% zDu81wgdQU_5q?3?p;8HS{gAkQF7omK*A)Yk9sWs4-IYCUpw0N!Q?IgF1O`n76N1 zi_(kffsh2Ab!40(q+zJXaDtBd%+~r@rFMV-diyBzx{dMUvf*d5WWLl(TNp;i5ssJ5 z1WYfe{rKEl*he@{Vk804`shdaCme$!2CQ8A)Qk$d8=h)Gn_|3Bbj^+l!m-BqT6D4R zbetA7sxV1>OTRa^>Mp_#`yQadlQFI3jZr9yC5M?_tS1)RO;e(nm9yniyxu4u(|Q;Q zlpe{BBwHd-E$rl7W+{KjF7X@$pj1T9?0 zK(Zo`d3NoDg6Kfp!&%<2e-#G*0ky)50c?dD;c50oC_B0mp+;Gg2Y(?*8jCg2yX!a( zjx7}zZc_S#X9O366I?Z`PY`Qn0PdF5LCwjjbot+O2CN0G z-`6%wwrsbo-)}OQkbh9xqqhdW_^pp$?g>Jpw`QIn2_8H;J2?KN?5@QB8SDSGb`ife z#S`kh83Z(NnB@mczmhGEO`2($^bor#t}~)p2<-{(r|YeR6}g&WQe!c_~|5v zb@~7fLOw!{Ej)lCOd-GmYW8QIr?`PD-8MJXo$vq^Gep`8e2z9WddnfI-wLH)RXVIL zQcgIzKEz4JVN94pJ$tTE4@g|slgC-DD}0VZX~A5iyZ$LRnBEpj^!p}mwEkAWjUw0u zlK6{oOY`sU|1}0~@k_z-K@A2s4_v-kaX#6N|AUYkJAc8c$cC+T3Wn9GId3=J$QQlI zXSOb3-irs1=7cV}D4ekLzg%AS1%>U>&7JSqlDWDyi+Thjln+bJd?6>%z4Oy5g@1{u z5q%%5YEMnLVj}WJf=lOcq0YmKc?p?km|w6bJ!$Vft$T?#{>i2O_^A`OryYJag>%~5 zyUKIg&-tENFMPXwNm^R3%v9UVPgCaXUUqIz^|d!mhpN{c-8SixQFUdh@7qVJKdSD^ z9gKeedHs|p9>K+@UtMdLt9x>B>ub5{n#aqQ&#QZO^ZC5`g~g|@O^>Tfy}f$<-k;ZQ zTi>hPp8b4XzumphC-2q%w*UL)^x^ogGL}_qzE|9TnSZY4_ucP*)9WqjA3j>YKlaz( ze*6E6N(~S2PO-~~y}{C^+M-+)C4Sf}xN+i#$3>-wyTo3`u5Rl;A3b?e;>`_})!!#@ z{ybN#{OXAF%9+CH-+Zn7y@R!OZ#{JDe{d>utLiH&zLzq27Ru=@KMS6E@s(`gU)IDX zm9d}^EAijBK3ktBgI)m}MUIefe z%E6Cr`3zt{fM*VXMwI3P{fESCokrGvFYe2#1g)==nOEoR-V z&%h8D%E|zA3mh~sb^}8bY*KMaWlk!1x)MDM&<~V^>26?jwnov6cDy9IIq37G2y?a+ zz|29KL_yb%KJkLkzNiGM9c>y0-30WB2!sh&N}(p8OiQ5aM;|pt=ufYJ>PH_#MmGYz z|BWyrp&n~*9Nhr)jxNFgiw0x^uyuRU%|h=xBFr*uL^cbxCy8zfdRGf!iboSPR8Trz k==#yyg9!bPTamIDYU?n-n-!RYK)FhgArY88u6BcX02w9vx&QzG literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/recos_injector.thrift b/src/thrift/com/twitter/recos/recos_injector.thrift deleted file mode 100644 index b11bc5c09..000000000 --- a/src/thrift/com/twitter/recos/recos_injector.thrift +++ /dev/null @@ -1,22 +0,0 @@ -namespace java com.twitter.recos.recos_injector.thriftjava -namespace py gen.twitter.recos.recos_injector -#@namespace scala com.twitter.recos.recos_injector.thriftscala -namespace rb RecosInjector - -####### FOR RECOS INTERNAL USE ONLY -- please do NOT use this in client code ######## - -struct UserTweetAuthorGraphMessage { - 1: required i64 leftId - 2: required i64 rightId - 3: required i8 action - 4: optional i8 card - 5: optional i64 authorId - 6: optional Features features -} - -struct Features { - 1: optional bool hasPhoto - 2: optional bool hasVideo - 3: optional bool hasUrl - 4: optional bool hasHashtag -} diff --git a/src/thrift/com/twitter/recos/user_tweet_entity_graph/BUILD b/src/thrift/com/twitter/recos/user_tweet_entity_graph/BUILD deleted file mode 100644 index ffd17d734..000000000 --- a/src/thrift/com/twitter/recos/user_tweet_entity_graph/BUILD +++ /dev/null @@ -1,19 +0,0 @@ -RECOSGRAPH_SOURCES = ["user_tweet_entity_graph.thrift"] - -create_thrift_libraries( - base_name = "user_tweet_entity_graph", - sources = RECOSGRAPH_SOURCES, - platform = "java8", - tags = ["bazel-compatible"], - dependency_roots = [ - "src/thrift/com/twitter/recos:recos-common", - "src/thrift/com/twitter/recos/features:tweet", - ], - generate_languages = [ - "java", - "scala", - "strato", - ], - provides_java_name = "user_tweet_entity_graph-java", - provides_scala_name = "user_tweet_entity_graph-scala", -) diff --git a/src/thrift/com/twitter/recos/user_tweet_entity_graph/BUILD.docx b/src/thrift/com/twitter/recos/user_tweet_entity_graph/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..9bbc8182920d917349b17153783b049def3cff73 GIT binary patch literal 36897 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

    C4yvRv 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%0AZqyl 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 Pxk`{B5tuzLbb)vPPUU(@ literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_tweet_entity_graph/CONFIG.ini b/src/thrift/com/twitter/recos/user_tweet_entity_graph/CONFIG.ini deleted file mode 100644 index eae222a68..000000000 --- a/src/thrift/com/twitter/recos/user_tweet_entity_graph/CONFIG.ini +++ /dev/null @@ -1,7 +0,0 @@ -; See http://go/CONFIG.ini - -[jira] -project: SD - -[kite] -project: recos diff --git a/src/thrift/com/twitter/recos/user_tweet_entity_graph/user_tweet_entity_graph.docx b/src/thrift/com/twitter/recos/user_tweet_entity_graph/user_tweet_entity_graph.docx new file mode 100644 index 0000000000000000000000000000000000000000..fa337b8773ae65c03a658373da1d6a063441db8c GIT binary patch literal 39063 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 recommendationTypes - - // seed ids and weights used in left hand side - 4: required map seedsWithWeights - - // number of suggested results per recommendation entity type - 5: optional map maxResultsByType - - // the tweet age threshold in milliseconds - 6: optional i64 maxTweetAgeInMillis - - // list of tweet ids to exclude from response - 7: optional list excludedTweetIds - - // max user social proof size per engagement type - 8: optional i32 maxUserSocialProofSize - - // max tweet social proof size per user - 9: optional i32 maxTweetSocialProofSize - - // min user social proof size per each recommendation entity type - 10: optional map minUserSocialProofSizes - - // summary, photo, player, promote, regular - 11: optional list tweetTypes - - // the list of social proof types to return - 12: optional list socialProofTypes - - // set of groups of social proof types allowed to be combined for comparison against minUserSocialProofSizes. - // e.g. if the input is set>, then the union of those two social proofs - // will be compared against the minUserSocialProofSize of Tweet RecommendationType. - 13: optional set> socialProofTypeUnions - - // the recommendations returned in the response are authored by the following users - 14: optional set tweetAuthors - - // the tweet engagement age threshold in milliseconds - 15: optional i64 maxEngagementAgeInMillis - - // the recommendations will not return any tweet authored by the following users - 16: optional set excludedTweetAuthors -} - -struct TweetRecommendation { - // tweet id - 1: required i64 tweetId - // sum of weights of seed users who engaged with the tweet. - // If a user engaged with the same tweet twice, liked it and retweeted it, then his/her weight was counted twice. - 2: required double score - // user social proofs per engagement type - 3: required map> socialProofByType - // user social proofs along with edge metadata per engagement type. The value of the map is a list of SocialProofs. - 4: optional map> socialProofs -} - -struct HashtagRecommendation { - 1: required i32 id // integer hashtag id, which will be converted to hashtag string by client library. - 2: required double score - // sum of weights of seed users who engaged with the hashtag. - // If a user engaged with the same hashtag twice, liked it and retweeted it, then his/her weight was counted twice. - 3: required map>> socialProofByType - // user and tweet social proofs per engagement type. The key of inner map is user id, and the value of inner map is - // a list of tweet ids that the user engaged with. -} - -struct UrlRecommendation { - 1: required i32 id // integer url id, which will be converted to url string by client library. - 2: required double score - // sum of weights of seed users who engaged with the url. - // If a user engaged with the same url twice, liked it and retweeted it, then his/her weight was counted twice. - 3: required map>> socialProofByType - // user and tweet social proofs per engagement type. The key of inner map is user id, and the value of inner map is - // a list of tweet ids that the user engaged with. -} - -union UserTweetEntityRecommendationUnion { - 1: TweetRecommendation tweetRec - 2: HashtagRecommendation hashtagRec - 3: UrlRecommendation urlRec -} - -struct RecommendTweetEntityResponse { - 1: required list recommendations -} - -struct SocialProofRequest { - 1: required list inputTweets // Only for some tweets we need requst its social proofs. - 2: required map seedsWithWeights // a set of seed users with weights - 3: optional i64 requesterId // id of the requesting user - 4: optional list socialProofTypes // the list of social proof types to return -} - -struct SocialProofResponse { - 1: required list socialProofResults -} - -struct RecommendationSocialProofRequest { - /** - * Clients can request social proof from multiple recommendation types in a single request. - * NOTE: Avoid mixing tweet social proof requests with entity social proof requests as the - * underlying library call retrieves these differently. - */ - 1: required map> recommendationIdsForSocialProof - // These will be the only valid LHS nodes used to fetch social proof. - 2: required map seedsWithWeights - 3: optional i64 requesterId - // The list of valid social proof types to return, e.g. we may only want Favorite and Tweet proofs. - 4: optional list socialProofTypes -} - -struct RecommendationSocialProofResponse { - 1: required list socialProofResults -} - -/** - * The main interface-definition for UserTweetEntityGraph. - */ -service UserTweetEntityGraph { - RecommendTweetEntityResponse recommendTweets (RecommendTweetEntityRequest request) - - /** - * Given a query user, its seed users, and a set of input tweets, return the social proofs of - * input tweets if any. - * - * Currently this supports clients such as Email Recommendations, MagicRecs, and HomeTimeline. - * In order to avoid heavy migration work, we are retaining this endpoint. - */ - SocialProofResponse findTweetSocialProofs(SocialProofRequest request) - - /** - * Find social proof for the specified RecommendationType given a set of input ids of that type. - * Only find social proofs from the specified seed users with the specified social proof types. - * - * Currently this supports url social proof generation for Guide. - * - * This endpoint is flexible enough to support social proof generation for all recommendation - * types, and should be used for all future clients of this service. - */ - RecommendationSocialProofResponse findRecommendationSocialProofs(RecommendationSocialProofRequest request) -} - diff --git a/src/thrift/com/twitter/recos/user_tweet_graph/BUILD b/src/thrift/com/twitter/recos/user_tweet_graph/BUILD deleted file mode 100644 index 5f9f68eb3..000000000 --- a/src/thrift/com/twitter/recos/user_tweet_graph/BUILD +++ /dev/null @@ -1,22 +0,0 @@ -RECOSGRAPH_SOURCES = ["user_tweet_graph.thrift"] - -create_thrift_libraries( - base_name = "user_tweet_graph", - sources = RECOSGRAPH_SOURCES, - platform = "java8", - tags = ["bazel-compatible"], - dependency_roots = [ - "src/thrift/com/twitter/recos:recos-common", - "src/thrift/com/twitter/recos/features:tweet", - ], - export_roots = [ - "src/thrift/com/twitter/recos/features:tweet", - ], - generate_languages = [ - "java", - "scala", - "strato", - ], - provides_java_name = "user_tweet_graph-java", - provides_scala_name = "user_tweet_graph-scala", -) diff --git a/src/thrift/com/twitter/recos/user_tweet_graph/BUILD.docx b/src/thrift/com/twitter/recos/user_tweet_graph/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..8facd45cb21fc7af157f2b4b95cdd6f0a9e8d719 GIT binary patch literal 36902 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 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_tweet_graph/CONFIG.docx b/src/thrift/com/twitter/recos/user_tweet_graph/CONFIG.docx new file mode 100644 index 0000000000000000000000000000000000000000..1aa36df18db831296b9ef1361928a0fcb0b0239d GIT binary patch literal 36679 zcmagFWmsIxwl$1va1HM6?hXNhyF<{RjRc3r0|fWr?(WjKJ0ZARkU((vx3l*?=j?s% zz2Em|_0v^zjxpw(wW?~Zu2y*u4TB8<0f7J^mBy=6sa6=51PK8#3I_p!1#Z=s1UP)M zaQI}b;pu4MV#wlQZ`YWlsJtSE{`vG7Cz(}*%v%x-r)=Ai&XFmOK&m?ZnooC;^;iMw z{&rj-Tyt6_6pke>BlXsoWTj5H)2E3>UsCGW&@e+gp8~qrCx0!E<;0SAS2~VdZb5d3 zcy<7;rX|DY?Gz6r+fGfNfH7vssYH%mV3N)~L^N$>j20&8U8$5P78%UJ)s;qGsq3v{+JyW#2G|DE)XW?}XKBAW2<9BE zXfb|l*VB#G@U=b+k|prEl|;=r>JFr*ttU53giGUSkE!$tzU{lcr7w)361iUtGrFCf zQM4b|^dCn1%&jR}s|FH}Ngmg%gwIcHZqVQ&CQ6drexpt_P|5 zIZl!MVyjI#)oYAd^hFq%*5^6>XM(~$Bdc43hxs%(K^Wi!nFGvJoB@t5tY!dbi{FDh zGk#2|j}2Y=)<=3)Q7ils9YI=-0rK#RyexLWV(SeTx1!xx7SF`SPJz8%4x<~%hTzbp zqsSU>V>7f_NPGxsXxwRl`4?neoR<|-+||b{X$Jnvq~PAu?uVHR8Y=;_(e4OUf;UJt zSSVFHx>b=+LDpC`#PThxkj4)n8f+FphQT@4%u(Xrb->>D&lPBGO~HTM=Rj?FK}F3wIHQ*O|PCm!Fp~QvFZSf_DV2iyaIE1p43W^1;#ZkFsctIjpduw?8t%7=HR<4KJ>WA0Id`J}tRMP!pfg zJUdDu9|zOQz76!f55wXA%z7OzSTFe4F#5P4ZVBI@^idOM>^^T;#c2(xvHHu<-pa&2 zg$qm>Y$=Y`0EVHH@ziML92_&^r&Mi~s!?x>deiZ95_m@!WyYyb%cx@O4c$A{imONypjvM;IGq?@!lt=07oVtnBsigk~tkj!2jsFJ|7{^&|bjGb`8>1Ae=f zaV*a~p<98#`_gb!Po`d1svUL_bsXEJBR-VF&kg-7Nf$ZtoifSh1EA*$BU>k6)hV{+ zroL1#7WMrND$IkR#NrdK6vMJ4ydH6ELQ^W1U+pO1@)s}Pn}o^>XdTEe7e5~NGHb9B z#jJ^z+AyemC#OZEYsYHJ<+oWX$c3v0X{nNlA5BRK8O`WVwDgGkS)W)*&Jfe@F9~1gu78pKb6|+- z>%gmnZ&pEsKW|uffU`L(_^x%e2QN;)N5(*sV$3qzAFGlo3%@vKj&2&}4Fr_a#|U}v zGB37hxi{fMbtpe?7ThnSOBl#;wGOFoBCSZeNCaKF1^ynUzR7DWNJq+>a)2yaJGJ62j9c8 zPXW#ZRhW=p>^L=oahgZ5td-B*mL;Cln(7`ZG?#vrY6jEBOW)w0)qrNgy-CVNEFY$q z*(|xgV>((Hi?C{qiQu(Ia%+AryEKw^KOHW`d0upp28!@_EB0O-zva$tOnq%0AZqyl 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 Pxk`{B5tuzLbb)vPN(y>w literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_tweet_graph/CONFIG.ini b/src/thrift/com/twitter/recos/user_tweet_graph/CONFIG.ini deleted file mode 100644 index eae222a68..000000000 --- a/src/thrift/com/twitter/recos/user_tweet_graph/CONFIG.ini +++ /dev/null @@ -1,7 +0,0 @@ -; See http://go/CONFIG.ini - -[jira] -project: SD - -[kite] -project: recos diff --git a/src/thrift/com/twitter/recos/user_tweet_graph/user_tweet_graph.docx b/src/thrift/com/twitter/recos/user_tweet_graph/user_tweet_graph.docx new file mode 100644 index 0000000000000000000000000000000000000000..4609f8f1761eec9d1fcfbe284804f068e407e07f GIT binary patch literal 38779 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 A1^@s6 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_tweet_graph/user_tweet_graph.thrift b/src/thrift/com/twitter/recos/user_tweet_graph/user_tweet_graph.thrift deleted file mode 100644 index 43f294eb1..000000000 --- a/src/thrift/com/twitter/recos/user_tweet_graph/user_tweet_graph.thrift +++ /dev/null @@ -1,172 +0,0 @@ -namespace java com.twitter.recos.user_tweet_graph.thriftjava -namespace py gen.twitter.recos.user_tweet_graph -#@namespace scala com.twitter.recos.user_tweet_graph.thriftscala -#@namespace strato com.twitter.recos.user_tweet_graph -namespace rb UserTweetGraph - -include "com/twitter/recos/features/tweet.thrift" -include "com/twitter/recos/recos_common.thrift" - -enum TweetType { - Summary = 0 - Photo = 1 - Player = 2 - Promote = 3 - Regular = 4 -} - -enum Algorithm { - Salsa = 0 - SubGraphSalsa = 1 -} - -enum RecommendTweetDisplayLocation { - HomeTimeline = 0 - WelcomeFlow = 1 - NetworkDigest = 2 - BackfillDigest = 3 - HttpEndpoint = 4 - Poptart = 5 - InstantTimeline = 6 - Explore = 7 - MagicRecs = 8 - LoggedOutProfile = 9 - LoggedOutPermalink = 10 - VideoHome = 11 -} - -struct RecommendTweetRequest { - 1: required i64 requesterId // user id of the requesting user - 2: required RecommendTweetDisplayLocation displayLocation // display location from the client - 3: required i32 maxResults // number of suggested results to return - 4: required list excludedTweetIds // list of tweet ids to exclude from response - 5: required map seeds // seeds used in salsa random walk - 6: required i64 tweetRecency // the tweet recency threshold - 7: required i32 minInteraction // minimum interaction threshold - 8: required list includeTweetTypes // summary, photo, player, promote, other - 9: required double resetProbability // reset probability to query node - 10: required double queryNodeWeightFraction // the percentage of weights assigned to query node in seeding - 11: required i32 numRandomWalks // number of random walks - 12: required i32 maxRandomWalkLength // max random walk length - 13: required i32 maxSocialProofSize // max social proof size - 14: required Algorithm algorithm // algorithm type - 15: optional list socialProofTypes // the list of social proof types to return -} - -struct RecommendedTweet { - 1: required i64 tweetId - 2: required double score - 3: optional list socialProof // social proof in aggregate - 4: optional map> socialProofPerType // social proofs per engagement type -} - -struct RecommendTweetResponse { - 1: required list tweets -} - -enum RelatedTweetDisplayLocation { - Permalink = 0 - Permalink1 = 1 - MobilePermalink = 2 - Permalink3 = 3 - Permalink4 = 4 - RelatedTweets = 5 - RelatedTweets1 = 6 - RelatedTweets2 = 7 - RelatedTweets3 = 8 - RelatedTweets4 = 9 - LoggedOutProfile = 10 - LoggedOutPermalink = 11 -} - -struct UserTweetFeatureResponse { - 1: optional double favAdamicAdarAvg - 2: optional double favAdamicAdarMax - 3: optional double favLogCosineAvg - 4: optional double favLogCosineMax - 5: optional double retweetAdamicAdarAvg - 6: optional double retweetAdamicAdarMax - 7: optional double retweetLogCosineAvg - 8: optional double retweetLogCosineMax -} - -struct RelatedTweetRequest { - 1: required i64 tweetId // original tweet id - 2: required RelatedTweetDisplayLocation displayLocation // display location from the client - 3: optional string algorithm // additional parameter that the system can interpret - 4: optional i64 requesterId // user id of the requesting user - 5: optional i32 maxResults // number of suggested results to return - 6: optional list excludeTweetIds // list of tweet ids to exclude from response - 7: optional i32 maxNumNeighbors - 8: optional i32 minNeighborDegree - 9: optional i32 maxNumSamplesPerNeighbor - 10: optional i32 minCooccurrence - 11: optional i32 minQueryDegree - 12: optional double maxLowerMultiplicativeDeviation - 13: optional double maxUpperMultiplicativeDeviation - 14: optional bool populateTweetFeatures // whether to populate graph features - 15: optional i32 minResultDegree - 16: optional list additionalTweetIds - 17: optional double minScore - 18: optional i32 maxTweetAgeInHours -} - -struct TweetBasedRelatedTweetRequest { - 1: required i64 tweetId // query tweet id - 2: optional i32 maxResults // number of suggested results to return - 3: optional list excludeTweetIds // list of tweet ids to exclude from response - 4: optional i32 minQueryDegree // min degree of query tweet - 5: optional i32 maxNumSamplesPerNeighbor // max number of sampled users who engaged with the query tweet - 6: optional i32 minCooccurrence // min co-occurrence of related tweet candidate - 7: optional i32 minResultDegree // min degree of related tweet candidate - 8: optional double minScore // min score of related tweet candidate - 9: optional i32 maxTweetAgeInHours // max tweet age in hours of related tweet candidate -} - -struct ProducerBasedRelatedTweetRequest { - 1: required i64 producerId // query producer id - 2: optional i32 maxResults // number of suggested results to return - 3: optional list excludeTweetIds // list of tweet ids to exclude from response - 4: optional i32 minQueryDegree // min degree of query producer, e.g. number of followers - 5: optional i32 maxNumFollowers // max number of sampled users who follow the query producer - 6: optional i32 minCooccurrence // min co-occurrence of related tweet candidate - 7: optional i32 minResultDegree // min degree of related tweet candidate - 8: optional double minScore // min score of related tweet candidate - 9: optional i32 maxTweetAgeInHours // max tweet age in hours of related tweet candidate -} - -struct ConsumersBasedRelatedTweetRequest { - 1: required list consumerSeedSet // query consumer userId set - 2: optional i32 maxResults // number of suggested results to return - 3: optional list excludeTweetIds // list of tweet ids to exclude from response - 4: optional i32 minCooccurrence // min co-occurrence of related tweet candidate - 5: optional i32 minResultDegree // min degree of related tweet candidate - 6: optional double minScore // min score of related tweet candidate - 7: optional i32 maxTweetAgeInHours // max tweet age in hours of related tweet candidate -} - -struct RelatedTweet { - 1: required i64 tweetId - 2: required double score - 3: optional tweet.GraphFeaturesForTweet relatedTweetGraphFeatures -} - -struct RelatedTweetResponse { - 1: required list tweets - 2: optional tweet.GraphFeaturesForQuery queryTweetGraphFeatures -} - -/** - * The main interface-definition for UserTweetGraph. - */ -service UserTweetGraph { - RecommendTweetResponse recommendTweets (RecommendTweetRequest request) - recos_common.GetRecentEdgesResponse getLeftNodeEdges (recos_common.GetRecentEdgesRequest request) - recos_common.NodeInfo getRightNode (i64 node) - RelatedTweetResponse relatedTweets (RelatedTweetRequest request) - RelatedTweetResponse tweetBasedRelatedTweets (TweetBasedRelatedTweetRequest request) - RelatedTweetResponse producerBasedRelatedTweets (ProducerBasedRelatedTweetRequest request) - RelatedTweetResponse consumersBasedRelatedTweets (ConsumersBasedRelatedTweetRequest request) - UserTweetFeatureResponse userTweetFeatures (1: required i64 userId, 2: required i64 tweetId) -} - diff --git a/src/thrift/com/twitter/recos/user_user_graph/BUILD b/src/thrift/com/twitter/recos/user_user_graph/BUILD deleted file mode 100644 index ef53f847a..000000000 --- a/src/thrift/com/twitter/recos/user_user_graph/BUILD +++ /dev/null @@ -1,19 +0,0 @@ -RECOSGRAPH_SOURCES = ["user_user_graph.thrift"] - -create_thrift_libraries( - base_name = "user_user_graph", - sources = RECOSGRAPH_SOURCES, - platform = "java8", - tags = ["bazel-compatible"], - dependency_roots = [ - "src/thrift/com/twitter/recos:recos-common", - "src/thrift/com/twitter/recos/features:tweet", - ], - generate_languages = [ - "java", - "scala", - "strato", - ], - provides_java_name = "user_user_graph-java", - provides_scala_name = "user_user_graph-scala", -) diff --git a/src/thrift/com/twitter/recos/user_user_graph/BUILD.docx b/src/thrift/com/twitter/recos/user_user_graph/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..79bb31e7861c8e2d22825e435da36e0860e06fa9 GIT binary patch literal 36889 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

    7Y{e@NwfS){SCn9PkabA;tZqUl_K$| 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 bk+K+S>oCBZ6_|rSxk`{B5tuy|b%S^S6K&a0 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_user_graph/CONFIG.docx b/src/thrift/com/twitter/recos/user_user_graph/CONFIG.docx new file mode 100644 index 0000000000000000000000000000000000000000..1aa36df18db831296b9ef1361928a0fcb0b0239d GIT binary patch literal 36679 zcmagFWmsIxwl$1va1HM6?hXNhyF<{RjRc3r0|fWr?(WjKJ0ZARkU((vx3l*?=j?s% zz2Em|_0v^zjxpw(wW?~Zu2y*u4TB8<0f7J^mBy=6sa6=51PK8#3I_p!1#Z=s1UP)M zaQI}b;pu4MV#wlQZ`YWlsJtSE{`vG7Cz(}*%v%x-r)=Ai&XFmOK&m?ZnooC;^;iMw z{&rj-Tyt6_6pke>BlXsoWTj5H)2E3>UsCGW&@e+gp8~qrCx0!E<;0SAS2~VdZb5d3 zcy<7;rX|DY?Gz6r+fGfNfH7vssYH%mV3N)~L^N$>j20&8U8$5P78%UJ)s;qGsq3v{+JyW#2G|DE)XW?}XKBAW2<9BE zXfb|l*VB#G@U=b+k|prEl|;=r>JFr*ttU53giGUSkE!$tzU{lcr7w)361iUtGrFCf zQM4b|^dCn1%&jR}s|FH}Ngmg%gwIcHZqVQ&CQ6drexpt_P|5 zIZl!MVyjI#)oYAd^hFq%*5^6>XM(~$Bdc43hxs%(K^Wi!nFGvJoB@t5tY!dbi{FDh zGk#2|j}2Y=)<=3)Q7ils9YI=-0rK#RyexLWV(SeTx1!xx7SF`SPJz8%4x<~%hTzbp zqsSU>V>7f_NPGxsXxwRl`4?neoR<|-+||b{X$Jnvq~PAu?uVHR8Y=;_(e4OUf;UJt zSSVFHx>b=+LDpC`#PThxkj4)n8f+FphQT@4%u(Xrb->>D&lPBGO~HTM=Rj?FK}F3wIHQ*O|PCm!Fp~QvFZSf_DV2iyaIE1p43W^1;#ZkFsctIjpduw?8t%7=HR<4KJ>WA0Id`J}tRMP!pfg zJUdDu9|zOQz76!f55wXA%z7OzSTFe4F#5P4ZVBI@^idOM>^^T;#c2(xvHHu<-pa&2 zg$qm>Y$=Y`0EVHH@ziML92_&^r&Mi~s!?x>deiZ95_m@!WyYyb%cx@O4c$A{imONypjvM;IGq?@!lt=07oVtnBsigk~tkj!2jsFJ|7{^&|bjGb`8>1Ae=f zaV*a~p<98#`_gb!Po`d1svUL_bsXEJBR-VF&kg-7Nf$ZtoifSh1EA*$BU>k6)hV{+ zroL1#7WMrND$IkR#NrdK6vMJ4ydH6ELQ^W1U+pO1@)s}Pn}o^>XdTEe7e5~NGHb9B z#jJ^z+AyemC#OZEYsYHJ<+oWX$c3v0X{nNlA5BRK8O`WVwDgGkS)W)*&Jfe@F9~1gu78pKb6|+- z>%gmnZ&pEsKW|uffU`L(_^x%e2QN;)N5(*sV$3qzAFGlo3%@vKj&2&}4Fr_a#|U}v zGB37hxi{fMbtpe?7ThnSOBl#;wGOFoBCSZeNCaKF1^ynUzR7DWNJq+>a)2yaJGJ62j9c8 zPXW#ZRhW=p>^L=oahgZ5td-B*mL;Cln(7`ZG?#vrY6jEBOW)w0)qrNgy-CVNEFY$q z*(|xgV>((Hi?C{qiQu(Ia%+AryEKw^KOHW`d0upp28!@_EB0O-zva$tOnq%0AZqyl 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 Pxk`{B5tuzLbb)vPN(y>w literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_user_graph/CONFIG.ini b/src/thrift/com/twitter/recos/user_user_graph/CONFIG.ini deleted file mode 100644 index eae222a68..000000000 --- a/src/thrift/com/twitter/recos/user_user_graph/CONFIG.ini +++ /dev/null @@ -1,7 +0,0 @@ -; See http://go/CONFIG.ini - -[jira] -project: SD - -[kite] -project: recos diff --git a/src/thrift/com/twitter/recos/user_user_graph/user_user_graph.docx b/src/thrift/com/twitter/recos/user_user_graph/user_user_graph.docx new file mode 100644 index 0000000000000000000000000000000000000000..ba8385d3567cb31e5b4cdffadc024bcbf6864a4b GIT binary patch literal 37507 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 seedsWithWeights // seed ids and weights used in left hand side - 4: optional list excludedUserIds // list of users to exclude from response - 5: optional i32 maxNumResults // number of results to return - 6: optional i32 maxNumSocialProofs // number of social proofs per recommendation - 7: optional map minUserPerSocialProof // minimum number of users for each social proof type - 8: optional list socialProofTypes // list of required social proof types. Any recommended user - // must at least have all of these social proof types - 9: optional i64 maxEdgeEngagementAgeInMillis // only events created during this period are counted -} - -struct RecommendedUser { - 1: required i64 userId // user id of recommended user - 2: required double score // weight of the recommended user - 3: required map> socialProofs // the social proofs of the recommended user -} - -struct RecommendUserResponse { - 1: required list recommendedUsers // list of recommended users -} - -/** - * The main interface-definition for UserUserGraph. - */ -service UserUserGraph { - // Given a request for recommendations for a specific user, - // return a list of candidate users along with their social proofs - RecommendUserResponse recommendUsers (RecommendUserRequest request) -} diff --git a/src/thrift/com/twitter/recos/user_video_graph/BUILD b/src/thrift/com/twitter/recos/user_video_graph/BUILD deleted file mode 100644 index f9dcbb8b1..000000000 --- a/src/thrift/com/twitter/recos/user_video_graph/BUILD +++ /dev/null @@ -1,22 +0,0 @@ -RECOSGRAPH_SOURCES = ["user_video_graph.thrift"] - -create_thrift_libraries( - base_name = "user_video_graph", - sources = RECOSGRAPH_SOURCES, - platform = "java8", - tags = ["bazel-compatible"], - dependency_roots = [ - "src/thrift/com/twitter/recos:recos-common", - "src/thrift/com/twitter/recos/features:tweet", - ], - export_roots = [ - "src/thrift/com/twitter/recos/features:tweet", - ], - generate_languages = [ - "java", - "scala", - "strato", - ], - provides_java_name = "user_video_graph-java", - provides_scala_name = "user_video_graph-scala", -) diff --git a/src/thrift/com/twitter/recos/user_video_graph/BUILD.docx b/src/thrift/com/twitter/recos/user_video_graph/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..f7d426e301f85dd0bd9fd81b6732b4e083029629 GIT binary patch literal 36903 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%0Dyt%CJpZ64wCYNreKE-)eH|@-b!>gSe5mn7{5a>+ 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℞V$natEnQ*wECdNg1v;?_45G`TM`al9Y>R#iRWd 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 ug)l|A2^uOW9WQkK=+u?oy literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_video_graph/CONFIG.docx b/src/thrift/com/twitter/recos/user_video_graph/CONFIG.docx new file mode 100644 index 0000000000000000000000000000000000000000..1aa36df18db831296b9ef1361928a0fcb0b0239d GIT binary patch literal 36679 zcmagFWmsIxwl$1va1HM6?hXNhyF<{RjRc3r0|fWr?(WjKJ0ZARkU((vx3l*?=j?s% zz2Em|_0v^zjxpw(wW?~Zu2y*u4TB8<0f7J^mBy=6sa6=51PK8#3I_p!1#Z=s1UP)M zaQI}b;pu4MV#wlQZ`YWlsJtSE{`vG7Cz(}*%v%x-r)=Ai&XFmOK&m?ZnooC;^;iMw z{&rj-Tyt6_6pke>BlXsoWTj5H)2E3>UsCGW&@e+gp8~qrCx0!E<;0SAS2~VdZb5d3 zcy<7;rX|DY?Gz6r+fGfNfH7vssYH%mV3N)~L^N$>j20&8U8$5P78%UJ)s;qGsq3v{+JyW#2G|DE)XW?}XKBAW2<9BE zXfb|l*VB#G@U=b+k|prEl|;=r>JFr*ttU53giGUSkE!$tzU{lcr7w)361iUtGrFCf zQM4b|^dCn1%&jR}s|FH}Ngmg%gwIcHZqVQ&CQ6drexpt_P|5 zIZl!MVyjI#)oYAd^hFq%*5^6>XM(~$Bdc43hxs%(K^Wi!nFGvJoB@t5tY!dbi{FDh zGk#2|j}2Y=)<=3)Q7ils9YI=-0rK#RyexLWV(SeTx1!xx7SF`SPJz8%4x<~%hTzbp zqsSU>V>7f_NPGxsXxwRl`4?neoR<|-+||b{X$Jnvq~PAu?uVHR8Y=;_(e4OUf;UJt zSSVFHx>b=+LDpC`#PThxkj4)n8f+FphQT@4%u(Xrb->>D&lPBGO~HTM=Rj?FK}F3wIHQ*O|PCm!Fp~QvFZSf_DV2iyaIE1p43W^1;#ZkFsctIjpduw?8t%7=HR<4KJ>WA0Id`J}tRMP!pfg zJUdDu9|zOQz76!f55wXA%z7OzSTFe4F#5P4ZVBI@^idOM>^^T;#c2(xvHHu<-pa&2 zg$qm>Y$=Y`0EVHH@ziML92_&^r&Mi~s!?x>deiZ95_m@!WyYyb%cx@O4c$A{imONypjvM;IGq?@!lt=07oVtnBsigk~tkj!2jsFJ|7{^&|bjGb`8>1Ae=f zaV*a~p<98#`_gb!Po`d1svUL_bsXEJBR-VF&kg-7Nf$ZtoifSh1EA*$BU>k6)hV{+ zroL1#7WMrND$IkR#NrdK6vMJ4ydH6ELQ^W1U+pO1@)s}Pn}o^>XdTEe7e5~NGHb9B z#jJ^z+AyemC#OZEYsYHJ<+oWX$c3v0X{nNlA5BRK8O`WVwDgGkS)W)*&Jfe@F9~1gu78pKb6|+- z>%gmnZ&pEsKW|uffU`L(_^x%e2QN;)N5(*sV$3qzAFGlo3%@vKj&2&}4Fr_a#|U}v zGB37hxi{fMbtpe?7ThnSOBl#;wGOFoBCSZeNCaKF1^ynUzR7DWNJq+>a)2yaJGJ62j9c8 zPXW#ZRhW=p>^L=oahgZ5td-B*mL;Cln(7`ZG?#vrY6jEBOW)w0)qrNgy-CVNEFY$q z*(|xgV>((Hi?C{qiQu(Ia%+AryEKw^KOHW`d0upp28!@_EB0O-zva$tOnq%0AZqyl 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 Pxk`{B5tuzLbb)vPN(y>w literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_video_graph/CONFIG.ini b/src/thrift/com/twitter/recos/user_video_graph/CONFIG.ini deleted file mode 100644 index eae222a68..000000000 --- a/src/thrift/com/twitter/recos/user_video_graph/CONFIG.ini +++ /dev/null @@ -1,7 +0,0 @@ -; See http://go/CONFIG.ini - -[jira] -project: SD - -[kite] -project: recos diff --git a/src/thrift/com/twitter/recos/user_video_graph/user_video_graph.docx b/src/thrift/com/twitter/recos/user_video_graph/user_video_graph.docx new file mode 100644 index 0000000000000000000000000000000000000000..6c159d77d0ccee7d764806bf636fa851eefaf4bd GIT binary patch literal 37445 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 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/recos/user_video_graph/user_video_graph.thrift b/src/thrift/com/twitter/recos/user_video_graph/user_video_graph.thrift deleted file mode 100644 index a5d83c1d6..000000000 --- a/src/thrift/com/twitter/recos/user_video_graph/user_video_graph.thrift +++ /dev/null @@ -1,64 +0,0 @@ -namespace java com.twitter.recos.user_video_graph.thriftjava -namespace py gen.twitter.recos.user_video_graph -#@namespace scala com.twitter.recos.user_video_graph.thriftscala -#@namespace strato com.twitter.recos.user_video_graph -namespace rb UserVideoGraph - -include "com/twitter/recos/features/tweet.thrift" -include "com/twitter/recos/recos_common.thrift" - - -struct TweetBasedRelatedTweetRequest { - 1: required i64 tweetId // query tweet id - 2: optional i32 maxResults // number of suggested results to return - 3: optional list excludeTweetIds // list of tweet ids to exclude from response - 4: optional i32 minQueryDegree // min degree of query tweet - 5: optional i32 maxNumSamplesPerNeighbor // max number of sampled users who engaged with the query tweet - 6: optional i32 minCooccurrence // min co-occurrence of related tweet candidate - 7: optional i32 minResultDegree // min degree of related tweet candidate - 8: optional double minScore // min score of related tweet candidate - 9: optional i32 maxTweetAgeInHours // max tweet age in hours of related tweet candidate -} - -struct ProducerBasedRelatedTweetRequest { - 1: required i64 producerId // query producer id - 2: optional i32 maxResults // number of suggested results to return - 3: optional list excludeTweetIds // list of tweet ids to exclude from response - 4: optional i32 minQueryDegree // min degree of query producer, e.g. number of followers - 5: optional i32 maxNumFollowers // max number of sampled users who follow the query producer - 6: optional i32 minCooccurrence // min co-occurrence of related tweet candidate - 7: optional i32 minResultDegree // min degree of related tweet candidate - 8: optional double minScore // min score of related tweet candidate - 9: optional i32 maxTweetAgeInHours // max tweet age in hours of related tweet candidate -} - -struct ConsumersBasedRelatedTweetRequest { - 1: required list consumerSeedSet // query consumer userId set - 2: optional i32 maxResults // number of suggested results to return - 3: optional list excludeTweetIds // list of tweet ids to exclude from response - 4: optional i32 minCooccurrence // min co-occurrence of related tweet candidate - 5: optional i32 minResultDegree // min degree of related tweet candidate - 6: optional double minScore // min score of related tweet candidate - 7: optional i32 maxTweetAgeInHours // max tweet age in hours of related tweet candidate -} - -struct RelatedTweet { - 1: required i64 tweetId - 2: required double score - 3: optional tweet.GraphFeaturesForTweet relatedTweetGraphFeatures -} - -struct RelatedTweetResponse { - 1: required list tweets - 2: optional tweet.GraphFeaturesForQuery queryTweetGraphFeatures -} - -/** - * The main interface-definition for UserVideoGraph. - */ -service UserVideoGraph { - RelatedTweetResponse tweetBasedRelatedTweets (TweetBasedRelatedTweetRequest request) - RelatedTweetResponse producerBasedRelatedTweets (ProducerBasedRelatedTweetRequest request) - RelatedTweetResponse consumersBasedRelatedTweets (ConsumersBasedRelatedTweetRequest request) -} - diff --git a/src/thrift/com/twitter/search/common/ranking/ranking.docx b/src/thrift/com/twitter/search/common/ranking/ranking.docx new file mode 100644 index 0000000000000000000000000000000000000000..29aff42230357e5d1fec913f87a4d1de301762a2 GIT binary patch literal 42444 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 g?6LhMn3LhS@c?6z&+Wg+x@ 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 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/search/common/ranking/ranking.thrift b/src/thrift/com/twitter/search/common/ranking/ranking.thrift deleted file mode 100644 index bd1cff929..000000000 --- a/src/thrift/com/twitter/search/common/ranking/ranking.thrift +++ /dev/null @@ -1,366 +0,0 @@ -namespace java com.twitter.search.common.ranking.thriftjava -#@namespace scala com.twitter.search.common.ranking.thriftscala -#@namespace strato com.twitter.search.common.ranking -namespace py gen.twitter.search.common.ranking.ranking - -struct ThriftLinearFeatureRankingParams { - // values below this will set the score to the minimal one - 1: optional double min = -1e+100 - // values above this will set the score to the minimal one - 2: optional double max = 1e+100 - 3: optional double weight = 0 -}(persisted='true') - -struct ThriftAgeDecayRankingParams { - // the rate in which the score of older tweets decreases - 1: optional double slope = 0.003 - // the age, in minutes, where the age score of a tweet is half of the latest tweet - 2: optional double halflife = 360.0 - // the minimal age decay score a tweet will have - 3: optional double base = 0.6 -}(persisted='true') - -enum ThriftScoringFunctionType { - LINEAR = 1, - MODEL_BASED = 4, - TENSORFLOW_BASED = 5, - - // deprecated - TOPTWEETS = 2, - EXPERIMENTAL = 3, -} - -// The struct to define a class that is to be dynamically loaded in earlybird for -// experimentation. -struct ThriftExperimentClass { - // the fully qualified class name. - 1: required string name - // data source location (class/jar file) for this dynamic class on HDFS - 2: optional string location - // parameters in key-value pairs for this experimental class - 3: optional map params -}(persisted='true') - -// Deprecated!! -struct ThriftQueryEngagementParams { - // Rate Boosts: given a rate (usually a small fraction), the score will be multiplied by - // (1 + rate) ^ boost - // 0 mean no boost, negative numbers are dampens - 1: optional double retweetRateBoost = 0 - 2: optional double replyRateBoost = 0 - 3: optional double faveRateBoost = 0 -}(persisted='true') - -struct ThriftHostQualityParams { - // Multiplier applied to host score, for tweets that have links. - // A multiplier of 0 means that this boost is not applied - 1: optional double multiplier = 0.0 - - // Do not apply the multiplier to hosts with score above this level. - // If 0, the multiplier will be applied to any host. - 2: optional double maxScoreToModify = 0.0 - - // Do not apply the multiplier to hosts with score below this level. - // If 0, the multiplier will be applied to any host. - 3: optional double minScoreToModify = 0.0 - - // If true, score modification will be applied to hosts that have unknown scores. - // The host-score used will be lower than the score of any known host. - 4: optional bool applyToUnknownHosts = 0 -}(persisted='true') - -struct ThriftCardRankingParams { - 1: optional double hasCardBoost = 1.0 - 2: optional double domainMatchBoost = 1.0 - 3: optional double authorMatchBoost = 1.0 - 4: optional double titleMatchBoost = 1.0 - 5: optional double descriptionMatchBoost = 1.0 -}(persisted='true') - -# The ids are assigned in 'blocks'. For adding a new field, find an unused id in the appropriate -# block. Be sure to mention explicitly which ids have been removed so that they are not used again. -struct ThriftRankingParams { - 1: optional ThriftScoringFunctionType type - - // Dynamically loaded scorer and collector for quick experimentation. - 40: optional ThriftExperimentClass expScorer - 41: optional ThriftExperimentClass expCollector - - // we must set it to a value that fits into a float: otherwise - // some earlybird classes that convert it to float will interpret - // it as Float.NEGATIVE_INFINITY, and some comparisons will fail - 2: optional double minScore = -1e+30 - - 10: optional ThriftLinearFeatureRankingParams parusScoreParams - 11: optional ThriftLinearFeatureRankingParams retweetCountParams - 12: optional ThriftLinearFeatureRankingParams replyCountParams - 15: optional ThriftLinearFeatureRankingParams reputationParams - 16: optional ThriftLinearFeatureRankingParams luceneScoreParams - 18: optional ThriftLinearFeatureRankingParams textScoreParams - 19: optional ThriftLinearFeatureRankingParams urlParams - 20: optional ThriftLinearFeatureRankingParams isReplyParams - 21: optional ThriftLinearFeatureRankingParams directFollowRetweetCountParams - 22: optional ThriftLinearFeatureRankingParams trustedCircleRetweetCountParams - 23: optional ThriftLinearFeatureRankingParams favCountParams - 24: optional ThriftLinearFeatureRankingParams multipleReplyCountParams - 27: optional ThriftLinearFeatureRankingParams embedsImpressionCountParams - 28: optional ThriftLinearFeatureRankingParams embedsUrlCountParams - 29: optional ThriftLinearFeatureRankingParams videoViewCountParams - 66: optional ThriftLinearFeatureRankingParams quotedCountParams - - // A map from MutableFeatureType to linear ranking params - 25: optional map offlineExperimentalFeatureRankingParams - - // if min/max for score or ThriftLinearFeatureRankingParams should always be - // applied or only to non-follows, non-self, non-verified - 26: optional bool applyFiltersAlways = 0 - - // Whether to apply promotion/demotion at all for FeatureBasedScoringFunction - 70: optional bool applyBoosts = 1 - - // UI language is english, tweet language is not - 30: optional double langEnglishUIBoost = 0.3 - // tweet language is english, UI language is not - 31: optional double langEnglishTweetBoost = 0.7 - // user language differs from tweet language, and neither is english - 32: optional double langDefaultBoost = 0.1 - // user that produced tweet is marked as spammer by metastore - 33: optional double spamUserBoost = 1.0 - // user that produced tweet is marked as nsfw by metastore - 34: optional double nsfwUserBoost = 1.0 - // user that produced tweet is marked as bot (self similarity) by metastore - 35: optional double botUserBoost = 1.0 - - // An alternative way of using lucene score in the ranking function. - 38: optional bool useLuceneScoreAsBoost = 0 - 39: optional double maxLuceneScoreBoost = 1.2 - - // Use user's consumed and produced languages for scoring - 42: optional bool useUserLanguageInfo = 0 - - // Boost (demotion) if the tweet language is not one of user's understandable languages, - // nor interface language. - 43: optional double unknownLanguageBoost = 0.01 - - // Use topic ids for scoring. - // Deprecated in SEARCH-8616. - 44: optional bool deprecated_useTopicIDsBoost = 0 - // Parameters for topic id scoring. See TopicIDsBoostScorer (and its test) for details. - 46: optional double deprecated_maxTopicIDsBoost = 3.0 - 47: optional double deprecated_topicIDsBoostExponent = 2.0; - 48: optional double deprecated_topicIDsBoostSlope = 2.0; - - // Hit Attribute Demotion - 60: optional bool enableHitDemotion = 0 - 61: optional double noTextHitDemotion = 1.0 - 62: optional double urlOnlyHitDemotion = 1.0 - 63: optional double nameOnlyHitDemotion = 1.0 - 64: optional double separateTextAndNameHitDemotion = 1.0 - 65: optional double separateTextAndUrlHitDemotion = 1.0 - - // multiplicative score boost for results deemed offensive - 100: optional double offensiveBoost = 1 - // multiplicative score boost for results in the searcher's social circle - 101: optional double inTrustedCircleBoost = 1 - // multiplicative score dampen for results with more than one hash tag - 102: optional double multipleHashtagsOrTrendsBoost = 1 - // multiplicative score boost for results in the searcher's direct follows - 103: optional double inDirectFollowBoost = 1 - // multiplicative score boost for results that has trends - 104: optional double tweetHasTrendBoost = 1 - // is tweet from verified account? - 106: optional double tweetFromVerifiedAccountBoost = 1 - // is tweet authored by the searcher? (boost is in addition to social boost) - 107: optional double selfTweetBoost = 1 - // multiplicative score boost for a tweet that has image url. - 108: optional double tweetHasImageUrlBoost = 1 - // multiplicative score boost for a tweet that has video url. - 109: optional double tweetHasVideoUrlBoost = 1 - // multiplicative score boost for a tweet that has news url. - 110: optional double tweetHasNewsUrlBoost = 1 - // is tweet from a blue-verified account? - 111: optional double tweetFromBlueVerifiedAccountBoost = 1 (personalDataType = 'UserVerifiedFlag') - - // subtractive penalty applied after boosts for out-of-network replies. - 120: optional double outOfNetworkReplyPenalty = 10.0 - - 150: optional ThriftQueryEngagementParams deprecatedQueryEngagementParams - - 160: optional ThriftHostQualityParams deprecatedHostQualityParams - - // age decay params for regular tweets - 203: optional ThriftAgeDecayRankingParams ageDecayParams - - // for card ranking: map between card name ordinal (defined in com.twitter.search.common.constants.CardConstants) - // to ranking params - 400: optional map cardRankingParams - - // A map from tweet IDs to the score adjustment for that tweet. These are score - // adjustments that include one or more features that can depend on the query - // string. These features aren't indexed by Earlybird, and so their total contribution - // to the scoring function is passed in directly as part of the request. If present, - // the score adjustment for a tweet is directly added to the linear component of the - // scoring function. Since this signal can be made up of multiple features, any - // reweighting or combination of these features is assumed to be done by the caller - // (hence there is no need for a weight parameter -- the weights of the features - // included in this signal have already been incorporated by the caller). - 151: optional map querySpecificScoreAdjustments - - // A map from user ID to the score adjustment for tweets from that author. - // This field provides a way for adjusting the tweets of a specific set of users with a score - // that is not present in the Earlybird features but has to be passed from the clients, such as - // real graph weights or a combination of multiple features. - // This field should be used mainly for experimentation since it increases the size of the thrift - // requests. - 154: optional map authorSpecificScoreAdjustments - - // -------- Parameters for ThriftScoringFunctionType.MODEL_BASED -------- - // Selected models along with their weights for the linear combination - 152: optional map selectedModels - 153: optional bool useLogitScore = false - - // -------- Parameters for ThriftScoringFunctionType.TENSORFLOW_BASED -------- - // Selected tensorflow model - 303: optional string selectedTensorflowModel - - // -------- Deprecated Fields -------- - // ID 303 has been used in the past. Resume additional deprecated fields from 304 - 105: optional double deprecatedTweetHasTrendInTrendingQueryBoost = 1 - 200: optional double deprecatedAgeDecaySlope = 0.003 - 201: optional double deprecatedAgeDecayHalflife = 360.0 - 202: optional double deprecatedAgeDecayBase = 0.6 - 204: optional ThriftAgeDecayRankingParams deprecatedAgeDecayForTrendsParams - 301: optional double deprecatedNameQueryConfidence = 0.0 - 302: optional double deprecatedHashtagQueryConfidence = 0.0 - // Whether to use old-style engagement features (normalized by LogNormalizer) - // or new ones (normalized by SingleBytePositiveFloatNormalizer) - 50: optional bool useGranularEngagementFeatures = 0 // DEPRECATED! -}(persisted='true') - -// This sorting mode is used by earlybird to retrieve the top-n facets that -// are returned to blender -enum ThriftFacetEarlybirdSortingMode { - SORT_BY_SIMPLE_COUNT = 0, - SORT_BY_WEIGHTED_COUNT = 1, -} - -// This is the final sort order used by blender after all results from -// the earlybirds are merged -enum ThriftFacetFinalSortOrder { - // using the created_at date of the first tweet that contained the facet - SCORE = 0, - SIMPLE_COUNT = 1, - WEIGHTED_COUNT = 2, - CREATED_AT = 3 -} - -struct ThriftFacetRankingOptions { - // next available field ID = 38 - - // ====================================================================== - // EARLYBIRD SETTINGS - // - // These parameters primarily affect how earlybird creates the top-k - // candidate list to be re-ranked by blender - // ====================================================================== - // Dynamically loaded scorer and collector for quick experimentation. - 26: optional ThriftExperimentClass expScorer - 27: optional ThriftExperimentClass expCollector - - // It should be less than or equal to reputationParams.min, and all - // tweepcreds between the two get a score of 1.0. - 21: optional i32 minTweepcredFilterThreshold - - // the maximum score a single tweet can contribute to the weightedCount - 22: optional i32 maxScorePerTweet - - 15: optional ThriftFacetEarlybirdSortingMode sortingMode - // The number of top candidates earlybird returns to blender - 16: optional i32 numCandidatesFromEarlybird = 100 - - // when to early terminate for facet search, overrides the setting in ThriftSearchQuery - 34: optional i32 maxHitsToProcess = 1000 - - // for anti-gaming we want to limit the maximum amount of hits the same user can - // contribute. Set to -1 to disable the anti-gaming filter. Overrides the setting in - // ThriftSearchQuery - 35: optional i32 maxHitsPerUser = 3 - - // if the tweepcred of the user is bigger than this value it will not be excluded - // by the anti-gaming filter. Overrides the setting in ThriftSearchQuery - 36: optional i32 maxTweepcredForAntiGaming = 65 - - // these settings affect how earlybird computes the weightedCount - 2: optional ThriftLinearFeatureRankingParams parusScoreParams - 3: optional ThriftLinearFeatureRankingParams reputationParams - 17: optional ThriftLinearFeatureRankingParams favoritesParams - 33: optional ThriftLinearFeatureRankingParams repliesParams - 37: optional map rankingExpScoreParams - - // penalty counter settings - 6: optional i32 offensiveTweetPenalty // set to -1 to disable the offensive filter - 7: optional i32 antigamingPenalty // set to -1 to disable antigaming filtering - // weight of penalty counts from all tweets containing a facet, not just the tweets - // matching the query - 9: optional double queryIndependentPenaltyWeight // set to 0 to not use query independent penalty weights - // penalty for keyword stuffing - 60: optional i32 multipleHashtagsOrTrendsPenalty - - // Language related boosts, similar to those in relevance ranking options. By default they are - // all 1.0 (no-boost). - // When the user language is english, facet language is not - 11: optional double langEnglishUIBoost = 1.0 - // When the facet language is english, user language is not - 12: optional double langEnglishFacetBoost = 1.0 - // When the user language differs from facet/tweet language, and neither is english - 13: optional double langDefaultBoost = 1.0 - - // ====================================================================== - // BLENDER SETTINGS - // - // Settings for the facet relevance scoring happening in blender - // ====================================================================== - - // This block of parameters are only used in the FacetsFutureManager. - // limits to discard facets - // if a facet has a higher penalty count, it will not be returned - 5: optional i32 maxPenaltyCount - // if a facet has a lower simple count, it will not be returned - 28: optional i32 minSimpleCount - // if a facet has a lower weighted count, it will not be returned - 8: optional i32 minCount - // the maximum allowed value for offensiveCount/facetCount a facet can have in order to be returned - 10: optional double maxPenaltyCountRatio - // if set to true, then facets with offensive display tweets are excluded from the resultset - 29: optional bool excludePossiblySensitiveFacets - // if set to true, then only facets that have a display tweet in their ThriftFacetCountMetadata object - // will be returned to the caller - 30: optional bool onlyReturnFacetsWithDisplayTweet - - // parameters for scoring force-inserted media items - // Please check FacetReRanker.java computeScoreForInserted() for their usage. - 38: optional double forceInsertedBackgroundExp = 0.3 - 39: optional double forceInsertedMinBackgroundCount = 2 - 40: optional double forceInsertedMultiplier = 0.01 - - // ----------------------------------------------------- - // weights for the facet ranking formula - 18: optional double simpleCountWeight_DEPRECATED - 19: optional double weightedCountWeight_DEPRECATED - 20: optional double backgroundModelBoost_DEPRECATED - - // ----------------------------------------------------- - // Following parameters are used in the FacetsReRanker - // age decay params - 14: optional ThriftAgeDecayRankingParams ageDecayParams - - // used in the facets reranker - 23: optional double maxNormBoost = 5.0 - 24: optional double globalCountExponent = 3.0 - 25: optional double simpleCountExponent = 3.0 - - 31: optional ThriftFacetFinalSortOrder finalSortOrder - - // Run facets search as if they happen at this specific time (ms since epoch). - 32: optional i64 fakeCurrentTimeMs // not really used anywhere, remove? -}(persisted='true') diff --git a/src/thrift/com/twitter/search/earlybird/thrift/earlybird.docx b/src/thrift/com/twitter/search/earlybird/thrift/earlybird.docx new file mode 100644 index 0000000000000000000000000000000000000000..56c191ae1552958dd7125b4a4e45349515f0eae9 GIT binary patch literal 56861 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 BH<17U literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/search/earlybird/thrift/earlybird.thrift b/src/thrift/com/twitter/search/earlybird/thrift/earlybird.thrift deleted file mode 100644 index 0d4547264..000000000 --- a/src/thrift/com/twitter/search/earlybird/thrift/earlybird.thrift +++ /dev/null @@ -1,1416 +0,0 @@ -namespace java com.twitter.search.earlybird.thrift -#@namespace scala com.twitter.search.earlybird.thriftscala -#@namespace strato com.twitter.search.earlybird -namespace py gen.twitter.search.earlybird - -include "com/twitter/ads/adserver/adserver_common.thrift" -include "com/twitter/search/common/caching/caching.thrift" -include "com/twitter/search/common/constants/query.thrift" -include "com/twitter/search/common/constants/search_language.thrift" -include "com/twitter/search/common/conversation/conversation.thrift" -include "com/twitter/search/common/features/features.thrift" -include "com/twitter/search/common/indexing/status.thrift" -include "com/twitter/search/common/query/search.thrift" -include "com/twitter/search/common/ranking/ranking.thrift" -include "com/twitter/search/common/results/expansions.thrift" -include "com/twitter/search/common/results/highlight.thrift" -include "com/twitter/search/common/results/hit_attribution.thrift" -include "com/twitter/search/common/results/hits.thrift" -include "com/twitter/search/common/results/social.thrift" -include "com/twitter/service/spiderduck/gen/metadata_store.thrift" -include "com/twitter/tweetypie/deprecated.thrift" -include "com/twitter/tweetypie/tweet.thrift" -include "com/twitter/escherbird/tweet_annotation.thrift" - -enum ThriftSearchRankingMode { - // good old realtime search mode - RECENCY = 0, - // new super fancy relevance ranking - RELEVANCE = 1, - DEPRECATED_DISCOVERY = 2, - // top tweets ranking mode - TOPTWEETS = 3, - // results from accounts followed by the searcher - FOLLOWS = 4, - - PLACE_HOLDER5 = 5, - PLACE_HOLDER6 = 6, -} - -enum ThriftSearchResultType { - // it's a time-ordered result. - RECENCY = 0, - // it's a highly relevant tweet (aka top tweet). - RELEVANCE = 1, - // top tweet result type - POPULAR = 2, - // promoted tweets (ads) - PROMOTED = 3, - // relevance-ordered (as opposed to time-ordered) tweets generated from a variety of candidates - RELEVANCE_ORDERED = 4, - - PLACE_HOLDER5 = 5, - PLACE_HOLDER6 = 6, -} - -enum ThriftSocialFilterType { - // filter only users that the searcher is directly following. - FOLLOWS = 0, - // filter only users that are in searcher's social circle of trust. - TRUSTED = 1, - // filter both follows and trusted. - ALL = 2, - - PLACE_HOLDER3 = 3, - PLACE_HOLDER4 = 4, - -} - -enum ThriftTweetSource { - ///// enums set by Earlybird - REALTIME_CLUSTER = 1, - FULL_ARCHIVE_CLUSTER = 2, - REALTIME_PROTECTED_CLUSTER = 4, - - ///// enums set inside Blender - ADSERVER = 0, - // from top news search, only used in universal search - TOP_NEWS = 3, - // special tweets included just for EventParrot. - FORCE_INCLUDED = 5, - // from Content Recommender - // from topic to Tweet path - CONTENT_RECS_TOPIC_TO_TWEET = 6, - // used for hydrating QIG Tweets (go/qig) - QIG = 8, - // used for TOPTWEETS ranking mode - TOP_TWEET = 9, - // used for experimental candidate sources - EXPERIMENTAL = 7, - // from Scanr service - SCANR = 10, - - PLACE_HOLDER11 = 11, - PLACE_HOLDER12 = 12 -} - -enum NamedEntitySource { - TEXT = 0, - URL = 1, - - PLACE_HOLDER2 = 2, - PLACE_HOLDER3 = 3, - PLACE_HOLDER4 = 4, -} - -enum ExperimentCluster { - EXP0 = 0, // Send requests to the earlybird-realtime-exp0 cluster - PLACE_HOLDER1 = 1, - PLACE_HOLDER2 = 2, -} - -enum AudioSpaceState { - RUNNING = 0, - ENDED = 1, - - PLACE_HOLDER2 = 2, - PLACE_HOLDER3 = 3, - PLACE_HOLDER4 = 4, - PLACE_HOLDER5 = 5, -} - -// Contains all scoring and relevance-filtering related controls and options for Earlybird. -struct ThriftSearchRelevanceOptions { - // Next available field ID: 31 and note that 45 and 50 have been used already - - 2: optional bool filterDups = 0 // filter out duplicate search results - 26: optional bool keepDupWithHigherScore = 1 // keep the duplicate tweet with the higher score - - 3: optional bool proximityScoring = 0 // whether to do proximity scoring or not - 4: optional i32 maxConsecutiveSameUser // filter consecutive results from the same user - 5: optional ranking.ThriftRankingParams rankingParams // composed by blender - // deprecated in favor of the maxHitsToProcess in CollectorParams - 6: optional i32 maxHitsToProcess // when to early-terminate for relevance - 7: optional string experimentName // what relevance experiment is running - 8: optional string experimentBucket // what bucket the user is in; DDG defaults to hard-coded 'control' - 9: optional bool interpretSinceId = 1 // whether to interpret since_id operator - - 24: optional i32 maxHitsPerUser // Overrides ThriftSearchQuery.maxHitsPerUser - - // only used by discovery for capping direct follow tweets - 10: optional i32 maxConsecutiveDirectFollows - - // Note - the orderByRelevance flag is critical to understanding how merging - // and trimming works in relevance mode in the search root. - // - // When orderByRelevance is true, results are trimmed in score-order. This means the - // client will get the top results from (maxHitsToProcess * numHashPartitions) hits, - // ordered by score. - // - // When orderByRelevance is false, results are trimmed in id-order. This means the - // client will get the top results from an approximation of maxHitsToProcess hits - // (across the entire corpus). These results ordered by ID. - 14: optional bool orderByRelevance = 0 - - // Max blending count for results returned due to from:user rewrites - 16: optional i32 maxUserBlendCount - - // The weight for proximity phrases generated while translating the serialized query to the - // lucene query. - 19: optional double proximityPhraseWeight = 1.0 - 20: optional i32 proximityPhraseSlop = 255 - - // Override the weights of searchable fields. - // Negative weight means the the field is not enabled for search by default, - // but if it is (e.g., by annotation), the absolute value of the weight shall be - // used (if the annotation does not specify a weight). - 21: optional map fieldWeightMapOverride - - // whether disable the coordination in the rewritten disjunction query, term query and phrase query - // the details can be found in LuceneVisitor - 22: optional bool deprecated_disableCoord = 0 - - // Root only. Returns all results seen by root to the client without trimming - // if set to true. - 23: optional bool returnAllResults - - // DEPRECATED: All v2 counters will be used explicitly in the scoring function and - // returned in their own field (in either metadata or feature map in response). - 25: optional bool useEngagementCountersV2 = 0 - - // -------- PERSONALIZATION-RELATED RELEVANCE OPTIONS -------- - // Take special care with these options when reasoning about caching. - - // Deprecated in SEARCH-8616. - 45: optional map deprecated_topicIDWeights - - // Collect hit attribution on queries and likedByUserIDFilter64-enhanced queries to - // get likedByUserIds list in metadata field. - // NOTE: this flag has no affect on fromUserIDFilter64. - 50: optional bool collectFieldHitAttributions = 0 - - // Whether to collect all hits regardless of their score with RelevanceAllCollector. - 27: optional bool useRelevanceAllCollector = 0 - - // Override features of specific tweets before the tweets are scored. - 28: optional map perTweetFeaturesOverride - - // Override features of all tweets from specific users before the tweets are scored. - 29: optional map perUserFeaturesOverride - - // Override features of all tweets before the tweets are scored. - 30: optional features.ThriftSearchResultFeatures globalFeaturesOverride -}(persisted='true') - -// Facets types that may have different ranking parameters. -enum ThriftFacetType { - DEFAULT = 0, - MENTIONS_FACET = 1, - HASHTAGS_FACET = 2, - // Deprecated in SEARCH-13708 - DEPRECATED_NAMED_ENTITIES_FACET = 3, - STOCKS_FACET = 4, - VIDEOS_FACET = 5, - IMAGES_FACET = 6, - NEWS_FACET = 7, - LANGUAGES_FACET = 8, - SOURCES_FACET = 9, - TWIMG_FACET = 10, - FROM_USER_ID_FACET = 11, - DEPRECATED_TOPIC_IDS_FACET = 12, - RETWEETS_FACET = 13, - LINKS_FACET = 14, - - PLACE_HOLDER15 = 15, - PLACE_HOLDER16 = 16, -} - -struct ThriftSearchDebugOptions { - // Make earlybird only score and return tweets (specified by tweet id) here, regardless - // if they have a hit for the current query or not. - 1: optional set statusIds; - - // Assorted structures to pass in debug options. - 2: optional map stringMap; - 3: optional map valueMap; - 4: optional list valueList; -}(persisted='true') - -// These options control what metadata will be returned by earlybird for each search result -// in the ThriftSearchResultMetadata struct. These options are currently mostly supported by -// AbstractRelevanceCollector and partially in SearchResultsCollector. Most are true by default to -// preserve backwards compatibility, but can be disabled as necessary to optimize searches returning -// many results (such as discover). -struct ThriftSearchResultMetadataOptions { - // If true, fills in the tweetUrls field in ThriftSearchResultMetadata. - // Populated by AbstractRelevanceCollector. - 1: optional bool getTweetUrls = 1 - - // If true, fills in the resultLocation field in ThriftSearchResultMetadata. - // Populated by AbstractRelevanceCollector. - 2: optional bool getResultLocation = 1 - - // Deprecated in SEARCH-8616. - 3: optional bool deprecated_getTopicIDs = 1 - - // If true, fills in the luceneScore field in ThriftSearchResultMetadata. - // Populated by LinearScoringFunction. - 4: optional bool getLuceneScore = 0 - - // Deprecated but used to be for Offline feature values for static index - 5: optional bool deprecated_getExpFeatureValues = 0 - - // If true, will omit all features derivable from packedFeatures, and set packedFeatures - // instead. - 6: optional bool deprecated_usePackedFeatures = 0 - - // If true, fills sharedStatusId. For replies this is the in-reply-to status id and for - // retweets this is the retweet source status id. - // Also fills in the the isRetweet and isReply flags. - 7: optional bool getInReplyToStatusId = 0 - - // If true, fills referencedTweetAuthorId. Also fills in the the isRetweet and isReply flags. - 8: optional bool getReferencedTweetAuthorId = 0 - - // If true, fills media bits (video/vine/periscope/etc.) - 9: optional bool getMediaBits = 0 - - // If true, will return all defined features in the packed features. This flag does not cover - // the above defined features. - 10: optional bool getAllFeatures = 0 - - // If true, will return all features as ThriftSearchResultFeatures format. - 11: optional bool returnSearchResultFeatures = 0 - - // If the client caches some features schemas, client can indicate its cache schemas through - // this field based on (version, checksum). - 12: optional list featureSchemasAvailableInClient - - // Specific feature IDs to return for recency requests. Populated in SearchResultFeatures. - // Values must be IDs of CSF fields from EarlybirdFieldConstants. - 13: optional list requestedFeatureIDs - - // If true, fills in the namedEntities field in ThriftSearchResultExtraMetadata - 14: optional bool getNamedEntities = 0 - - // If true, fills in the entityAnnotations field in ThriftSearchResultExtraMetadata - 15: optional bool getEntityAnnotations = 0 - - // If true, fills in the fromUserId field in the ThriftSearchResultExtraMetadata - 16: optional bool getFromUserId = 0 - - // If true, fills in the spaces field in the ThriftSearchResultExtraMetadata - 17: optional bool getSpaces = 0 - - 18: optional bool getExclusiveConversationAuthorId = 0 -}(persisted='true') - - -// ThriftSearchQuery describes an earlybird search request, which typically consists -// of these parts: -// - a query to retrieve hits -// - relevance options to score hits -// - a collector to collect hits and process into search results -// Note that this struct is used in both ThriftBlenderRequest and EarlybirdRequest. -// Most fields are not set when this struct is embedded in ThriftBlenderRequest, and -// are filled in by the blender before sending to earlybird. -struct ThriftSearchQuery { - // Next available field ID: 42 - - // -------- SECTION ZERO: THINGS USED ONLY BY THE BLENDER -------- - // See SEARCHQUAL-2398 - // These fields are used by the blender and clients of the blender, but not by earlybird. - - // blender use only - // The raw un-parsed user search query. - 6: optional string rawQuery(personalDataType = 'SearchQuery') - - // blender use only - // Language of the rawQuery. - 18: optional string queryLang(personalDataType = 'InferredLanguage') - - // blender use only - // What page of results to return, indexed from 1. - 7: optional i32 page = 1 - - // blender use only - // Number of results to skip (for pagination). Indexed from 0. - 2: optional i32 deprecated_resultOffset = 0 - - - // -------- SECTION ONE: RETRIEVAL OPTIONS -------- - // These options control the query that will be used to retrieve documents / hits. - - // The parsed query tree, serialized to a string. Restricts the search results to - // tweets matching this query. - 1: optional string serializedQuery(personalDataType = 'SearchQuery') - - // Restricts the search results to tweets having this minimum tweep cred, out of 100. - 5: optional i32 minTweepCredFilter = -1 - - // Restricts the search results to tweets from these users. - 34: optional list fromUserIDFilter64(personalDataType = 'PrivateAccountsFollowing, PublicAccountsFollowing') - // Restricts the search results to tweets liked by these users. - 40: optional list likedByUserIDFilter64(personalDataType = 'PrivateAccountsFollowing, PublicAccountsFollowing') - - // If searchStatusIds are present, earlybird will ignore the serializedQuery completely - // and simply score each of searchStatusIds, also bypassing features like duplicate - // filtering and early termination. - // IMPORTANT: this means that it is possible to get scores equal to ScoringFunction.SKIP_HIT, - // for results skipped by the scoring function. - 31: optional set searchStatusIds - - 35: optional set deprecated_eventClusterIdsFilter - - 41: optional map> namedDisjunctionMap - - // -------- SECTION TWO: HIT COLLECTOR OPTIONS -------- - // These options control what hits will be collected by the hit collector. - // Whether we want to collect and return per-field hit attributions is set in RelevanceOptions. - // See SEARCH-2784 - // Number of results to return (after offset/page correction). - // This is ignored when searchStatusIds is set. - 3: required i32 numResults - - // Maximum number of hits to process by the collector. - // deprecated in favor of the maxHitsToProcess in CollectorParams - 4: optional i32 maxHitsToProcess = 1000 - - // Collect hit counts for these time periods (in milliseconds). - 30: optional list hitCountBuckets - - // If set, earlybird will also return the facet labels of the specified facet fields - // in result tweets. - 33: optional list facetFieldNames - - // Options controlling which search result metadata is returned. - 36: optional ThriftSearchResultMetadataOptions resultMetadataOptions - - // Collection related Params - 38: optional search.CollectorParams collectorParams - - // Whether to collect conversation IDs - 39: optional bool collectConversationId = 0 - - // -------- SECTION THREE: RELEVANCE OPTIONS -------- - // These options control relevance scoring and anti-gaming. - - // Ranking mode (RECENCY means time-ordered ranking with no relevance). - 8: optional ThriftSearchRankingMode rankingMode = ThriftSearchRankingMode.RECENCY - - // Relevance scoring options. - 9: optional ThriftSearchRelevanceOptions relevanceOptions - - // Limits the number of hits that can be contributed by the same user, for anti-gaming. - // Set to -1 to disable the anti-gaming filter. This is ignored when searchStatusIds - // is set. - 11: optional i32 maxHitsPerUser = 3 - - // Disables anti-gaming filter checks for any tweets that exceed this tweepcred. - 12: optional i32 maxTweepcredForAntiGaming = 65 - - // -------- PERSONALIZATION-RELATED RELEVANCE OPTIONS -------- - // Take special care with these options when reasoning about caching. All of these - // options, if set, will bypass the cache with the exception of uiLang which is the - // only form of personalization allowed for caching. - - // User ID of searcher. This is used for relevance, and will be used for retrieval - // by the protected tweets index. If set, query will not be cached. - 20: optional i64 searcherId(personalDataType = 'UserId') - - // Bloom filter containing trusted user IDs. If set, query will not be cached. - 10: optional binary trustedFilter(personalDataType = 'UserId') - - // Bloom filter containing direct follow user IDs. If set, query will not be cached. - 16: optional binary directFollowFilter(personalDataType = 'UserId, PrivateAccountsFollowing, PublicAccountsFollowing') - - // UI language from the searcher's profile settings. - 14: optional string uiLang(personalDataType = 'GeneralSettings') - - // Confidence of the understandability of different languages for this user. - // uiLang field above is treated as a userlang with a confidence of 1.0. - 28: optional map userLangs(personalDataTypeKey = 'InferredLanguage') - - // An alternative to fromUserIDFilter64 that relies on the relevance bloom filters - // for user filtering. Not currently used in production. Only supported for realtime - // searches. - // If set, earlybird expects both trustedFilter and directFollowFilter to also be set. - 17: optional ThriftSocialFilterType socialFilterType - - // -------- SECTION FOUR: DEBUG OPTIONS, FORGOTTEN FEATURES -------- - - // Earlybird search debug options. - 19: optional ThriftSearchDebugOptions debugOptions - - // Overrides the query time for debugging. - 29: optional i64 timestampMsecs = 0 - - // Support for this feature has been removed and this field is left for backwards compatibility - // (and to detect improper usage by clients when it is set). - 25: optional list deprecated_iterativeQueries - - // Specifies a lucene query that will only be used if serializedQuery is not set, - // for debugging. Not currently used in production. - 27: optional string luceneQuery(personalDataType = 'SearchQuery') - - // This field is deprecated and is not used by earlybirds when processing the query. - 21: optional i32 deprecated_minDocsToProcess = 0 -}(persisted='true', hasPersonalData = 'true') - - -struct ThriftFacetLabel { - 1: required string fieldName - 2: required string label - // the number of times this facet has shown up in tweets with offensive words. - 3: optional i32 offensiveCount = 0 - - // only filled for TWIMG facets - 4: optional string nativePhotoUrl -}(persisted='true') - -struct ThriftSearchResultGeoLocation { - 1: optional double latitude(personalDataType = 'GpsCoordinates') - 2: optional double longitude(personalDataType = 'GpsCoordinates') - 3: optional double distanceKm -}(persisted='true', hasPersonalData = 'true') - -// Contains an expanded url and media type from the URL facet fields in earlybird. -// Note: thrift copied from status.thrift with unused fields renamed. -struct ThriftSearchResultUrl { - // Next available field ID: 6. Fields 2-4 removed. - - // Note: this is actually the expanded url. Rename after deprecated fields are removed. - 1: required string originalUrl - - // Media type of the url. - 5: optional metadata_store.MediaTypes mediaType -}(persisted='true') - -struct ThriftSearchResultNamedEntity { - 1: required string canonicalName - 2: required string entityType - 3: required NamedEntitySource source -}(persisted='true') - -struct ThriftSearchResultAudioSpace { - 1: required string id - 2: required AudioSpaceState state -}(persisted='true') - -// Even more metadata -struct ThriftSearchResultExtraMetadata { - // Next available field ID: 49 - - 1: optional double userLangScore - 2: optional bool hasDifferentLang - 3: optional bool hasEnglishTweetAndDifferentUILang - 4: optional bool hasEnglishUIAndDifferentTweetLang - 5: optional i32 quotedCount - 6: optional double querySpecificScore - 7: optional bool hasQuote - 29: optional i64 quotedTweetId - 30: optional i64 quotedUserId - 31: optional search_language.ThriftLanguage cardLang - 8: optional i64 conversationId - 9: optional bool isSensitiveContent - 10: optional bool hasMultipleMediaFlag - 11: optional bool profileIsEggFlag - 12: optional bool isUserNewFlag - 26: optional double authorSpecificScore - 28: optional bool isComposerSourceCamera - - // temporary V2 engagement counters, original ones in ThriftSearchResultMetadata has log() - // applied on them and then converted to int in Thrift, which is effectively a premature - // discretization. It doesn't affect the scoring inside Earlybird but for scoring and ML training - // outside earlybird, they were bad. These newly added ones stores a proper value of these - // counts. This also provides an easier transition to v2 counter when Earlybird is eventually - // ready to consume them from DL - // See SEARCHQUAL-9536, SEARCH-11181 - 18: optional i32 retweetCountV2 - 19: optional i32 favCountV2 - 20: optional i32 replyCountV2 - // Tweepcred weighted version of various engagement counts - 22: optional i32 weightedRetweetCount - 23: optional i32 weightedReplyCount - 24: optional i32 weightedFavCount - 25: optional i32 weightedQuoteCount - - // 2 bits - 0, 1, 2, 3+ - 13: optional i32 numMentions - 14: optional i32 numHashtags - - // 1 byte - 256 possible languages - 15: optional i32 linkLanguage - // 6 bits - 64 possible values - 16: optional i32 prevUserTweetEngagement - - 17: optional features.ThriftSearchResultFeatures features - - // If the ThriftSearchQuery.likedByUserIdFilter64 and ThriftSearchRelevanceOptions.collectFieldHitAttributions - // fields are set, then this field will contain the list of all users in the query that liked this tweet. - // Otherwise, this field is not set. - 27: optional list likedByUserIds - - - // Deprecated. See SEARCHQUAL-10321 - 21: optional double dopamineNonPersonalizedScore - - 32: optional list namedEntities - 33: optional list entityAnnotations - - // Health model scores from HML - 34: optional double toxicityScore // (go/toxicity) - 35: optional double pBlockScore // (go/pblock) - 36: optional double experimentalHealthModelScore1 - 37: optional double experimentalHealthModelScore2 - 38: optional double experimentalHealthModelScore3 - 39: optional double experimentalHealthModelScore4 - - 40: optional i64 directedAtUserId - - // Health model scores from HML (cont.) - 41: optional double pSpammyTweetScore // (go/pspammytweet) - 42: optional double pReportedTweetScore // (go/preportedtweet) - 43: optional double spammyTweetContentScore // (go/spammy-tweet-content) - // it is populated by looking up user table and it is only available in archive earlybirds response - 44: optional bool isUserProtected - 45: optional list spaces - - 46: optional i64 exclusiveConversationAuthorId - 47: optional string cardUri - 48: optional bool fromBlueVerifiedAccount(personalDataType = 'UserVerifiedFlag') -}(persisted='true') - -// Some basic metadata about a search result. Useful for re-sorting, filtering, etc. -// -// NOTE: DO NOT ADD NEW FIELD!! -// Stop adding new fields to this struct, all new fields should go to -// ThriftSearchResultExtraMetadata (VM-1897), or there will be performance issues in production. -struct ThriftSearchResultMetadata { - // Next available field ID: 86 - - // -------- BASIC SCORING METADATA -------- - - // When resultType is RECENCY most scoring metadata will not be available. - 1: required ThriftSearchResultType resultType - - // Relevance score computed for this result. - 3: optional double score - - // True if the result was skipped by the scoring function. Only set when the collect-all - // results collector was used - in other cases skipped results are not returned. - // The score will be ScoringFunction.SKIP_HIT when skipped is true. - 43: optional bool skipped - - // optionally a Lucene-style explanation for this result - 5: optional string explanation - - - // -------- NETWORK-BASED SCORING METADATA -------- - - // Found the tweet in the trusted circle. - 6: optional bool isTrusted - - // Found the tweet in the direct follows. - 8: optional bool isFollow - - // True if the fromUserId of this tweet was whitelisted by the dup / antigaming filter. - // This typically indicates the result was from a tweet that matched a fromUserId query. - 9: optional bool dontFilterUser - - - // -------- COMMON DOCUMENT METADATA -------- - - // User ID of the author. When isRetweet is true, this is the user ID of the retweeter - // and NOT that of the original tweet. - 7: optional i64 fromUserId = 0 - - // When isRetweet (or packed features equivalent) is true, this is the status id of the - // original tweet. When isReply and getReplySource are true, this is the status id of the - // original tweet. In all other circumstances this is 0. - 40: optional i64 sharedStatusId = 0 - - // When hasCard (or packed features equivalent) is true, this is one of SearchCardType. - 49: optional i8 cardType = 0 - - // -------- EXTENDED DOCUMENT METADATA -------- - // This is additional metadata from facet fields and column stride fields. - // Return of these fields is controlled by ThriftSearchResultMetadataOptions to - // allow for fine-grained control over when these fields are returned, as an - // optimization for searches returning a large quantity of results. - - // Lucene component of the relevance score. Only returned when - // ThriftSearchResultMetadataOptions.getLuceneScore is true. - 31: optional double luceneScore = 0.0 - - // Urls found in the tweet. Only returned when - // ThriftSearchResultMetadataOptions.getTweetUrls is true. - 18: optional list tweetUrls - - // Deprecated in SEARCH-8616. - 36: optional list deprecated_topicIDs - - // Facets available in this tweet, this will only be filled if - // ThriftSearchQuery.facetFieldNames is set in the request. - 22: optional list facetLabels - - // The location of the result, and the distance to it from the center of the query - // location. Only returned when ThriftSearchResultMetadataOptions.getResultLocation is true. - 35: optional ThriftSearchResultGeoLocation resultLocation - - // Per field hit attribution. - 55: optional hit_attribution.FieldHitAttribution fieldHitAttribution - - // whether this has geolocation_type:geotag hit - 57: optional bool geotagHit = 0 - - // the user id of the author of the source/referenced tweet (the tweet one replied - // to, retweeted and possibly quoted, etc.) (SEARCH-8561) - // Only returned when ThriftSearchResultMetadataOptions.getReferencedTweetAuthorId is true. - 60: optional i64 referencedTweetAuthorId = 0 - - // Whether this tweet has certain types of media. - // Only returned when ThriftSearchResultMetadataOptions.getMediaBits is true. - // "Native video" is either consumer, pro, vine, or periscope. - // "Native image" is an image hosted on pic.twitter.com. - 62: optional bool hasConsumerVideo - 63: optional bool hasProVideo - 64: optional bool hasVine - 65: optional bool hasPeriscope - 66: optional bool hasNativeVideo - 67: optional bool hasNativeImage - - // Packed features for this result. This field is never populated. - 50: optional status.PackedFeatures deprecated_packedFeatures - - // The features stored in earlybird - - // From integer 0 from EarlybirdFeatureConfiguration: - 16: optional bool isRetweet - 71: optional bool isSelfTweet - 10: optional bool isOffensive - 11: optional bool hasLink - 12: optional bool hasTrend - 13: optional bool isReply - 14: optional bool hasMultipleHashtagsOrTrends - 23: optional bool fromVerifiedAccount - // Static text quality score. This is actually an int between 0 and 100. - 30: optional double textScore - 51: optional search_language.ThriftLanguage language - - // From integer 1 from EarlybirdFeatureConfiguration: - 52: optional bool hasImage - 53: optional bool hasVideo - 28: optional bool hasNews - 48: optional bool hasCard - 61: optional bool hasVisibleLink - // Tweep cred aka user rep. This is actually an int between 0 and 100. - 32: optional double userRep - 24: optional bool isUserSpam - 25: optional bool isUserNSFW - 26: optional bool isUserBot - 54: optional bool isUserAntiSocial - - // From integer 2 from EarlybirdFeatureConfiguration: - - // Retweet, fav, reply, embeds counts, and video view counts are APPROXIMATE ONLY. - // Note that retweetCount, favCount and replyCount are not original unnormalized values, - // but after a log2() function for historical reason, this loses us some granularity. - // For more accurate counts, use {retweet, fav, reply}CountV2 in extraMetadata. - 2: optional i32 retweetCount - 33: optional i32 favCount - 34: optional i32 replyCount - 58: optional i32 embedsImpressionCount - 59: optional i32 embedsUrlCount - 68: optional i32 videoViewCount - - // Parus score. This is actually an int between 0 and 100. - 29: optional double parusScore - - // Extra feature data, all new feature fields you want to return from Earlybird should go into - // this one, the outer one is always reaching its limit of the number of fields JVM can - // comfortably support!! - 86: optional ThriftSearchResultExtraMetadata extraMetadata - - // Integer 3 is omitted, see expFeatureValues above for more details. - - // From integer 4 from EarlybirdFeatureConfiguration: - // Signature, for duplicate detection and removal. - 4: optional i32 signature - - // -------- THINGS USED ONLY BY THE BLENDER -------- - - // Social proof of the tweet, for network discovery. - // Do not use these fields outside of network discovery. - 41: optional list retweetedUserIDs64 - 42: optional list replyUserIDs64 - - // Social connection between the search user and this result. - 19: optional social.ThriftSocialContext socialContext - - // used by RelevanceTimelineSearchWorkflow, whether a tweet should be highlighted or not - 46: optional bool highlightResult - - // used by RelevanceTimelineSearchWorkflow, the highlight context of the highlighted tweet - 47: optional highlight.ThriftHighlightContext highlightContext - - // the penguin version used to tokenize the tweets by the serving earlybird index as defined - // in com.twitter.common.text.version.PenguinVersion - 56: optional i8 penguinVersion - - 69: optional bool isNullcast - - // This is the normalized ratio(0.00 to 1.00) of nth token(starting before 140) divided by - // numTokens and then normalized into 16 positions(4 bits) but on a scale of 0 to 100% as - // we unnormalize it for you - 70: optional double tokenAt140DividedByNumTokensBucket - -}(persisted='true') - -// Query level result stats. -// Next id: 20 -struct ThriftSearchResultsRelevanceStats { - 1: optional i32 numScored = 0 - // Skipped documents count, they were also scored but their scores got ignored (skipped), note that this is different - // from numResultsSkipped in the ThriftSearchResults. - 2: optional i32 numSkipped = 0 - 3: optional i32 numSkippedForAntiGaming = 0 - 4: optional i32 numSkippedForLowReputation = 0 - 5: optional i32 numSkippedForLowTextScore = 0 - 6: optional i32 numSkippedForSocialFilter = 0 - 7: optional i32 numSkippedForLowFinalScore = 0 - 8: optional i32 oldestScoredTweetAgeInSeconds = 0 - - // More counters for various features. - 9: optional i32 numFromDirectFollows = 0 - 10: optional i32 numFromTrustedCircle = 0 - 11: optional i32 numReplies = 0 - 12: optional i32 numRepliesTrusted = 0 - 13: optional i32 numRepliesOutOfNetwork = 0 - 14: optional i32 numSelfTweets = 0 - 15: optional i32 numWithMedia = 0 - 16: optional i32 numWithNews = 0 - 17: optional i32 numSpamUser = 0 - 18: optional i32 numOffensive = 0 - 19: optional i32 numBot = 0 -}(persisted='true') - -// Per result debug info. -struct ThriftSearchResultDebugInfo { - 1: optional string hostname - 2: optional string clusterName - 3: optional i32 partitionId - 4: optional string tiername -}(persisted='true') - -struct ThriftSearchResult { - // Next available field ID: 22 - - // Result status id. - 1: required i64 id - - // TweetyPie status of the search result - 7: optional deprecated.Status tweetypieStatus - 19: optional tweet.Tweet tweetypieTweet // v2 struct - - // If the search result is a retweet, this field contains the source TweetyPie status. - 10: optional deprecated.Status sourceTweetypieStatus - 20: optional tweet.Tweet sourceTweetypieTweet // v2 struct - - // If the search result is a quote tweet, this field contains the quoted TweetyPie status. - 17: optional deprecated.Status quotedTweetypieStatus - 21: optional tweet.Tweet quotedTweetypieTweet // v2 struct - - // Additional metadata about a search result. - 5: optional ThriftSearchResultMetadata metadata - - // Hit highlights for various parts of this tweet - // for tweet text - 6: optional list hitHighlights - // for the title and description in the card expando. - 12: optional list cardTitleHitHighlights - 13: optional list cardDescriptionHitHighlights - - // Expansion types, if expandResult == False, the expansions set should be ignored. - 8: optional bool expandResult = 0 - 9: optional set expansions - - // Only set if this is a promoted tweet - 11: optional adserver_common.AdImpression adImpression - - // where this tweet is from - // Since ThriftSearchResult used not only as an Earlybird response, but also an internal - // data transfer object of Blender, the value of this field is mutable in Blender, not - // necessarily reflecting Earlybird response. - 14: optional ThriftTweetSource tweetSource - - // the features of a tweet used for relevance timeline - // this field is populated by blender in RelevanceTimelineSearchWorkflow - 15: optional features.ThriftTweetFeatures tweetFeatures - - // the conversation context of a tweet - 16: optional conversation.ThriftConversationContext conversationContext - - // per-result debugging info that's persisted across merges. - 18: optional ThriftSearchResultDebugInfo debugInfo -}(persisted='true') - -enum ThriftFacetRankingMode { - COUNT = 0, - FILTER_WITH_TERM_STATISTICS = 1, -} - -struct ThriftFacetFieldRequest { - // next available field ID: 4 - 1: required string fieldName - 2: optional i32 numResults = 5 - - // use facetRankingOptions in ThriftFacetRequest instead - 3: optional ThriftFacetRankingMode rankingMode = ThriftFacetRankingMode.COUNT -}(persisted='true') - -struct ThriftFacetRequest { - // Next available field ID: 7 - 1: optional list facetFields - 5: optional ranking.ThriftFacetRankingOptions facetRankingOptions - 6: optional bool usingQueryCache = 0 -}(persisted='true') - -struct ThriftTermRequest { - 1: optional string fieldName = "text" - 2: required string term -}(persisted='true') - -enum ThriftHistogramGranularityType { - MINUTES = 0 - HOURS = 1, - DAYS = 2, - CUSTOM = 3, - - PLACE_HOLDER4 = 4, - PLACE_HOLDER5 = 5, -} - -struct ThriftHistogramSettings { - 1: required ThriftHistogramGranularityType granularity - 2: optional i32 numBins = 60 - 3: optional i32 samplingRate = 1 - 4: optional i32 binSizeInSeconds // the bin size, only used if granularity is set to CUSTOM. -}(persisted='true') - -// next id is 4 -struct ThriftTermStatisticsRequest { - 1: optional list termRequests - 2: optional ThriftHistogramSettings histogramSettings - // If this is set to true, even if there is no termRequests above, so long as the histogramSettings - // is set, Earlybird will return a null->ThriftTermResults entry in the termResults map, containing - // the global tweet count histogram for current query, which is the number of tweets matching this - // query in different minutes/hours/days. - 3: optional bool includeGlobalCounts = 0 - // When this is set, the background facets call does another search in order to find the best - // representative tweet for a given term request, the representative tweet is stored in the - // metadata of the termstats result - 4: optional bool scoreTweetsForRepresentatives = 0 -}(persisted='true') - -// Next id is 12 -struct ThriftFacetCountMetadata { - // this is the id of the first tweet in the index that contained this facet - 1: optional i64 statusId = -1 - - // whether the tweet with the above statusId is NSFW, from an antisocial user, - // marked as sensitive content, etc. - 10: optional bool statusPossiblySensitive - - // the id of the user who sent the tweet above - only returned if - // statusId is returned too - // NOTE: for native photos we may not be able to determine the user, - // even though the statusId can be returned. This is because the statusId - // can be determined from the url, but the user can't and the tweet may - // not be in the index anymore. In this case statusId would be set but - // twitterUserId would not. - 2: optional i64 twitterUserId = -1 - - // the language of the tweet above. - 8: optional search_language.ThriftLanguage statusLanguage - - // optionally whitelist the fromUserId from dup/twitterUserId filtering - 3: optional bool dontFilterUser = 0; - - // if this facet is a native photo we return for convenience the - // twimg url - 4: optional string nativePhotoUrl - - // optionally returns some debug information about this facet - 5: optional string explanation - - // the created_at value for the tweet from statusId - only returned - // if statusId is returned too - 6: optional i64 created_at - - // the maximum tweepcred of the hits that contained this facet - 7: optional i32 maxTweepCred - - // Whether this facet result is force inserted, instead of organically returned from search. - // This field is only used in Blender to mark the force-inserted facet results - // (from recent tweets, etc). - 11: optional bool forceInserted = 0 -}(persisted='true') - -struct ThriftTermResults { - 1: required i32 totalCount - 2: optional list histogramBins - 3: optional ThriftFacetCountMetadata metadata -}(persisted='true') - -struct ThriftTermStatisticsResults { - 1: required map termResults - 2: optional ThriftHistogramSettings histogramSettings - // If histogramSettings are set, this will have a list of ThriftHistogramSettings.numBins binIds, - // that the corresponding histogramBins in ThriftTermResults will have counts for. - // The binIds will correspond to the times of the hits matching the driving search query for this - // term statistics request. - // If there were no hits matching the search query, numBins binIds will be returned, but the - // values of the binIds will not meaningfully correspond to anything related to the query, and - // should not be used. Such cases can be identified by ThriftSearchResults.numHitsProcessed being - // set to 0 in the response, and the response not being early terminated. - 3: optional list binIds - // If set, this id indicates the id of the minimum (oldest) bin that has been completely searched, - // even if the query was early terminated. If not set no bin was searched fully, or no histogram - // was requested. - // Note that if e.g. a query only matches a bin partially (due to e.g. a since operator) the bin - // is still considered fully searched if the query did not early terminate. - 4: optional i32 minCompleteBinId -}(persisted='true') - -struct ThriftFacetCount { - // the text of the facet - 1: required string facetLabel - - // deprecated; currently matches weightedCount for backwards-compatibility reasons - 2: optional i32 facetCount - - // the simple count of tweets that contained this facet, without any - // weighting applied - 7: optional i32 simpleCount - - // a weighted version of the count, using signals like tweepcred, parus, etc. - 8: optional i32 weightedCount - - // the number of times this facet occurred in tweets matching the background query - // using the term statistics API - only set if FILTER_WITH_TERM_STATISTICS was used - 3: optional i32 backgroundCount - - // the relevance score that was computed for this facet if FILTER_WITH_TERM_STATISTICS - // was used - 4: optional double score - - // a counter for how often this facet was penalized - 5: optional i32 penaltyCount - - 6: optional ThriftFacetCountMetadata metadata -}(persisted='true') - -// List of facet labels and counts for a given facet field, the -// total count for this field, and a quality score for this field -struct ThriftFacetFieldResults { - 1: required list topFacets - 2: required i32 totalCount - 3: optional double scoreQuality - 4: optional i32 totalScore - 5: optional i32 totalPenalty - - // The ratio of the tweet language in the tweets with this facet field, a map from the language - // name to a number between (0.0, 1.0]. Only languages with ratio higher than 0.1 will be included. - 6: optional map languageHistogram -} - -struct ThriftFacetResults { - 1: required map facetFields - 2: optional i32 backgroundNumHits - // returns optionally a list of user ids that should not get filtered - // out by things like antigaming filters, because these users were explicitly - // queried for - // Note that ThriftFacetCountMetadata returns already dontFilterUser - // for facet requests in which case this list is not needed. However, it - // is needed for subsequent term statistics queries, were user id lookups - // are performed, but a different background query is used. - 3: optional set userIDWhitelist -} - -struct ThriftSearchResults { - // Next available field ID: 23 - 1: required list results = [] - - // (SEARCH-11950): Now resultOffset is deprecated, so there is no use in numResultsSkipped too. - 9: optional i32 deprecated_numResultsSkipped - - // Number of docs that matched the query and were processed. - 7: optional i32 numHitsProcessed - - // Range of status IDs searched, from max ID to min ID (both inclusive). - // These may be unset in case that the search query contained ID or time - // operators that were completely out of range for the given index. - 10: optional i64 maxSearchedStatusID - 11: optional i64 minSearchedStatusID - - // Time range that was searched (both inclusive). - 19: optional i32 maxSearchedTimeSinceEpoch - 20: optional i32 minSearchedTimeSinceEpoch - - 12: optional ThriftSearchResultsRelevanceStats relevanceStats - - // Overall quality of this search result set - 13: optional double score = -1.0 - 18: optional double nsfwRatio = 0.0 - - // The count of hit documents in each language. - 14: optional map languageHistogram - - // Hit counts per time period: - // The key is a time cutoff in milliseconds (e.g. 60000 msecs ago). - // The value is the number of hits that are more recent than the cutoff. - 15: optional map hitCounts - - // the total cost for this query - 16: optional double queryCost - - // Set to non-0 if this query was terminated early (either due to a timeout, or exceeded query cost) - // When getting this response from a single earlybird, this will be set to 1, if the query - // terminated early. - // When getting this response from a search root, this should be set to the number of individual - // earlybird requests that were terminated early. - 17: optional i32 numPartitionsEarlyTerminated - - // If ThriftSearchResults returns features in features.ThriftSearchResultFeature format, this - // field would define the schema of the features. - // If the earlybird schema is already in the client cached schemas indicated in the request, then - // searchFeatureSchema would only have (version, checksum) information. - // - // Notice that earlybird root only sends one schema back to the superroot even though earlybird - // root might receive multiple version of schemas. - // - // Earlybird roots' schema merge/choose logic when returning results to superroot: - // . pick the most occurred versioned schema and return the schema to the superroot - // . if the superroot already caches the schema, only send the version information back - // - // Superroots' schema merge/choose logic when returning results to clients: - // . pick the schema based on the order of: realtime > protected > archive - // . because of the above ordering, it is possible that archive earlybird schema with a new flush - // version (with new bit features) might be lost to older realtime earlybird schema; this is - // considered to to be rare and acceptable because one realtime earlybird deploy would fix it - 21: optional features.ThriftSearchFeatureSchema featureSchema - - // How long it took to score the results in earlybird (in nanoseconds). The number of results - // that were scored should be set in numHitsProcessed. - // Expected to only be set for requests that actually do scoring (i.e. Relevance and TopTweets). - 22: optional i64 scoringTimeNanos - - 8: optional i32 deprecated_numDocsProcessed -} - -// Note: Earlybird no longer respects this field, as it does not contain statuses. -// Blender should respect it. -enum EarlybirdReturnStatusType { - NO_STATUS = 0 - // deprecated - DEPRECATED_BASIC_STATUS = 1, - // deprecated - DEPRECATED_SEARCH_STATUS = 2, - TWEETYPIE_STATUS = 3, - - PLACE_HOLDER4 = 4, - PLACE_HOLDER5 = 5, -} - -struct AdjustedRequestParams { - // Next available field ID: 4 - - // Adjusted value for EarlybirdRequest.searchQuery.numResults. - 1: optional i32 numResults - - // Adjusted value for EarlybirdRequest.searchQuery.maxHitsToProcess and - // EarlybirdRequest.searchQuery.relevanceOptions.maxHitsToProcess. - 2: optional i32 maxHitsToProcess - - // Adjusted value for EarlybirdRequest.searchQuery.relevanceOptions.returnAllResults - 3: optional bool returnAllResults -} - -struct EarlybirdRequest { - // Next available field ID: 36 - - // -------- COMMON REQUEST OPTIONS -------- - // These fields contain options respected by all kinds of earlybird requests. - - // Search query containing general earlybird retrieval and hit collection options. - // Also contains the options specific to search requests. - 1: required ThriftSearchQuery searchQuery - - // Common RPC information - client hostname and request ID. - 12: optional string clientHost - 13: optional string clientRequestID - - // A string identifying the client that initiated the request. - // Ex: macaw-search.prod, webforall.prod, webforall.staging. - // The intention is to track the load we get from each client, and eventually enforce - // per-client QPS quotas, but this field could also be used to allow access to certain features - // only to certain clients, etc. - 21: optional string clientId - - // The time (in millis since epoch) when the earlybird client issued this request. - // Can be used to estimate request timeout time, capturing in-transit time for the request. - 23: optional i64 clientRequestTimeMs - - // Caching parameters used by earlybird roots. - 24: optional caching.CachingParams cachingParams - - // Deprecated. See SEARCH-2784 - // Earlybird requests will be early terminated in a best-effort way to prevent them from - // exceeding the given timeout. If timeout is <= 0 this early termination criteria is - // disabled. - 17: optional i32 timeoutMs = -1 - - // Deprecated. See SEARCH-2784 - // Earlybird requests will be early terminated in a best-effort way to prevent them from - // exceeding the given query cost. If maxQueryCost <= 0 this early termination criteria - // is disabled. - 20: optional double maxQueryCost = -1 - - - // -------- REQUEST-TYPE SPECIFIC OPTIONS -------- - // These fields contain options for one specific kind of request. If one of these options - // is set the request will be considered to be the appropriate type of request. - - // Options for facet counting requests. - 11: optional ThriftFacetRequest facetRequest - - // Options for term statistics requests. - 14: optional ThriftTermStatisticsRequest termStatisticsRequest - - - // -------- DEBUG OPTIONS -------- - // Used for debugging only. - - // Debug mode, 0 for no debug information. - 15: optional i8 debugMode = 0 - - // Can be used to pass extra debug arguments to earlybird. - 34: optional EarlybirdDebugOptions debugOptions - - // Searches a specific segment by time slice id if set and segment id is > 0. - 22: optional i64 searchSegmentId - - // -------- THINGS USED ONLY BY THE BLENDER -------- - // These fields are used by the blender and clients of the blender, but not by earlybird. - - // Specifies what kind of status object to return, if any. - 7: optional EarlybirdReturnStatusType returnStatusType - - - // -------- THINGS USED BY THE ROOTS -------- - // These fields are not in use by earlybirds themselves, but are in use by earlybird roots - // (and their clients). - // These fields live here since we currently reuse the same thrift request and response structs - // for both earlybirds and earlybird roots, and could potentially be moved out if we were to - // introduce separate request / response structs specifically for the roots. - - // We have a threshold for how many hash partition requests need to succeed at the root level - // in order for the earlybird root request to be considered successful. - // Each type or earlybird queries (e.g. relevance, or term statistics) has a predefined default - // threshold value (e.g. 90% or hash partitions need to succeed for a recency query). - // The client can optionally set the threshold value to be something other than the default, - // by setting this field to a value in the range of 0 (exclusive) to 1 (inclusive). - // If this value is set outside of the (0, 1] range, a CLIENT_ERROR EarlybirdResponseCode will - // be returned. - 25: optional double successfulResponseThreshold - - // Where does the query come from? - 26: optional query.ThriftQuerySource querySource - - // Whether to get archive results This flag is advisory. A request may still be restricted from - // getting reqults from the archive based on the requesting client, query source, requested - // time/id range, etc. - 27: optional bool getOlderResults - - // The list of users followed by the current user. - // Used to restrict the values in the fromUserIDFilter64 field when sending a request - // to the protectected cluster. - 28: optional list followedUserIds - - // The adjusted parameters for the protected request. - 29: optional AdjustedRequestParams adjustedProtectedRequestParams - - // The adjusted parameters for the full archive request. - 30: optional AdjustedRequestParams adjustedFullArchiveRequestParams - - // Return only the protected tweets. This flag is used by the SuperRoot to return relevance - // results that contain only protected tweets. - 31: optional bool getProtectedTweetsOnly - - // Tokenize serialized queries with the appropriate Pengin version(s). - // Only has an effect on superroot. - 32: optional bool retokenizeSerializedQuery - - // Flag to ignore tweets that are very recent and could be incompletely indexed. - // If false, will allow queries to see results that may violate implicit streaming - // guarantees and will search Tweets that have been partially indexed. - // See go/indexing-latency for more details. When enabled, prevents seeing tweets - // that are less than 15 seconds old (or a similarly configured threshold). - // May be set to false unless explicitly set to true. - 33: optional bool skipVeryRecentTweets = 1 - - // Setting an experimental cluster will reroute traffic at the realtime root layer to an experimental - // Earlybird cluster. This will have no impact if set on requests to anywhere other than realtime root. - 35: optional ExperimentCluster experimentClusterToUse - - // Caps number of results returned by roots after merging results from different earlybird partitions/clusters. - // If not set, ThriftSearchQuery.numResults or CollectorParams.numResultsToReturn will be used to cap results. - // This parameter will be ignored if ThriftRelevanceOptions.returnAllResults is set to true. - 36: optional i32 numResultsToReturnAtRoot -} - -enum EarlybirdResponseCode { - SUCCESS = 0, - PARTITION_NOT_FOUND = 1, - PARTITION_DISABLED = 2, - TRANSIENT_ERROR = 3, - PERSISTENT_ERROR = 4, - CLIENT_ERROR = 5, - PARTITION_SKIPPED = 6, - // Request was queued up on the server for so long that it timed out, and was not - // executed at all. - SERVER_TIMEOUT_ERROR = 7, - TIER_SKIPPED = 8, - // Not enough partitions returned a successful response. The merged response will have partition - // counts and early termination info set, but will not have search results. - TOO_MANY_PARTITIONS_FAILED_ERROR = 9, - // Client went over its quota, and the request was throttled. - QUOTA_EXCEEDED_ERROR = 10, - // Client's request is blocked based on Search Infra's policy. Search Infra can can block client's - // requests based on the query source of the request. - REQUEST_BLOCKED_ERROR = 11, - - CLIENT_CANCEL_ERROR = 12, - - CLIENT_BLOCKED_BY_TIER_ERROR = 13, - - PLACE_HOLDER_2015_09_21 = 14, -} - -// A recorded request and response. -struct EarlybirdRequestResponse { - // Where did we send this request to. - 1: optional string sentTo; - 2: optional EarlybirdRequest request; - // This can't be an EarlybirdResponse, because the thrift compiler for Python - // doesn't allow cyclic references and we have some Python utilities that will fail. - 3: optional string response; -} - -struct EarlybirdDebugInfo { - 1: optional string host - 2: optional string parsedQuery - 3: optional string luceneQuery - // Requests sent to dependent services. For example, superroot sends to realtime root, - // archive root, etc. - 4: optional list sentRequests; - // segment level debug info (eg. hitsPerSegment, max/minSearchedTime etc.) - 5: optional list collectorDebugInfo - 6: optional list termStatisticsDebugInfo -} - -struct EarlybirdDebugOptions { - 1: optional bool includeCollectorDebugInfo -} - -struct TierResponse { - 1: optional EarlybirdResponseCode tierResponseCode - 2: optional i32 numPartitions - 3: optional i32 numSuccessfulPartitions -} - -struct EarlybirdServerStats { - // The hostname of the Earlybird that processed this request. - 1: optional string hostname - - // The partition to which this earlybird belongs. - 2: optional i32 partition - - // Current Earlybird QPS. - // Earlybirds should set this field at the end of a request (not at the start). This would give - // roots a more up-to-date view of the load on the earlybirds. - 3: optional i64 currentQps - - // The time the request waited in the queue before Earlybird started processing it. - // This does not include the time spent in the finagle queue: it's the time between the moment - // earlybird received the request, and the moment it started processing the request. - 4: optional i64 queueTimeMillis - - // The average request time in the queue before Earlybird started processing it. - // This does not include the time that requests spent in the finagle queue: it's the average time - // between the moment earlybird received its requests, and the moment it started processing them. - 5: optional i64 averageQueueTimeMillis - - // Current average per-request latency as perceived by Earlybird. - 6: optional i64 averageLatencyMicros - - // The tier to which this earlybird belongs. - 7: optional string tierName -} - -struct EarlybirdResponse { - // Next available field ID: 17 - 1: optional ThriftSearchResults searchResults - 5: optional ThriftFacetResults facetResults - 6: optional ThriftTermStatisticsResults termStatisticsResults - 2: required EarlybirdResponseCode responseCode - 3: required i64 responseTime - 7: optional i64 responseTimeMicros - // fields below will only be returned if debug > 1 in the request. - 4: optional string debugString - 8: optional EarlybirdDebugInfo debugInfo - - // Only exists for merged earlybird response. - 10: optional i32 numPartitions - 11: optional i32 numSuccessfulPartitions - // Only exists for merged earlybird response from multiple tiers. - 13: optional list perTierResponse - - // Total number of segments that were searched. Partially searched segments are fully counted. - // e.g. if we searched 1 segment fully, and early terminated half way through the second - // segment, this field should be set to 2. - 15: optional i32 numSearchedSegments - - // Whether the request early terminated, if so, the termination reason. - 12: optional search.EarlyTerminationInfo earlyTerminationInfo - - // Whether this response is from cache. - 14: optional bool cacheHit - - // Stats used by roots to determine if we should go into degraded mode. - 16: optional EarlybirdServerStats earlybirdServerStats -} - -enum EarlybirdStatusCode { - STARTING = 0, - CURRENT = 1, - STOPPING = 2, - UNHEALTHY = 3, - BLACKLISTED = 4, - - PLACE_HOLDER5 = 5, - PLACE_HOLDER6 = 6, -} - -struct EarlybirdStatusResponse { - 1: required EarlybirdStatusCode code - 2: required i64 aliveSince - 3: optional string message -} - -service EarlybirdService { - string getName(), - EarlybirdStatusResponse getStatus(), - EarlybirdResponse search( 1: EarlybirdRequest request ) -} diff --git a/src/thrift/com/twitter/simclusters_v2/BUILD b/src/thrift/com/twitter/simclusters_v2/BUILD deleted file mode 100644 index 221cc9184..000000000 --- a/src/thrift/com/twitter/simclusters_v2/BUILD +++ /dev/null @@ -1,23 +0,0 @@ -create_thrift_libraries( - base_name = "simclusters_v2-thrift", - sources = ["*.thrift"], - platform = "java8", - tags = ["bazel-compatible"], - dependency_roots = [ - "src/thrift/com/twitter/algebird_internal", - ], - export_roots = [ - "src/thrift/com/twitter/algebird_internal:algebird_internal", - ], - generate_languages = [ - "go", - "java", - "lua", - "python", - "ruby", - "scala", - "strato", - ], - provides_java_name = "simclusters_v2-thrift-java", - provides_scala_name = "simclusters_v2-thrift-scala", -) diff --git a/src/thrift/com/twitter/simclusters_v2/BUILD.docx b/src/thrift/com/twitter/simclusters_v2/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..3bdfdf2cbbdbd5887daf4719dc914a0fb447f238 GIT binary patch literal 36882 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 RAW*InWJm;NkJ;TI9sqVU(YXKs literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/simclusters_v2/abuse.docx b/src/thrift/com/twitter/simclusters_v2/abuse.docx new file mode 100644 index 0000000000000000000000000000000000000000..29efae70af3ef069ea13c5afb9736a3fba05a828 GIT binary patch literal 37613 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 interactionScores -}(persisted="true", hasPersonalData = 'true') - -/** -* This is a prod version of the single side features. It is meant to be used as a value in a key -* value store. The pair of healthy and unhealthy scores will be different depending on the use case. -* We will use different stores for different user cases. For instance, the first instance that -* we implement will use search abuse reports and impressions. We can build stores for new values -* in the future. -* -* The consumer creates the interactions which the author receives. For instance, the consumer -* creates an abuse report for an author. The consumer scores are related to the interaction creation -* behavior of the consumer. The author scores are related to the whether the author receives these -* interactions. -* -**/ -struct SingleSideUserScores { - 1: required i64 userId(personalDataType = 'UserId') - 2: required double consumerUnhealthyScore(personalDataType = 'EngagementScore') - 3: required double consumerHealthyScore(personalDataType = 'EngagementScore') - 4: required double authorUnhealthyScore(personalDataType = 'EngagementScore') - 5: required double authorHealthyScore(personalDataType = 'EngagementScore') -}(persisted="true", hasPersonalData = 'true') - -/** -* Struct that associates a cluster-cluster interaction scores for different -* interaction types. -**/ -struct AdhocCrossSimClusterInteractionScores { - 1: required i64 clusterId - 2: required list clusterScores -}(persisted="true") diff --git a/src/thrift/com/twitter/simclusters_v2/clustering.docx b/src/thrift/com/twitter/simclusters_v2/clustering.docx new file mode 100644 index 0000000000000000000000000000000000000000..96164124cb181cfb4f9fc8fa755fa9f634fa3ab4 GIT binary patch literal 36980 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 orderedClustersAndMembers (personalDataType = 'UserId') - // work around BQ not supporting nested struct such as list - 2: optional list orderedClustersAndMembersStruct (personalDataType = 'UserId') -}(persisted = 'true', hasPersonalData = 'true') - -struct ClusterMembers { - 1: required set clusterMembers (personalDataType = 'UserId') -}(persisted = 'true', hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/embedding.docx b/src/thrift/com/twitter/simclusters_v2/embedding.docx new file mode 100644 index 0000000000000000000000000000000000000000..2835d50ca18d191d191f2d394babbb7fbd10404f GIT binary patch literal 37778 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 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/simclusters_v2/embedding.thrift b/src/thrift/com/twitter/simclusters_v2/embedding.thrift deleted file mode 100644 index 110da0c65..000000000 --- a/src/thrift/com/twitter/simclusters_v2/embedding.thrift +++ /dev/null @@ -1,137 +0,0 @@ -namespace java com.twitter.simclusters_v2.thriftjava -namespace py gen.twitter.simclusters_v2.embedding -#@namespace scala com.twitter.simclusters_v2.thriftscala -#@namespace strato com.twitter.simclusters_v2 - -include "com/twitter/simclusters_v2/identifier.thrift" -include "com/twitter/simclusters_v2/online_store.thrift" - -struct SimClusterWithScore { - 1: required i32 clusterId(personalDataType = 'InferredInterests') - 2: required double score(personalDataType = 'EngagementScore') -}(persisted = 'true', hasPersonalData = 'true') - -struct TopSimClustersWithScore { - 1: required list topClusters - 2: required online_store.ModelVersion modelVersion -}(persisted = 'true', hasPersonalData = 'true') - -struct InternalIdWithScore { - 1: required identifier.InternalId internalId - 2: required double score(personalDataType = 'EngagementScore') -}(persisted = 'true', hasPersonalData = 'true') - -struct InternalIdEmbedding { - 1: required list embedding -}(persisted = 'true', hasPersonalData = 'true') - -struct SemanticCoreEntityWithScore { - 1: required i64 entityId(personalDataType = 'SemanticcoreClassification') - 2: required double score(personalDataType = 'EngagementScore') -}(persisted = 'true', hasPersonalData = 'true') - -struct TopSemanticCoreEntitiesWithScore { - 1: required list topEntities -}(persisted = 'true', hasPersonalData = 'true') - -struct PersistedFullClusterId { - 1: required online_store.ModelVersion modelVersion - 2: required i32 clusterId(personalDataType = 'InferredInterests') -}(persisted = 'true', hasPersonalData = 'true') - -struct DayPartitionedClusterId { - 1: required i32 clusterId(personalDataType = 'InferredInterests') - 2: required string dayPartition // format: yyyy-MM-dd -} - -struct TopProducerWithScore { - 1: required i64 userId(personalDataType = 'UserId') - 2: required double score(personalDataType = 'EngagementScore') -}(persisted = 'true', hasPersonalData = 'true') - -struct TopProducersWithScore { - 1: required list topProducers -}(persisted = 'true', hasPersonalData = 'true') - -struct TweetWithScore { - 1: required i64 tweetId(personalDataType = 'TweetId') - 2: required double score(personalDataType = 'EngagementScore') -}(persisted = 'true', hasPersonalData = 'true') - -struct TweetsWithScore { - 1: required list tweets -}(persisted = 'true', hasPersonalData = 'true') - -struct TweetTopKTweetsWithScore { - 1: required i64 tweetId(personalDataType = 'TweetId') - 2: required TweetsWithScore topkTweetsWithScore -}(persisted = 'true', hasPersonalData = 'true') - -/** - * The generic SimClustersEmbedding for online long-term storage and real-time calculation. - * Use SimClustersEmbeddingId as the only identifier. - * Warning: Doesn't include model version and embedding type in the value struct. - **/ -struct SimClustersEmbedding { - 1: required list embedding -}(persisted = 'true', hasPersonalData = 'true') - -struct SimClustersEmbeddingWithScore { - 1: required SimClustersEmbedding embedding - 2: required double score -}(persisted = 'true', hasPersonalData = 'false') - -/** - * This is the recommended structure for aggregating embeddings with time decay - the metadata - * stores the information needed for decayed aggregation. - **/ -struct SimClustersEmbeddingWithMetadata { - 1: required SimClustersEmbedding embedding - 2: required SimClustersEmbeddingMetadata metadata -}(hasPersonalData = 'true') - -struct SimClustersEmbeddingIdWithScore { - 1: required identifier.SimClustersEmbeddingId id - 2: required double score -}(persisted = 'true', hasPersonalData = 'false') - -struct SimClustersMultiEmbeddingByValues { - 1: required list embeddings -}(persisted = 'true', hasPersonalData = 'false') - -struct SimClustersMultiEmbeddingByIds { - 1: required list ids -}(persisted = 'true', hasPersonalData = 'false') - -/** - * Generic SimClusters Multiple Embeddings. The identifier.SimClustersMultiEmbeddingId is the key of - * the multiple embedding. - **/ -union SimClustersMultiEmbedding { - 1: SimClustersMultiEmbeddingByValues values - 2: SimClustersMultiEmbeddingByIds ids -}(persisted = 'true', hasPersonalData = 'false') - -/** - * The metadata of a SimClustersEmbedding. The updatedCount represent the version of the Embedding. - * For tweet embedding, the updatedCount is same/close to the favorite count. - **/ -struct SimClustersEmbeddingMetadata { - 1: optional i64 updatedAtMs - 2: optional i64 updatedCount -}(persisted = 'true', hasPersonalData = 'true') - -/** - * The data structure for PersistentSimClustersEmbedding Store - **/ -struct PersistentSimClustersEmbedding { - 1: required SimClustersEmbedding embedding - 2: required SimClustersEmbeddingMetadata metadata -}(persisted = 'true', hasPersonalData = 'true') - -/** - * The data structure for the Multi Model PersistentSimClustersEmbedding Store - **/ -struct MultiModelPersistentSimClustersEmbedding { - 1: required map multiModelPersistentSimClustersEmbedding -}(persisted = 'true', hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/entity.docx b/src/thrift/com/twitter/simclusters_v2/entity.docx new file mode 100644 index 0000000000000000000000000000000000000000..a45ee558cea7c674e64ceea2d6c4e2534bc97607 GIT binary patch literal 37142 zcmagFWmsIvwm*!!dvJGmcL)S`m!Lr#cN!1w7Tn$4-8}?%3y?r?_kU+*&N(yZ-uu2^ zHV;*`ezMl?s@l7&mE|Czu)x5;;J_r)d9Sqll@no_~GJ8bxLol_i znLh7kxWQTXY6tj@Fhb76b9DogwI9G@XsTj0F-V3(;8caip~GqlW_j{DDIC;Qk493MN zofvgrtD_(pe6KqRl+5GaKsuTRGJ_IVlN9cIUMktx7a6}J&ws*FFa%Tn zM-@G(=6@zEHA+=t->e~7xMC>zL!nT( z_sisIu{}_xc(uDrMbbbUr;qsXY|qqUF{6NBnW5M=NXtZLAuw;LPkW2*qOrqh9WDjF zGl0xPeK%OgHa+r&0!7rE`i|Q|lT?^t6LUz9uHkf6tXf>sh~7>Hr8KxK5&as`g;vYe zmuU_F1CW+)=87n(YWr^M9&s>^|AFM1T`fUcINXvT)iTZkg-hv}8GeNZCnZY{eiZRR1}k8>?Us{E!FD2>dunU1&`vj(!HsxJVC2d{c!Q^@ z1=2JmA%r9}{w%;O0#OJ1bmCu@@3AF7L$fWyNbUyp5*pCUT8fFm zGSN%(z{67pKgv%VLd`8#zy~?)*h0DCSL-V6{@B!G!(VGgUUR8!e>A;h^8*s;A_xC^ zKV+lJYKZ_N25@ zG%yctUC(V3Fj!PKGC#k&&g4wxFXCd>%2A8?(mcUSlll>uxsiu5;x1$v3ZIp9cYR^S zmXRcjRU(!NCEG6Zjj?+w|3`!0+xypd%Y+Q~JQq-SN0umtbaUIDjLRyD=w_pLafhOV&(~*jQK?^U zb@zkk$;wU3n_pB|l_Dx2Uur&8c$UrxalPNWInqfGK()}R9cU;rLZBgLY8)=7%tW(-G zFx-g7;|5Z-`ZBGs%jlE19&NFaTs|(y7YW*^v2PT~)*k_V*XTLg0qc%&t+x$j0&ysE zwvmyp`v5trYe4zg-7lSHiuSK84j zeWz!IrRpYXD?aQpSCR=;57SVl5IvcY5HOh1ooXE(N-XIbDC$LH=WyYpyHV|g0NcR# z0W{D_HbQvH@7;8FN$x)3zo0Q+*s&dMKe!4Z9=XHt0$Us4iBnJDZC}QsCWr%CZMRaB zg{QQ(CGz#+qN4{`MOx@7cqFB z*{BrZHL$BgxaSADT`8OuJv3Ao*N@GNpFF8WBp)=*NRh;#@?O|20}}BPpQF? zlQ|%*j#4EkrTA$O> za{8yMPnM;=GK*@}_^Ddg`p|S3DdIGOTaPDopO(`aNd<7%b!^j6hePcilk=&BoBf}@ zq8`iY=yGgD^Pb->qa)U()uD#;tlFlz3~32Za~T{Chd$h9B}jEk?SC?16qQmiD;qO&L|LRz{_(=u{4Cn0%9_kyheX-TK@ z>-75D#wU*TnQ+D6bA5E_k( zU3+J0se5u_INsgs@#LFNx+YI-5i^~>c_b?fjeJcg-DI$)g_mK;FZ;ad&Z6FNwzUcD zYWGDwYO}c|>llbJ5XMhnkEfg0JX_>@CSi(=NP#vS`5GEENjW^MMZi-

    Gw(?tgE# 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 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/simclusters_v2/evaluation.thrift b/src/thrift/com/twitter/simclusters_v2/evaluation.thrift deleted file mode 100644 index 85414baf9..000000000 --- a/src/thrift/com/twitter/simclusters_v2/evaluation.thrift +++ /dev/null @@ -1,65 +0,0 @@ -namespace java com.twitter.simclusters_v2.thriftjava -namespace py gen.twitter.simclusters_v2.evaluation -#@namespace scala com.twitter.simclusters_v2.thriftscala -#@namespace strato com.twitter.simclusters_v2 - -/** - * Surface area at which the reference tweet was displayed to the user - **/ -enum DisplayLocation { - TimelinesRecap = 1, - TimelinesRectweet = 2 -}(hasPersonalData = 'false') - -struct TweetLabels { - 1: required bool isClicked = false(personalDataType = 'EngagementsPrivate') - 2: required bool isLiked = false(personalDataType = 'EngagementsPublic') - 3: required bool isRetweeted = false(personalDataType = 'EngagementsPublic') - 4: required bool isQuoted = false(personalDataType = 'EngagementsPublic') - 5: required bool isReplied = false(personalDataType = 'EngagementsPublic') -}(persisted = 'true', hasPersonalData = 'true') - -/** - * Data container of a reference tweet with scribed user engagement labels - */ -struct ReferenceTweet { - 1: required i64 tweetId(personalDataType = 'TweetId') - 2: required i64 authorId(personalDataType = 'UserId') - 3: required i64 timestamp(personalDataType = 'PublicTimestamp') - 4: required DisplayLocation displayLocation - 5: required TweetLabels labels -}(persisted="true", hasPersonalData = 'true') - -/** - * Data container of a candidate tweet generated by the candidate algorithm - */ -struct CandidateTweet { - 1: required i64 tweetId(personalDataType = 'TweetId') - 2: optional double score(personalDataType = 'EngagementScore') - // The timestamp here is a synthetically generated timestamp. - // for evaluation purpose. Hence left unannotated - 3: optional i64 timestamp -}(hasPersonalData = 'true') - -/** - * An encapsulated collection of candidate tweets - **/ -struct CandidateTweets { - 1: required i64 targetUserId(personalDataType = 'UserId') - 2: required list recommendedTweets -}(hasPersonalData = 'true') - -/** - * An encapsulated collection of reference tweets - **/ -struct ReferenceTweets { - 1: required i64 targetUserId(personalDataType = 'UserId') - 2: required list impressedTweets -}(persisted="true", hasPersonalData = 'true') - -/** - * A list of candidate tweets - **/ -struct CandidateTweetsList { - 1: required list recommendedTweets -}(hasPersonalData = 'true') \ No newline at end of file diff --git a/src/thrift/com/twitter/simclusters_v2/graph.docx b/src/thrift/com/twitter/simclusters_v2/graph.docx new file mode 100644 index 0000000000000000000000000000000000000000..abacbe504f85e56a0ebd5f0f08bd222d0cb9f566 GIT binary patch literal 37426 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 halfLifeInDaysToDecayedSums -}(persisted = 'true', hasPersonalData = 'false') - -struct EdgeWithDecayedWeights { - 1: required i64 sourceId(personalDataType = 'UserId') - 2: required i64 destinationId(personalDataType = 'UserId') - 3: required DecayedSums weights -}(persisted="true", hasPersonalData = "true") - -struct NeighborWithWeights { - 1: required i64 neighborId(personalDataType = 'UserId') - 2: optional bool isFollowed(personalDataType = 'Follow') - 3: optional double followScoreNormalizedByNeighborFollowersL2(personalDataType = 'EngagementsPublic') - 4: optional double favScoreHalfLife100Days(personalDataType = 'EngagementsPublic') - 5: optional double favScoreHalfLife100DaysNormalizedByNeighborFaversL2(personalDataType = 'EngagementsPublic') - - // log(favScoreHalfLife100Days + 1) - 6: optional double logFavScore(personalDataType = 'EngagementsPublic') - - // log(favScoreHalfLife100Days + 1) normalized so that a user's incoming weights have unit l2 norm - 7: optional double logFavScoreL2Normalized(personalDataType = 'EngagementsPublic') - -}(persisted = 'true', hasPersonalData = 'true') - -struct UserAndNeighbors { - 1: required i64 userId(personalDataType = 'UserId') - 2: required list neighbors -}(persisted="true", hasPersonalData = 'true') - -struct NormsAndCounts { - 1: required i64 userId(personalDataType = 'UserId') - 2: optional double followerL2Norm(personalDataType = 'CountOfFollowersAndFollowees') - 3: optional double faverL2Norm(personalDataType = 'EngagementsPublic') - 4: optional i64 followerCount(personalDataType = 'CountOfFollowersAndFollowees') - 5: optional i64 faverCount(personalDataType = 'EngagementsPublic') - - // sum of the weights on the incoming edges where someone fav'ed this producer - 6: optional double favWeightsOnFavEdgesSum(personalDataType = 'EngagementsPublic') - - // sum of the fav weights on all the followers of this producer - 7: optional double favWeightsOnFollowEdgesSum(personalDataType = 'EngagementsPublic') - // log(favScore + 1) - 8: optional double logFavL2Norm(personalDataType = 'EngagementsPublic') - - // sum of log(favScore + 1) on the incoming edges where someone fav'ed this producer - 9: optional double logFavWeightsOnFavEdgesSum(personalDataType = 'EngagementsPublic') - - // sum of log(favScore + 1) on all the followers of this producer - 10: optional double logFavWeightsOnFollowEdgesSum(personalDataType = 'EngagementsPublic') - -}(persisted="true", hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/identifier.docx b/src/thrift/com/twitter/simclusters_v2/identifier.docx new file mode 100644 index 0000000000000000000000000000000000000000..e5720db3f3356ee7d8cd52d9160d636b2173d600 GIT binary patch literal 39099 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 F4*)7XPsacN literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/simclusters_v2/online_store_internal.thrift b/src/thrift/com/twitter/simclusters_v2/online_store_internal.thrift deleted file mode 100644 index b5fd6afb9..000000000 --- a/src/thrift/com/twitter/simclusters_v2/online_store_internal.thrift +++ /dev/null @@ -1,30 +0,0 @@ -namespace java com.twitter.simclusters_v2.thriftjava -namespace py gen.twitter.simclusters_v2.online_store_internal -#@namespace scala com.twitter.simclusters_v2.thriftscala -#@namespace strato com.twitter.simclusters_v2 - -include "online_store.thrift" - -/** - * Contains a hash bucket of the clusterId along with the Model Version. - * All fields are required as this is used as a memcache key. - **/ -struct FullClusterIdBucket { - 1: required online_store.ModelVersion modelVersion - // (hash(clusterId) mod NUM_BUCKETS_XXXXXX) - 2: required i32 bucket -}(hasPersonalData = 'false') - -/** - * Contains scores per clusters. The model is not stored here as it's encoded into the memcache key. - **/ -struct ClustersWithScores { - 1: optional map clustersToScore(personalDataTypeKey = 'InferredInterests') -}(hasPersonalData = 'true') - -/** - * Contains a map of model version to scores per clusters. - **/ -struct MultiModelClustersWithScores { - 1: optional map multiModelClustersWithScores -}(hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/score.docx b/src/thrift/com/twitter/simclusters_v2/score.docx new file mode 100644 index 0000000000000000000000000000000000000000..a9a3b842c71d67b8e42432f90b77495886069bac GIT binary patch literal 37530 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 UmwqQ~KZ4>jfVtM;tFPx`D)B8msP?p6=Duun2T z%>t0VW}P#8S2oojthOi;ACy=o`VJ8u>t4YIZ3o2a6mR^m`6;^*(}4Q-?>wo>O*rQGYz0O>;vb+3 zq0lhmrbn%_Yc`Zlubng3Fv{7SH2@yP>jgZOE$%FzYanjb77SpUH_Wh-dpvE>=zD`H zT77g=H5ztE^myod(fSR;ep7$`gBlG;4gLA|>3gDea}hDw;16mSlW`z5ALpOc-zm@| zkp2(q%dP>~j<9U~O|RCEod&SSm1VtXwsTqZ^!~2DNHhXEn#kKvgwP|%+(OlnKGzJ` zX^@)i*!IVB8W&I33=`O&{*Ylk3(K+)pN6nDFFU}a`tn^_^`q{lUHGDpKH8+T z)+-!o8dRPIrvA6m`>!Nvi=b(gGwUKgXIACL5HL44?XJ-x?6Qk5Lt@3e7HKBy=(2O6 zMX<|LDwAAta|Oj^(QO?&?3J&AvT1V-PnhEDh~jf&o~D||opqr_&VEI(?Co*c&#T8d z;9vr;XB1{AvI!jBmoueuX_O!C#pl@bEWn!BRIj7v*ngImkE|93Q z;Ij=^oBqij=fZgw1UVL9lifcKyP9~z{e|VbJ?U`8=S(I6{7z*FMbbk8v+Pk{()>n2(K#%NLz)Xi9014}79r7q+&)yK;I6+Okf? z0DdEp)PNy{si7ss7_vZj(CjgYGj?ZkUGZs4-_YUF&Bt;^kq1nyS92C+PJ4n!8wMN( z&U4uWhG8iHR1ul%+GETv!8)F)cY=+W z>J9jb963j|Cu*RbWx#)LlMo~R>~r9upgWL2w2t3sZX%V?S|OLe(U|P+peBdd)R)Is z2jEMZ%f4c_*j&`Pfo?*@T!@nVI=nMt+4;5DkZOqB3y(sB(g6|&-UE-qLfip@O&*5* z1M(Jo~sP$AX zEE3xrtP%rcXf|%PqG9i+5TE zEZ!*$^oYN83&cN*XOpe-SMh2(t-HQWE+;Vmr4X(ke*Xl2XB>}evIpGKK$$A1)QuX( zqZA(vOqCWIayx#EMTA(~PDOe^@zl%P4?7CbuJQ@A=0m@0zJ9MczFc8(6C6U&{XjtI zXy1s8fNjlOIO2lmEe-$zi@D44<;^H+9kcE;N#U?i9?eEFr?NSxiTS*CxD4>eVOTqr z8squO^E&$8>pYMN^9z3b?KTZX?1JxARl>ne^y4L#3Y9!!5Gn+hl0z|nuU;h5*iru_sO z1Md?1)M(3lUH%{{-)Rra(v8I2J!rsg$Bk+!lA7IZmW!Ir+pS<+MG>F~jiRuVR;)4)l?D2F@$IFII(rc@3k$B!~WeJ*X z`<+7n)!#gH01?yD<{Z+4CC~$|%;`h2DLogwu@?v^$i|iuLagtzc^)bn;PA8drq8M> zQES)-OJ02CoZq&nfB5`@qdK7pdrSqf4SRH+ff;yF_=R?haV z8;9x~w))@nuNlnNRt^uLly{2B56nSYC=Qk+$WX4uY9qL=Uwg3RPi)SvtvX-X`vip~ zeiL;~SG!cEPrZ!cd1)Ubb^&YP_XxRHdSXX9AIvJ`FCv0CTpkj9gI!ICxhSXOq_c9i zqq=t&^w>B<-w}2G^3t=D*rWO1t(wmE_@#u+R@prAvMMAc{8#<#pi6a6ideg^UcE1D zyywh9vlJU>tkwrQ9Ty=LscQX2ZltZhzyzb=eMrtR8A_H_A~n7bl54c%?xTeM%DI0b zHLn#8F)$F@j4x)C6@rUu8sIO1i$C)8db*p+(;`56XM+L6Y z=E$SGJ`wOK^tP7#Fe!XqX?YpV2BdD0Jb#&7!9pD856wz8x5V1U0EtjSq>3Zh%thn! z>_ssO!A~eEyC-g8)k$pjP9jeS&;po`C`C8xqv$I*Ijq@Tn}D&zCA`C8(d^P-!5jRN zYHWp4X$+aGBH;Cu*}9vU4m z(iq*gUUG^9i24e$`0S|hz*R2hmY!u(uRQi%R4&*Ww?nePZ*Re9A98Wi;e3kZgvJQI z-S7^?dzCwLZgmC_mBo}}zR=#Cm1R##LkfLDRk=9v=&g=IXLjy={w??gh4OZt#}Ozv z;6H)`vP&U_{uJE%Tkyqi!Bu!C&MqvEYA4oRo{&N+MCx=8NkpU8vfjcEC_att4+BCx z(1Jv)l{%v$fjUbOrZo1Usp#onbpp&{E189h#Z`6TaO9CowDaz78j+{Ri#cHOOsD|@ zhCPeqRU(b-!#bPz7RO;@;HsF`K6W4#p!;8sXJ=(q!AcamRbfTeNAFL>1h2Zhntfnx z0=6M~S*AuPP~?a^B8b-=e)X6#u@d8KLLoG7C^DM@u1SeEMg7)Jqudxurg@z2rmu?2ghx4C;S8T;&)>hQ-8AV7LAv8I&mfKU7f5Jm0Q-8^rg zqqzzv^m^=dOlf;Acm3lbxse2A;`MUTTmSyj3)a0nR_3A}_ zKkJu>wkP4<#Qbjnd->l0$6_H5-!wjGH5JoR=x$#zH$k}z61xA9I^JazN z1#P!n-W?(113sm8`t7xhsrc;;_T#|W;d`Ng_g)J2+V5;u{G~uUaCU&e5zKGf4c=-v z1l^n$n+vAbe(!Xah`&X8+Ycy`{} z89%CA$oVWkqVC&xlkU(vc=!q%rY-#B0WyPb&eBy z_l+d08MubPaZ>DU1AjKzpC<^OZG)LP( zF112}cElD`b4V!>>#Rp7yYCimF3011gGHcUieqIf0fR=z!RqOQkfb0iVne2b;a;QFatXpv- zbnCjPM59YEHys=*;#Y$@2YjlSfKa0Z?w3iUc?u1RVM!JfV*z33j~$FHgA;NUks6xN z8Y^zr4D@%nIA-tSMy6;#If~bH40IWn#>a4(nQK`yEBuGXUS_>m%>nEtvY|G0tW4jc z%zsHNS7=kHQBIGAzuLH0AZ#8aYkXj(8^5g@lMzNrOxk~%GlOc>EXB6b0HH(2NzzE2 zs<6hmVs+_cSW~ERtdJpg2}^QLOp1EB95KsA9Cq;T3;7@=+1Vj&0ubNj8L?U_HEc;JJUa`mzWI)^o4QS03ru7sCR^v z6X>${Xu{z4DWI|RSA5763y!9wJVFs4!jR^&W6BZ-0kqO>O7D+)Q?)jazL zMM2~HY4-*T00SdaU?Ty@$tUiDp31CNqSnsHiz9fC)^+1;sz#<)6&1_G8N*}S-hE+7 zB=xMIa-`E^5Zk1G?MK+wu(C~`L@FxyDy+|<*Fo_-Se{YP|HkN{sR<56 zsaBN0F{7c$e4oM7&ISc!Oh|&f9*lI9<2_LeOA4#0I})c9#Ej4n{$4#kWt*p;DVS4w zS+vzC$6q+irCFKNTnd=BzH{nZ|K6@KADQIHl_IS6Q!D^d7<%z%iw?Y#*@djn3(zSUk1P#}rK@g=Q2 zuXiblZO=tep|+N#ED=@^!7kZ;>f%D1Qne9<^u0`w9HhFeqXqqFMi%cd08330i49RpsnUU!L6hW(k;|^*r1bMA? z5(GyPCHP$dbaOv2N0cc?6h0I02?`U;${KmOIFVU>WC;n=flH+;EHDR51X4FA05i^c zM`z(!D>(HWy6K^E5f<~4OLlQCnAZu9NU)x8Fjf=#JtFP$)IfUeNznur)xTB1Bmb!) zxaXQcu3S;A%F?+q;830iQ75%I90~Kyd71x`MD&Fg2&}C)YnjLJYS4lAnC9Pj8u04)`5aqClYzn>7k!+mi&A21Tg^ou=dz%MzL9 zA^*`t5UcB4jyU)!Ta&DS8Ti|{SwHE)qH2DeC^&M2tF;p|-t;njg(eV4=`SG6-$2^` z2D14LH19jn=_8fre%v1hVIrvX0qBUPeaflZZ!yU2_U z!hoTf564KngKG@II2MxA5-Rw^2Zp3S8$rEmKC`C|P80^Nn??s2xRnrr?sVWfW}N7# zWU8se*G3#iw(wagU?m2%ixr;3Iz0#( zD?%|o-H8;%fq4;;lR%2XIg>&*W{REy^I|sUfDYa#a7iGyT(DUQ7$YU&5c%nM{ZpK? zNlOp?Q@9H39+xhO-jVa)yWwV1u-dws6I2cX(o zKfQ~%-P?7q*Xw#enBG52e}6oGe|kG{ZGX+49^cTtdcHktudYTuKhM4czS_UpxhBBR zppVtw-C04{l)iB=_Xa>tPjO9`&sIYoch%=w8+M&C;O2hmUOGK6Y+a)mI*7PEkJxxE zZB0Scw_=J2xqf$s3Y5OOxAeByyNl+m9(Q)QnlpQ@Tc+~06{6~1_Hp-o<+QkVuGRO} z5vacNEwXt`G4t{DeQ(nBb+z1E8}}~geq?O*Klkx<7u4@4ZM$>JFMj8FHyU?L7|sq# z4{1)>_wa4$bY0tbbm&jNJ+rv=IOSSdj8Bk1l%yr%zOK>N56N2130WIl`r%uJc(wkv zclnWNdYG@;)}DJCC$1rEoXO3W1aR#|rFr3zyme^j-bDQjzsZ)&pivFhf>wbARN zmqY8@-4;>ZeJall3(Mo1Pwnen|F6})`*YR}yCSm`2EWoqu8>3#mYaCZ9Aq~RuPV4D^8XHU&1l&})PH zL!H-4jl5h(w~&TB(%bW}epC4*r{?AW0rp@nuo7f&Sz+WbHaQf!sP0oc^Nu&dIkM2j!)%>H&pGBwPJXH z@)HIEWDFT1q__9_jh)u~F&O~{?4MQMTosL+6b%Q=c-Vkp3d>imEy`Kh8^Y1&=3Fp)&nt*I4?Zq|L|xe%J;A`Cqix_24seL=?pDZC z1OKh-aYqV)qr2*EdVKZPMyfU=>n^ojA8T#!@O1a~C*wXOSJ83WAzF zmaWpAw(+<xqMj5Ge7>da;T4KIwE9$?g03zVCS>* z5t+CTYW(8kK7h|JH#q|unk=J zcMZX+O}#0B!QMEpl)h+Xz_4;{0utPGe`I2m9e-H05jlZZ7S#tjydAgrusYP{&CqpP zOvWbthl5=W+oox*>Gad$X7e*uQ+lpLCYJ|7N!wNZNV`e~<5r$*?VxirWaKchF>up` z1&yA><2rhSa5HZ#W~q7wcpP$#TF8n~hK+Zvx31Mp*ye|pbJmXLJFJa(Bvd2T_vfaS zr38}@(Y6QsPW>v^aX!HWMo7=e(*m$S`I+sS2@&aI@axCj!Rj%LvV-5g7%Oc8K~h!$PSC6ZCx}mh6S2UF8p#$&yMIIA zFTyl~yr$uGQ|$f@`d9YvAh$^yQ2e5j-zW{g;r~GSd%)jO{&y8P9LFw>^;cLAz!rX+S)%bb&ITAa!uQ`ee-HSZ z=Nicd$a!tjO<))rFzmNABrAt<=_jPS>#OMJ;C+&PZOWHw>4XjtAFp{|1|f##@muiW z69x>m>1kSnN* zB%ZX8+qloB3%ASD8E>oC`=QnMW2-xk%HcgO_+r;_WbC&Gw?~*$2hX3c>zQ4c{F&{W z&p#QfpqtuF!n3Lf5q4XJocB%;2_xsXR`&Je1ei^>CU5bY%3ot5Oe)@589R4wuVTD^ zjvg*NjX(Zaxp}duoz!t42)zzgZaw49nDRnReYrJl^?K!L?RE_|7OGqv*S*`m?H`R9 zmru9(?!EcLZ)(mpF@@vI?)JbY+eiFy?tD6huXSDYjBIRusd6jDd#&w3ez3Xn=jeBU zwj=QS>slJ&lB=EdL)T*`WXeSxSagE)A3G6xxv&xUpk@LDE`^}IB}2{I*S@^8>b zvdG5zZp%@i8x`yF3}I0Wh%NFjR!5YVC*v0&anqBwFeg4)MO;xmLuT9NFZ+5eMV9f= zJEY!RFvGFNiJwa_d=CGY8~z;FLN!!bHEM~^mOn2mQOUZMRXH)CdZ1ec>cC!C;PN?2 zXs5_iHO#K}_b7Fk_qI>h;*bL{St?|1d8oY!U1V<7f&mM`UqyDrCBNXzh`MVb?w3kZ z%ReLShdnARw&7Swyo!NU4T`ZMVfv>kN0*Kl--RG3PdqBbN0q^Kh}mDL3C#-1_NrX6 zhhWJ5Kf>Mty0UHS7LIM(wp~HR+OcgL6;*88wr$&~SQXo;xGJgO?Ks<{BrII1P!~rzSQCP}vs{No3RX_a+!3rEG4WWl~Ob^nHZ5`Lj)#LaNoI$cuf>`mzGP{WyH^UdDW4Mqip z9q`GVzCND~i{ybj2#ayC)ZnQj zkmnI|Yp;tmI^@*&Y1>uzMGUaD;&ImAP3G&I(1y*heVLt>$5R4-JU-uQs1K?y*l?;o zxi3(YA+u7QL%Fm~5KMv4&DcAeGh7UG{Lo!<4R zb8|d+R41JMx>+;qOKnPab}kf?J{`z3qq@F5>MR?1anT-sy!iqyM|qW!SaYl@R=mgL zLMW7r)ZS@(*}P&#X>(FAC6+o<+GWd=-n?QluyKFiXzaY5!^Bec)7~xia6B$;Ck>u( z#?@kZ^OL^OCPwX-kDrzw`OgvTp6TSe=V`&xHr;H+3{fUe~iDw5HDHNjKAl$54;O zj;_k%w`aTq^IpX=uHtXz{4Lh!27JrS6U<8$(33mDb?+v(^;^kN+stQYXt4WtDujVb z@&?z~#9unxICvf3oxTU0vG>}$PqYesvsFpaKnh!Tba^Z}upRHbQywGq=uQJPit2k- zT*P<~Psw_y`08{#JdUVh&Eq&QPd&p>4JT&d)9z)_EcpP`Pv@L1LBk; zndr5NxGPVD@TBcreLr@2cR>68nEsnGQgo;VKE5c?icSb+^LBq=Pv|L(t+U_nD&|fp zf5^v4(dMOxe=B=Raq#l&-n)b7*}Fsk5iE&!>IG#ubCpf-_??BUDV&5);_(zGp~z$j z*_9*nK-h8f?ZxTm#Msu4v3C5VpPy0C54_}}Cs(}dr$7iN>+dTAhgYAO*0n6PKSIhUL^R_`>DY%== z?OsN6v9+!59dyr%s=iEh7TF7(08CFQHnTh!$x%B8)5%Uv&Xg&klM^qMY2RtAV!A6S z2{vXWzwR7{%(gS8vUT4hFYdF%+neuYX9>-gdeUj7Wys=JlinOzR1K9o5?~_MFRw0P zp@)mKP+3<8&N?30=kb7s(HUIR&1|3jEOHS+Djiju;MJo_tK;larJ9swKHTp|$YNKo zr3>F^znU6d_Wm&Qo!+SMD{u3r8`FBqwJ2Sxe*xQt|K*m6<^MW5`W86#yekiuI~}Xu z+D|}m>u1*s1zc%{EgPhLBg9He9}0!mbu19 z+wRM62;i3qk;df`2RV47jGiyoeOyXeY$ESVg<&0}_qz5u_yu&3vXMiMpOCo?m*G~k zYQFS%_43vs&Ovr3ZwnhyGxi;}CCVc8)45;W?lOB`=FF)>_MbrBK)<$x^$mfg3(S22 zWf)f6X`hdS1;=@B-Ms!Gt*8s#oa*nW%a+T;aI@#xv4+**b9YjngqXMp552;)xE+LKn*q9WFmXhrma&Kle2)S+YdUHE^UvA3JQr zy@+r1?Aa1uBW~h5k6Ra|8h)8$`2n?>5BS*3n&|&&4$$f=@8ZtB8tMt~7DdvsTl!0Cs-weSQh%1N zcJoCKNpl$8Su=mZxQ;0q65id8hSPNsEOE&hNx{8sOfhZ^Lo(rwb1o5d{Qk5 zdGqnVvB~$G4)QlG@DCBNxFR)Qm4Mis%`xU}6ZRNb7<#jAYE+T7V3SzhxYZRRCyp}dBt1eO~* z;4Ioup_Ogw843ayHA)odVQr~B)wilU`-`*jV*8CM$expXHJoQPm^Z1jHE<3!unzKq zVQsMpTZkthW%{mrHCksiMo2h((BGd{K%!Fv3eIcPN+oB#Y%n_J_iD_TZ3J98em$^L zFn3-qiGFwUu#xw&0q&hr85z{E8PrKqkgg@)^BAI?sle9ruu=E2Ne2)87SP(m2~uQc zSng$$vcBE4jVE6D#lvQO3Qu8}>6WY!*J|6WjHq#ZNXO=(t3_b@F2eyxaj#~=LUT1i zsAmu1YAK4To0GnWa~f3iM0jHx&wrkcMYX48^6*j1A%@K5Q+LaySufXhq<&sezW3C{TVgzB)swl!R|mYzFj=cy*^U_Qi#H}a@1OPBZ<$Ej zzkjEV_;GCzo5P|kjHbcrWnZaBT~3_3GJN_-)*pX88nVyhC8#FS7$LRVG&)!IJuO&= zE!2v_l%y?qN>bG+;C!&#FPwxtu8~L?i9Hjmyj{B;UwgUI5jlM%#fUp2BDoG8l)4vr z`C&|}Bh27Ey;hjruh*qoDw1mqT2Baq-%qtOSd!wCdk#2rOJ2?)xw2pub)y!obMa!a0_n4((Bvxg+1^^|1d1nL|VJHqEggzjj5xe$}wiK(7 zf`Ev!vkYS_&LJMqbgoUV*31xH0a!p_mOi`S9kHnUchB^L2-^#dyM@8f$wr!sLSRse zqmqs5hb9(=CS#aApLHU@FcHy2X6pPxA*|AvkLFeZgkg%9Cfc`A`_e2$BrMl9Iff!msh30#mODgdI)mE0-Ut50p3?ZD4mAOb0)&O>B7YYO7{9B}!Uu^d_ z6sGaz(`Sg$V3=P~JyX+;2`gsDZBoC{nskaiD^LR3K?g>H7C}Bkz@V-bz&g(2Y|*P< zWvbzkp|BUYtS`{9+|}8^pt_pE-G{(jW(=keF#hp?!Pj&S)O$4%5CQ{&Fw>8sqAN-=lRf~0s`)ye5B^k3nFEIkf|D6QTAs@{&+v`fv@dfK zcsBg^&@5|1fOI^PtP+ylc#1*@eukh5h1tJd`YAJag#8L}i_5goIsJ-dWnk6V%d3z3B>zu&zv z2;d|BVUR(NkBP>jmOK`H`5L`MJKjbXv523d%GiA>}Pw(fPHihH4o7`kboyV$t|s!x9+ds@BDRMEIfqmlY(Yf3xV5BZ}P z^+VrRhNE}9xqh0XZw^OvyW4{ep*AiaF=1fQVRUh9^Kxc0cxl{qdv4CwGsxQIEF({yYVlbJ_M3{N$z5I#Yo8lm;73!yf&5(%p+0 zQ4A7vk)bofvL8pd8UD7bb-Sn35|3v9rB_7?Q$V_JNSTDMHnYj@6 zcpGE;{8|5_vym)>IJY(-RbDxhdyhc8 z;fu69v>0YKMh5m7W{%Ohw$BNJK5lXzZ$Q`5vwAYJZeBKizSPut+6}fE`6-!2^}Hu8 z^qA=jiGvz=ysb}J!u>Mn zANZ#p2R~d{@>ax)3kvPi$9uEeBB|}P$NjxSc;4rsMnqZ#4eKw;-`saa27@RbNjh%5 zMFq8FX+Q_zK`OOsl)!6H!%s+jejlv((E29_bscGBlS|2BXJc(*qGL<1NP%j^F!>UK zs1h1`34Kf4_AC3%pI!Vxw{mfru>`MM+Gi!-%JSZ^GPN|24~k>itiR{-*21HnBG>#i z7X*VQUs#?Hz0&baQN2A_H?;@B8TXKF-0V$vZv@9MP6qZfOA~e}$}~y(ddI69h;mN6 z<3lWm7`w|bWw`kx2zW-QB@_k@Wu{ZFwuBZ5R-x7tTevyO3`yprO9-}!|EJ1f*!gMw z^v@hYmgXmStDsVDp9kmp7f@!VQPW5=m%$NC@d|Mj4U;WLH4N4Zs_PKu8N6}D*#BU> zbPPtZ_7h9)Z4_$b6%S?Hpz1GKBUI zEq5kALVs0i3W6ST#QA9gCt!~8sb9F1G!qn3BEq~k-O`=*3y{yB_)r|AnMNV2#S+nF zy<<<5uVB-pnGyRKg}AtXi*f$Him}w-_-)lvMVpbKFQQDv{##p{|6G%(k@p6>Qai6d zkKQH+yk|yR2lqSgi@ymQZ3~iKty~&C)7FMZ)Ao-A-Ue^Y8ejRYhqt$>eW9!?DUOaeOqlQMBG4wB~I;6 zL!B^K!S!3w^kd?R0iIRx9mllH;+PtW+k+vcO52|?Yc?DAQ55yRJ&AaVc;bWN(bSPG z?p<3NnRCn;}J{e+^MG-O{wTd;@ReRhrr7hb%)^LbeN4$ z=67db1>FVSae;9t>Wh~SZOx{}P|z^@&mkN=7SRx}J{Q=~A1(isI!|uv4428hQ&v?3 zJz~_g#5-a%t^dYIPXu~&WJ{cko%~0|9UU9t-zq#ogU$7A!-u3*U*GRu72TEpr9&nE z1gPWP<=;BqCpH_|$o?NB+zPd_{YD;N6jPP;zy4(fdiozLo|OL$@l+190{#DC#i-F? z$jBkoNmygjowW~z=j7DwI^M{tb*~XZ+b3TT_nP=OhAiv3%xP<0ndoLayAFu1zHeJU zFbt;G-#B*~09;bXYKfM7xp)E&pw`v^qc_i8+*+9+TP4%}VH6WPyfb&@4}7*+8_5_V z^*0=sP|5Z2_zS>~Fe`n&!|{2)jf>VpF$yIqR+y6YGg>vID|An4r{DV^iON$Lt~l@0 z8AxWwaxm;D=2DIBkxc}m&ViGO*2M%N!b1^r$^jA#9R--ljTdM!Yw;q*0a8Vfnr}F6 zO=fs0OU>!$B|%69p|_pYoa;XPjLXd|2q-o@Buj~!L-%(GX5TErIZh%7a;0>Y0%7Hwqti?z{3>^{~(BYifFpQWs!)TK_BJ^EME8&Q^!+7DG z+WyONO58ftO0>{{75aRqC^k5B0i2ksos26SLjU2aWHDAy-2~nMWsE2tL+n&*A_YmR zoqGpgP;v)N2%_8M-IF%mPInouD-oA#?Cyla^ zOsr5)V?^j+Z8RGmx?$dA%zcs-;cC(f0QK!e8*a-F(+N(Q3z6zQF-y;Hcm-to>T{E| zQJlu2P{80ZScZ=#OEXwDsxmCbm1#(P!+4=GhVsjk_EDTO$l$|xNH8rFD~?NCZZtMo zpMj={Dr=}^U*IUWsHN%_(J&0-0fJK_IgO8~Yw}a{ux*Az5sVRs@fiEh$I7!9SIRMv zM^%{#UBfw}_1j9fo&PskJPe!nUcFE18UZqOB((1w_Ig=o*@b(E3x2k0Cq6ekUxIj` zSt<-;yICvJR1Rk*hOv%nFxBruFW**zdju;#AwRcBy6BAzRx;IaePwvq^cho6Np^+R zD(V!AA$`6~T=x+7c{LBMaVkm_MEZG{iLl_8on*6_+cx(OPFpWro0%`kC8dRq(ahqF z3(H9GC)sOO#o%RCWuq2F1ZH6IqLkjs5ApqlBqGTzFp=ebx#&{HP(r2@N=C5(RCv

    q|IA->>Z_s? zD&mn|H2IP1Q&Q!|yWdWd5~pSDAIWG$F;k`|6vZin&{UNsaxv5>>S?4f%@_me&S%XK zE7J#%an)4QP4Xiplt(;qLYsJhLNo=?0cQfYO3j>@PYRf{jSWF`=FCO3JlKCSwZ2O= z=0IggUDavnlwuWD8Wk0(k$<8V!~PSM1Syn~c&VN$9Z~gP7UxGs#zDVWHoR{c#Ztt=8F<5U>4DQ*7HAqy(VX@cxj14tQI3!auX^8iv# zDwO;ml*z#UNtq{o*4$QqB-4;fQ9LG&LIIOk(4yd1q}c)=yI8ET2``f*adsvab@Qv; zRK3Rg3S~K+-+^+sYO|*Z+T^kTjs>*yl@z13bF|VS{*1yXBdj?*sm)D;;+ysmY!nRcQJdQLeOmvruQ$`kAGgk+8icarZt93r zGGN!}mw71|y7M5QB>2QavdVPyr);koX9Sbet|-M45R#$Wc1&{ed=Aa~Q3c)s7zZviC}|%y!A#=E>FMS=Rq>SmC=G=JDy2{bDg`JCg2y}ZB`|JF!CGJ_$ZTsH zKVnl5Nb#fZ)pVkvuNEE*2v#{iP=M-9lZH&uQSAmZK}mBI(@slp6#JeQ?Mb~5x-26?t#$8J9;7II${AI z-aZS>5bt)oq`7#bFexxwa`3A5`B`afE z>Qy>d3jbycQHIP+tBRtt6>dhL%LA3-$tm};E(}JOY|ua}G5!Dg%?FA6%M5ti&r#UTZ_DRr@S))R6eFHNFwmcUSau& zxHF=2!JEqTW@4@lN8Dgv8jtEWcD-abmF6^l&Cw2;2eDvuJq0^dh^9w7q8^f-ZAbfj+hJkk_-Ues1Qjn%< zb~oqYTvg}=iDb5M&weKp5TE?1gC2;>n(XqCkX7+xt$WN7%GSS|r+xO{dx$-aC!cfl zm3(+dzT&P*D_Bd$1-{kiWl2BabLO6>Bs$YM0i^Vsx zcmH2Oh&_NOlMucSHHg0*!x5?NHss1{5@I5} zy)UPWfpNjQg`U>(K4$nsY|UTgk0chtBA{&L)4C59I7w9g;L(3-@d@}96!#w`^S?xa zMK9@mp4l6qU?I`h0T^e@xIas{zOTMSY9**fe@27XX7-PqTWEYo;Are4mzn_OD8jv= zARRX)DtKtxbMGVfbM7OXPcs7n+t+-bty(skf{@PEyN0Zec!oUUdA9)Bqzb8rmKw3H zxL95O9@$xDK|_8aTCE1}4YP=)<|*xziQo7PS~3tguc%5BAG~bKI}#xKElJpd$*G_S zYzUhoS!aoU-!yyZF2rl6-k6O))Deo?SvDcVfr4V-d{>6IM%-h0a#qS04itne3s3_c zDmSR_XR*eS(CYj3puAl_DkRt!|HX}Qmu5(*by(?Xe}ctOqdK$-K?Aq8k-@QgD~xb9 z=IfJpnqw;N!J3uD`lIA+at;KVs~TayD+4#!G@{t5qlh8)~twrtBmE` z|DVA=0m^tU<_E1p7i~ipr&ScO|3zm#Vrz{scI}6cXLSw^z$Gl_Sm{!JjNO-|-|D({ zaT5w_m*a~S$sWfBdwe9oMY`Y~zbqqvocE6uM8CypB}kV_)8xgo|0|OHC+r1jo#-3y!t`NS+xzJSm=;CxqhiMITLQp&mjxN_g50 z3qb?dFTFBbCf`bTxW1V%-JC4yJE_Evs~TiL0&WwRLYlS805pd)#&VlJ_hvONuB*$)y0y^v5)Q@WZcf$CUE(IbVJ%}Zx6(aKfV$1ufP!iNSEfAC7$a22QdT! zOMIXfq&N%J8jpfa?L4N6MyRz!S|;rfxVUpF;}~Q;Xpw4+L@l6pGc~c*sbKQ z2;sU}n+f}8mSRRSKU=+if7%lQ=pX$SL#ANzhVh}vd_V9Zfh+Otk)vh)`FiB+bjQT< zQR8Fxs*WL^a6V})?iAeEkE5D681hL)8t$>zxklxbg6v9`hLUVXl>RJ39c>ga4WNc< z33gByWem_Z&ePtX?s-nnnaB2uutH+kLDIrm7!>pq+$=O+fI8047#FF{QTV0}5^ldt zkv@HbI?KLZlr;^Uq$M`vAdZF+j*5%Bbu*klE14lpO79Kk(o&PvOwmyP2}unM$$OUO zjHXb?LRV$s(FOaNH^3R}NDRTjoR0dSf&I(c4@7nwQW4&cY%VokS_CVj9$sR5C0;9V z7e&A!$?D|O0+g^TJ@q_II>aS}7(=L8kTcq7({1#dC(T7des+36cJdMqg9?B~2Jtg5 zt*&LZvoZ~PJUODiy=R&d050Xjxuz>*#Vi>;;fWG>I4;P3kmJQ2NeU+v9A6y?a3-tH zc4U@$Qq-ZL)>8sV%zGSS?X=a>ghL)3I)7I^DrPAT`TFkDE`C&uI4#1P5Twfw3H`^4 zBZ>!d?%fIj%Q$B?WZ)eCAw@O`8zZ5ptlS_+o?l)K6O->);Di?tj?Ykw8cu`4h8F<5 z2?IRb&%t<=qVgyaG=gjuA$3uCZmd0}*SJV9A?>He$_^!lP!~zUgUsj74i#@v*99w)yV>;tfebdOxDCwy7*iXZiPz|_+8esKCypY^|8~56*2g05!Cu;fh~egAHQY^(!`?u+rm= zW#BC-9|3jNZbvz6j%z^`28c_rX<-*e2!EqNpRn4)bv}Hca={;`9j{1KidP{#T#74n z9PTMt69yD%2_US4A>IE)z;n0hFqsTi;9mr&j-YrkaVMNOa=gLB733(&LM+A;7PA&a zNy?JBVJ!ukA^=Gv-9$0}XQ`RQ#ZJ{OEoYeo3+%&YN78XC;``jd z?8pvWlP@eLu@v`H7JredyhrxW4$P**h2&ip0pzG!9&Rhzl9cT+L>j04ZOA&pA3iBS zgue_aO$7(?kzUOTW_K5e$(UOcbJhlq6K{_+J(4q=bEPTJCCR%9mOB}loCYoo{Bf&0 zsl~)V*J(*>|Lpg#U0&6sC1J8l9p&&$nSJr`QH@lY*PGv{5y-Bb-@4PL=jTD#Qw#WC ziJ1w3bFFQpT=)`$vOq@Oqn@Sqg8p?bU9_5(LJp0ea6cBp6sL`&!Wp2G54ZS(#{yQ| zS9wcJX#>1sPV8GT;H)HBI;S5W9y^fxDTG^wdagc)7b@vlz}R9Q>I+9ZdW~7!pKl5a zup_=Ur1UP#ko;94X<}aQC*>4G1C6Sl>Pl!uI2GDDHsHZw=QUOY8?t74B>w0 zHUx+R%OGG_T4}R1Q)IMvxB=q8vpMP#F)De6(1<@Od-fzKQKL@_841fuiduV$OcGcI zZ&E>ENosn^5O19aBAKE<4<*i8Xu6C*VO88Fz-XH4?H4da6-x;~U}?3ZFf=kVDDzDO zT`{oT4AoO)5&VZxF@Ls)%2OBlv@Xb3^8~wxl&7C$l6y49XEr4Bdnk2+D5|EY5riU*s39e;-1KDHYLf@}P%Xj>n6dS|conKPU>&O4-5LhH6VbBK- z0&)WTU;VUP%v@cq>@EJ;g|#GLBwe3>A3FaSIcZ) zjW}3R!y{Q}4F&o9aldxHUmXZ?8ZugEfO?@&9Ub|!x2TsSMbNhOM|8x)K?K@V@HYIa z;6?{LxYUf697bwtD@t4$p+SnUU2cv)*RPOW=|=N1ws1Jx!g!Z z!eE0m$c0LchjUC4vaW2_&HZlBL)!ibaQ}hXa4>ywHMAS;{8L$@4(p`&1R*(<5+?|I zI71;mQqb`=sAzQ!8>frD!71d}XfFF@8j+tm0m~~tgzCjH81|Kq-*9%D&3L@ufF@}mD0tK{{QlDbyb^+A7UX%&s76d zW2;g0jco5X;xZR%LAzYJGo^$L1mDRAH~@o(6p0WMu1;{U%t2Z{-f$7MiD%1q7;G_# zm*=KX+}wM2L(*A!7Cr5Vi4=k%rcsC1nQlF2e1j@&zlmCecry__Y#Kuhhvl?yJx(MsD1GPb(Ylez?dnu}2wT_EybEHbn3- zSl5@2WFjkf8Y^}2KQxX{#Xgkkb6uG=q>c1kE=)0bYwepwB-uH=a@Jm2WQ+Q_-nE#@ zT^GDmjrpOtO>N5ml(#D}nAn2ix-#EJgPd~TAtyGYKP3WTUn{vWZkWLoqy{gt9GQUE zw?>)Cz6WG+djF289m;O>x+ow^{q=S;+MW^NceK9^tW)^igEPOJ92GJ~DFsEz?a7*! zJONWntWix@&#w=G&8?YW?K>(Ta?j1Z#R5>t>X8oMVhC|quEYgbXNI=Qj z0^AHW^YW8jiwmdgfr|8uv|`&2Z-!}Cy5P@#dp0Qb{rt-%Q{o?CTPCA4F#IqvSech_ z$yXc2`jwC`NT0)FhRKX8*czozP=Jq0p1_UHCm>wYB$&rXH9n`d4;ISV0u(xtmFrt! z*1p!#5G};qw$bp!$_%nkHi6==cwUQ0qB71*&d0TG7BZefpD2MTb&s7o%)*%YW!$|J zn|{f*x?j^(Oey6eF%-s_5fngTQs z2G>aMogp-L*_!5AF4iF&Ry=R-CIA*x$563u8% z!nyGCj3|)yMi+d~@F*Bjym$>VDV#mNo}Cm5w%EWb)|ll5!Yxp>V> z-+f1+$Ye@Xqgk;dg^Ls%4>$4;O}Z}D2XJJ?AH2BeEJ@8dGHWQZEtODADuZrivJ9ou zsu)fqW1}<6LD#AWzR}IK?YToOriltb9u!sdEfOtkXgro--J zMqkJqF-0DV-%c=cGZ{n_o&#Ami-G-sK>5_h+Qm~yWu+!^Q4$lrFrGtgS*aOq{kEwWSma_wrR6cMdWG_F}p$CgHkC^y+c0H0t$@zFh{yQb~7}>LcPoIJE&GJPU z5$Nx5C%LyL?IUGRM3S9Sq^Gf~7Vn_JBbGa`(;gcw<*An3#u@)GNgO$JYt-&i*VVc%D_=3zEq z5HL#IuE0QC-iZ>3dv~oF2wGq_T846xr06q|HF&&Jo>hKLmvzhHtc4ZZO}r6$u?U9^ zfW zimuZQIn`tg6|8eKlWM6DWWvLtZ*5iYQ*>WblNP@;vcxcWl zE8EztJYQF|B$e&%L>61ljAdE~O{~0+``z+U!7;B(wgfm!su_u{xqRU5Gx|Hz&0Bx8$ndY03+ zTr@^VjirXRA9>*!M=389RIh=wCF4kM$iLo#b*xdqt_3*uDOTIl1$!k4ALB7?7GIFb zr`VAd!Nn%TK`6SoA{UUof=6?H*cxRi0VKf$`t!k^8c3l%Xr@oI){BWtvV` zzRndCI}XV=*NK{TepYUWCCkLN?~m};Z&05jmmasH+59Z-UN*f#FcyMP%1VauKrrk{ z`im*cnrUDMM?O$+-^_p5zoF~kubVk~HnmF`>!hdsma|PbW2Ms)Fl#EcUBcj5jYA`aWV(#UWdP~49-wviU;L#UJf%9 zQl)6+oA9ito6yh>%UR?hp9QjKouf6Jvx!hU=S0S|(&~Ln+*^yvSt`=zel{1@bklqv z40I^pid^Bwa@`LKYHisr=VCA%%D0O-B$V`h1nVHys6kC^*lD#LSOB(Ng&g~tVE^0A zrLYXV##TGk<|(@teE}*uN`8DRoJTjMmFX6-w36$5lCr8r&1zYDNjv4ITGZ(T%AO_1 z=T;U8Ph+|kHx3iJE>|*?4YwR{77FxM@DjIkB|g6NDR3>f_kPoWidi-_=9^=%RNo&C zsvue); zjEl2+b!D&pqpt^TW#_0uQKi5)F>KdsUX9KPMMsFyPGNsKPqElbu1yUeQvAA)=op+v zH(&736OKKLgubYkuMYV%cA6i>K+V6J3R|aXfe0C?Bt~1SW@+0x>gNwKYsJyi!lvg` zGE^JhpF6hIIl*M~;Vq%0O9;7+%Olehsm8TARvSCs z72L2rVO(~NG?Q2@*NmeII&-8Q3T8uUs0{L0QyK~cq8xE!=FnDy4u!Pld9b`xjpId1 zlbc{4I;6B4tILs_*Srb+l7j-ndj5~S3=hmO z+r-Vq)xl2F&X(EA)y(d%kG-1c2Dm{M43M9`;uDDzrF`KSi^?d}s0DDf(l6hk61x+N zjX$=-`*uCPIF23L$-jdUbMOJ$#HC#v;k>UT0K`A!eQUW9dVii(JMy+qii)&y{TF_@Fba!ttk7} z{nQC@6j5K8YN2?Hu4))_w+g+VQyBy}p7SCh#k*RAo|*kUfL^L^pDkF<+gg+PM*-pIBXhX{7N!6~ylh_KVf zf1H`FxeLvNC+so3fg^I@7G z#=g|LUN7?#2pt968&=QJQO{FRz^GR77ldYa_i=KNkMq^?30gt&b_7w5k@2{??>LRs zEJ86MQQQ$7Wz5{3ZgyKtw~|ZQb9+G@4e8@gW;jicrg4Wu+8et(O5PK{p&uJ?AQNTrNz&MMc4pqG7-S+?mue|dpA2{GiP8` z=1+Dvqq$|j&x6ymQzo1sq1zIX!~wz4Tqvxr7b8L5at}g4f4kZ5#uWi*<6->GlczDs39+w#Y7hYvoa?rYv8*B#nTSIlV8 z6Oen)jx4wn?wV>u?6S(JjIf8;LaS8e7rnA^!5!Q!xMeGDnW#H;*M(DuSL{Z@!~>QeCE`Sy_E@6Aa7%S`K+5kxaVUuOaF z4Kmg;63$5))?t-_p7-mord#R4${iPQ zX?Vf9^~r|^u$_uoy_kcsSL8Kdszw5{-4LfQR0o^KSJPPvh3h`wW1M~{%$Z<)+L__I zYtiHW4buxnWzch6;{rhc~JJ>-6t6Oal)M zpB=)ld?%H$?jODI@)8L6_B5O)Ly+ zaj};A1=ufZp`NbCo=}fh`>&_#MGzTShPv_A`Vm}g3=43ftPMrkr+GuxsXq#~Kj8m4 zV-=3CSoA=GfCQ6(fM5e>EMVjAzoseR$_sdX+8bHfGFdyCSzM{xIHIdz2zGgM)7s6T z&@f^^4|cKj7c+jQ2jjB(UYg8R%vk3XDxD;co=Ii&Wib_ylkfua7$)HJ(SV`qn(d@G zAIPUHE-VR+0*`?+N@jh_DS%-Be!IC<467KNVDRm7YyGV^`+m!1me>2lzHqG2U})|R z%^Q{l0o=?(tj56!pm)xU8n|-tjBg{&Q%^IkQ`omgnjELW3=BN| zl4Z$EU_5?-3?qHEJ^VGQh!rKGjvMNSYej(!^4INW(DCkwk5^+3k(d-~M(Q#VT zs=y@kE&tlwuD=XF>VJd=PritIfl-|oop!h^~ zEYTW?YGEhmGDrDcW|`+O5T!b1fVKB~)xE2w-}g6`ufHO_ zep(gV>#Yoo%|{Jx85|7Ak;tBrvclttaf)OSZ)%(73rX7#_aQ^x9RR}4ey@ra7w={`nv1DlG&@YuRMKqO0)m@ z^4U%MoN8{ZyH)y5Iz&Nb<)qhh*1fUX75?&#+EMjJ;624gwi#;|e#p8Q|9-M>W!mSQ zV8OaoER$_t%riXugp0+e%iE~4Nu|TLDV^=Y`vp}l@g-XK&DB0T98%L~nem%@UL?El zwx@y(*Hs(V%;b#bo7brv$MRy<)4mShjmGm6_c2V^^Rx2R`V#JWzRMR~?5>D=Y0eaL zPoVeTUCG|KdrcqxncncZ{C3#3^~YWYZt+XO@<9y-HxFFCS#dtujsJs?8asc%smO+{ zbqa>nsX1>q-N+Zc$!E4MVcv@ekLH9fxhR~l^uJtQ_63FQ(#@Uk*pj)rHH&%#Ba{zI z&U_&!(Y^E2DusWEsS$l2tZGk9xMCvmMuJP{aG}n_ig^i{XP95GCp~HJJ*|6*H~z_` z{`jdAx2GL`HidKA+q=qh+Ryo(SucFMeMwqcugp~2%uiG1>|SYB&Pmd~qucJukX`h~@( zuT77uOTE2%{obF~Zd>20+@Ae>UBBJE&nNHI{K{H@zd!cZ-+uf5i%Ja-@J_MIh`qtmrrM%h6(xSyEVyyvhsQ;whr7gH#;$Jb zKOa4LQsT`GmDS%TaQ-}3to-VT^U9gR>EC><{Jn#wj=6bF1nrE54U9c^1m) zEk6sMdhwNP;9u6nCY7n!t#wLwcKP6f75PXWi= zK-~@)XaI^aFhn~82ZK}dO5#H*3sQ??L9H`%11iK@^S8fgfs14ZE4 z6AKEkx!OuhGolBm&Q~7Y@)^K@0M8r%jVR3p`W>70yas6@BcSD{fkw!nSRM=v1F&|8 z&yfwm8VbFu#jLya85rV1SsD0IOxn)_HL19yGA9*0U5OqB=m$!|^fxe;+n{JhJ6;mq z9Q1ioggGw?VdfxBqM&O>pLjuNzg7y>jy4U0ZUXv51i}Q4a;OO?(-P?V(MOFD`e#={ z^`nm=qZ@(V|3(-wr2%Vi9Nhr)jxNH0oJM2=uyuRU%|h=xBFsu{LN*JvCy8zfdRGf! sN=-8~R8Trz==#yyg9!cN?MPV+wRITa%?ivxpj;)$kO<5koV_3(0O)>`?EnA( literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/simclusters_v2/simclusters_presto.thrift b/src/thrift/com/twitter/simclusters_v2/simclusters_presto.thrift deleted file mode 100644 index 93eae6c62..000000000 --- a/src/thrift/com/twitter/simclusters_v2/simclusters_presto.thrift +++ /dev/null @@ -1,59 +0,0 @@ -namespace java com.twitter.simclusters_v2.thriftjava -namespace py gen.twitter.simclusters_v2.simclusters_presto -#@namespace scala com.twitter.simclusters_v2.thriftscala -#@namespace strato com.twitter.simclusters_v2 - -include "embedding.thrift" -include "identifier.thrift" -include "interests.thrift" -include "online_store.thrift" - -/** - * This struct is the presto-compatible "lite" version of the ClusterDetails thrift - */ -struct ClusterDetailsLite { - 1: required online_store.FullClusterId fullClusterId - 2: required i32 numUsersWithAnyNonZeroScore - 3: required i32 numUsersWithNonZeroFollowScore - 4: required i32 numUsersWithNonZeroFavScore - 5: required list knownForUsersAndScores -}(persisted="true", hasPersonalData = 'true') - -struct EmbeddingsLite { - 1: required i64 entityId - 2: required i32 clusterId - 3: required double score -}(persisted="true", hasPersonalData = 'true') - -struct SimClustersEmbeddingWithId { - 1: required identifier.SimClustersEmbeddingId embeddingId - 2: required embedding.SimClustersEmbedding embedding -}(persisted="true", hasPersonalData = 'true') - -struct InternalIdEmbeddingWithId { - 1: required identifier.SimClustersEmbeddingId embeddingId - 2: required embedding.InternalIdEmbedding embedding -}(persisted="true", hasPersonalData = 'true') - -/** -* This struct is the presto-compatible version of the fav_tfg_topic_embeddings -*/ -struct ClustersScore { - 1: required i64 clusterId(personalDataType = 'SemanticcoreClassification') - 2: required double score(personalDataType = 'EngagementScore') -}(persisted="true", hasPersonalData = 'true') - -struct FavTfgTopicEmbeddings { - 1: required identifier.TopicId topicId - 2: required list clusterScore -}(persisted="true", hasPersonalData = 'true') - -struct TfgTopicEmbeddings { - 1: required identifier.TopicId topicId - 2: required list clusterScore -}(persisted="true", hasPersonalData = 'true') - -struct UserTopicWeightedEmbedding { - 1: required i64 userId(personalDataType = 'UserId') - 2: required list clusterScore -}(persisted="true", hasPersonalData = 'true')

    Rl;|1?knt_B+%#O;Fd_n<(4WuJshay9~nG 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 L0<*`P9uN-zoWqMb literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/simclusters_v2/inferred_entities.thrift b/src/thrift/com/twitter/simclusters_v2/inferred_entities.thrift deleted file mode 100644 index db667fb68..000000000 --- a/src/thrift/com/twitter/simclusters_v2/inferred_entities.thrift +++ /dev/null @@ -1,38 +0,0 @@ -namespace java com.twitter.simclusters_v2.thriftjava -namespace py gen.twitter.simclusters_v2.inferred_entities -#@namespace scala com.twitter.simclusters_v2.thriftscala -#@namespace strato com.twitter.simclusters_v2 - -// The SimClusters type we use to infer entity interests about a user -// Currently used for SimClusters Compliance to store a user's inferred interests - -include "online_store.thrift" - -enum ClusterType { - KnownFor = 1, - InterestedIn = 2 -}(persisted = 'true', hasPersonalData = 'false') - -struct SimClustersSource { - 1: required ClusterType clusterType - 2: required online_store.ModelVersion modelVersion -}(persisted = 'true', hasPersonalData = 'false') - -// The source of entities we use to infer entity interests about a user -enum EntitySource { - SimClusters20M145KDec11EntityEmbeddingsByFavScore = 1, // deprecated - SimClusters20M145KUpdatedEntityEmbeddingsByFavScore = 2, // deprecated - UTTAccountRecommendations = 3 # dataset built by Onboarding team - SimClusters20M145K2020EntityEmbeddingsByFavScore = 4 -}(persisted = 'true', hasPersonalData = 'false') - -struct InferredEntity { - 1: required i64 entityId(personalDataType = 'SemanticcoreClassification') - 2: required double score(personalDataType = 'EngagementScore') - 3: optional SimClustersSource simclusterSource - 4: optional EntitySource entitySource -}(persisted = 'true', hasPersonalData = 'true') - -struct SimClustersInferredEntities { - 1: required list entities -}(persisted = 'true', hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/interests.docx b/src/thrift/com/twitter/simclusters_v2/interests.docx new file mode 100644 index 0000000000000000000000000000000000000000..2674747f161f0fe141af8afddee3536e4b4565ed GIT binary patch literal 39525 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 usersBeingFollowed(personalDataType = 'UserId') - - // list of users who're known for this cluster as well as were faved at some point by the user. - 10: optional list usersThatWereFaved(personalDataType = 'UserId') - - // A pretty close upper bound on the number of users who are interested in this cluster. - // Useful to know if this is a niche community or a popular topic. - 11: optional i32 numUsersInterestedInThisClusterUpperBound - - // dot product of user's logFavScore vector with knownFor vector for this cluster - // TIP: this score is under experimentations - 12: optional double logFavScore(personalDataType = 'EngagementsPublic') - - // first compute logFavScore as defined above - // then compute L2 norm of the vector of these scores for this cluster - // divide by that. - // essentially the more people are interested in this cluster, the lower this score gets - // TIP: this score is under experimentations - 13: optional double logFavScoreClusterNormalizedOnly(personalDataType = 'EngagementsPublic') - - // actual count of number of users who're known for this cluster as well as are being followed by the user. - 14: optional i32 numUsersBeingFollowed - - // actual count of number of users who're known for this cluster as well as were faved at some point by the user. - 15: optional i32 numUsersThatWereFaved -}(persisted = 'true', hasPersonalData = 'true') - -struct UserToInterestedInClusters { - 1: required i64 userId(personalDataType = 'UserId') - 2: required string knownForModelVersion - 3: required map clusterIdToScores(personalDataTypeKey = 'InferredInterests') -}(persisted="true", hasPersonalData = 'true') - -struct LanguageToClusters { - 1: required string language - 2: required string knownForModelVersion - 3: required map clusterIdToScores(personalDataTypeKey = 'InferredInterests') -}(persisted="true", hasPersonalData = 'true') - -struct ClustersUserIsInterestedIn { - 1: required string knownForModelVersion - 2: required map clusterIdToScores(personalDataTypeKey = 'InferredInterests') -}(persisted = 'true', hasPersonalData = 'true') - -struct UserToKnownForClusters { - 1: required i64 userId(personalDataType = 'UserId') - 2: required string knownForModelVersion - 3: required map clusterIdToScores(personalDataTypeKey = 'InferredInterests') -}(persisted="true", hasPersonalData = 'true') - -struct UserToKnownForClusterScores { - 1: optional double knownForScore -}(persisted = 'true', hasPersonalData = 'false') - -struct ClustersUserIsKnownFor { - 1: required string knownForModelVersion - 2: required map clusterIdToScores(personalDataTypeKey = 'InferredInterests') -}(persisted = 'true', hasPersonalData = 'true') - -/** Thrift struct for storing quantile bounds output by QTreeMonoid in Algebird */ -struct QuantileBounds { - 1: required double lowerBound - 2: required double upperBound -}(persisted = 'true', hasPersonalData = 'false') - -/** Thrift struct giving the details of the distribution of a set of doubles */ -struct DistributionDetails { - 1: required double mean - 2: optional double standardDeviation - 3: optional double min - 4: optional QuantileBounds p25 - 5: optional QuantileBounds p50 - 6: optional QuantileBounds p75 - 7: optional QuantileBounds p95 - 8: optional double max -}(persisted = 'true', hasPersonalData = 'false') - -/** Note that the modelVersion here is specified somewhere outside, specifically, as part of the key */ -struct ClusterNeighbor { - 1: required i32 clusterId - /** Note that followCosineSimilarity is same as dot product over followScoreClusterNormalizedOnly - * since those scores form a unit vector **/ - 2: optional double followCosineSimilarity - /** Note that favCosineSimilarity is same as dot product over favScoreClusterNormalizedOnly - * since those scores form a unit vector **/ - 3: optional double favCosineSimilarity - /** Note that logFavCosineSimilarity is same as dot product over logFavScoreClusterNormalizedOnly - * since those scores form a unit vector **/ - 4: optional double logFavCosineSimilarity -}(persisted = 'true', hasPersonalData = 'false') - -/** Useful for storing the list of users known for a cluster */ -struct UserWithScore { - 1: required i64 userId(personalDataType = 'UserId') - 2: required double score -}(persisted="true", hasPersonalData = 'true') - -// deprecated -struct EdgeCut { - 1: required double cutEdges - 2: required double totalVolume -}(persisted = 'true', hasPersonalData = 'false') - -struct ClusterQuality { - // deprecated - 1: optional EdgeCut deprecated_unweightedEdgeCut - // deprecated - 2: optional EdgeCut deprecated_edgeWeightedCut - // deprecated - 3: optional EdgeCut deprecated_nodeAndEdgeWeightedCut - - // correlation of actual weight of (u, v) with I(u & v in same cluster) * score(u) * score(v) - 4: optional double weightAndProductOfNodeScoresCorrelation - - // fraction of edges staying inside cluster divided by total edges from nodes in the cluster - 5: optional double unweightedRecall - - // fraction of edge weights staying inside cluster divided by total edge weights from nodes in the cluster - 6: optional double weightedRecall - - // total edges from nodes in the cluster - 7: optional double unweightedRecallDenominator - - // total edge weights from nodes in the cluster - 8: optional double weightedRecallDenominator - - // sum of edge weights inside cluster / { #nodes * (#nodes - 1) } - 9: optional double relativePrecisionNumerator - - // above divided by the sum of edge weights in the total graph / { n * (n - 1) } - 10: optional double relativePrecision -}(persisted = 'true', hasPersonalData = 'false') - -/** -* This struct is the value of the ClusterDetails key-value dataset. -* The key is (modelVersion, clusterId) -**/ -struct ClusterDetails { - 1: required i32 numUsersWithAnyNonZeroScore - 2: required i32 numUsersWithNonZeroFollowScore - 3: required i32 numUsersWithNonZeroFavScore - 4: optional DistributionDetails followScoreDistributionDetails - 5: optional DistributionDetails favScoreDistributionDetails - 6: optional list knownForUsersAndScores - 7: optional list neighborClusters - // fraction of users who're known for this cluster who're marked NSFW_User in UserSource - 8: optional double fractionKnownForMarkedNSFWUser - // the major languages that this cluster's known_fors have as their "language" field in - // UserSource, and the fractions - 9: optional map languageToFractionDeviceLanguage - // the major country codes that this cluster's known_fors have as their "account_country_code" - // field in UserSource, and the fractions - 10: optional map countryCodeToFractionKnownForWithCountryCode - 11: optional ClusterQuality qualityMeasuredOnSimsGraph - 12: optional DistributionDetails logFavScoreDistributionDetails - // fraction of languages this cluster's known_fors produce based on what penguin_user_languages dataset infers - 13: optional map languageToFractionInferredLanguage -}(persisted="true", hasPersonalData = 'true') - -struct SampledEdge { - 1: required i64 followerId(personalDataType = 'UserId') - 2: required i64 followeeId(personalDataType = 'UserId') - 3: optional double favWtIfFollowEdge - 4: optional double favWtIfFavEdge - 5: optional double followScoreToCluster - 6: optional double favScoreToCluster - 7: optional double predictedFollowScore - 8: optional double predictedFavScore -}(persisted="true", hasPersonalData = 'true') - -/** -* The key here is (modelVersion, clusterId) -**/ -struct BipartiteClusterQuality { - 1: optional double inClusterFollowEdges - 2: optional double inClusterFavEdges - 3: optional double favWtSumOfInClusterFollowEdges - 4: optional double favWtSumOfInClusterFavEdges - 5: optional double outgoingFollowEdges - 6: optional double outgoingFavEdges - 7: optional double favWtSumOfOutgoingFollowEdges - 8: optional double favWtSumOfOutgoingFavEdges - 9: optional double incomingFollowEdges - 10: optional double incomingFavEdges - 11: optional double favWtSumOfIncomingFollowEdges - 12: optional double favWtSumOfIncomingFavEdges - 13: optional i32 interestedInSize - 14: optional list sampledEdges - 15: optional i32 knownForSize - 16: optional double correlationOfFavWtIfFollowWithPredictedFollow - 17: optional double correlationOfFavWtIfFavWithPredictedFav - 18: optional double relativePrecisionUsingFavWtIfFav - 19: optional double averagePrecisionOfWholeGraphUsingFavWtIfFav -}(persisted="true", hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/multi_type_graph.docx b/src/thrift/com/twitter/simclusters_v2/multi_type_graph.docx new file mode 100644 index 0000000000000000000000000000000000000000..f2a06a2a6d7ffada7a3b9b75820a460075b3e470 GIT binary patch literal 37683 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 rightNodeWithEdgeWeightList -}(persisted = 'true', hasPersonalData = 'true') - -struct NounWithFrequency { - 1: required Noun noun - 2: required double frequency (personalDataType = 'EngagementScore') -}(persisted = 'true', hasPersonalData = 'true') - -struct NounWithFrequencyList { - 1: required list nounWithFrequencyList -}(persisted = 'true', hasPersonalData = 'true') - -struct RightNodeTypeStruct { - 1: required RightNodeType rightNodeType -}(persisted = 'true', hasPersonalData = 'false') - -struct MultiTypeGraphEdge{ - 1: required LeftNode leftNode - 2: required RightNodeWithEdgeWeight rightNodeWithEdgeWeight -}(persisted = 'true', hasPersonalData = 'true') - -struct LeftNodeToRightNodeWithEdgeWeightList{ - 1: required LeftNode leftNode - 2: required RightNodeWithEdgeWeightList rightNodeWithEdgeWeightList -}(persisted = 'true', hasPersonalData = 'true') - -struct RightNodeSimHashSketch { - 1: required RightNode rightNode - 2: required list simHashOfEngagers - 3: optional double normalizer -}(persisted='true', hasPersonalData = 'false') - -struct SimilarRightNode { - 1: required RightNode rightNode - 2: required double score (personalDataType = 'EngagementScore') -}(persisted='true', hasPersonalData = 'true') - -struct SimilarRightNodes { - 1: required list rightNodesWithScores -}(persisted='true', hasPersonalData = 'true') - -struct RightNodeWithScore { - 1: required RightNode rightNode - 2: required double clusterScore (personalDataType = 'EngagementScore') -}(persisted='true', hasPersonalData = 'true') - -struct RightNodeWithScoreList { - 1: required list rightNodeWithScoreList -}(persisted='true', hasPersonalData = 'true') - -struct RightNodeWithClusters { - 1: required RightNode rightNode - 2: required string modelVersion (personalDataType = 'EngagementId') - 3: required map clusterIdToScores (personalDataTypeKey = 'EngagementId', personalDataTypeValue = 'EngagementScore') -}(persisted="true", hasPersonalData = 'true') - -struct ModelVersionWithClusterScores { - 1: required string modelVersion (personalDataType = 'EngagementId') - 2: required map clusterIdToScores (personalDataTypeKey = 'EngagementId', personalDataTypeValue = 'EngagementScore') -}(persisted = 'true', hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/offline_job_internal.docx b/src/thrift/com/twitter/simclusters_v2/offline_job_internal.docx new file mode 100644 index 0000000000000000000000000000000000000000..9ef45e643ea16a5d4fd6cbbafbfe24b6f1342d27 GIT binary patch literal 37316 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 topKClusters(personalDataTypeKey = 'InferredInterests') - 4: optional PersistedScoreType scoreType -}(persisted="true", hasPersonalData = 'true') - -struct ClusterTopKTweetsWithScores { - 1: required i32 clusterId(personalDataType = 'InferredInterests') - 2: required PersistedModelVersion modelVersion - 3: required map topKTweets(personalDataTypeKey = 'TweetId') - 4: optional PersistedScoreType scoreType -}(persisted = 'true', hasPersonalData = 'true') - -struct QueryAndClusterScores { - 1: required string query(personalDataType = 'SearchQuery') - 2: required i32 clusterId - 3: required PersistedModelVersion modelVersion - 4: required PersistedScores scores -}(persisted = 'true', hasPersonalData = 'true') - -struct QueryTopKClustersWithScores { - 1: required string query(personalDataType = 'SearchQuery') - 2: required PersistedModelVersion modelVersion - 3: required map topKClusters -}(persisted = 'true', hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/online_store.docx b/src/thrift/com/twitter/simclusters_v2/online_store.docx new file mode 100644 index 0000000000000000000000000000000000000000..342de0c1d018440e630c5e59861f776d6715ca51 GIT binary patch literal 37588 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 literal 0 HcmV?d00001 diff --git a/src/thrift/com/twitter/simclusters_v2/online_store.thrift b/src/thrift/com/twitter/simclusters_v2/online_store.thrift deleted file mode 100644 index fb5aff6ad..000000000 --- a/src/thrift/com/twitter/simclusters_v2/online_store.thrift +++ /dev/null @@ -1,92 +0,0 @@ -namespace java com.twitter.simclusters_v2.thriftjava -namespace py gen.twitter.simclusters_v2.online_store -#@namespace scala com.twitter.simclusters_v2.thriftscala -#@namespace strato com.twitter.simclusters_v2 - -include "entity.thrift" -include "com/twitter/algebird_internal/algebird.thrift" - -/** - * A SimClusters model version. - **/ -enum ModelVersion { - MODEL_20M_145K_dec11 = 1, // DEPRECATED - MODEL_20M_145K_updated = 2, // DEPRECATED - MODEL_20M_145K_2020 = 3, - RESERVED_4 = 4, - RESERVED_5 = 5, - RESERVED_6 = 6 -}(persisted = 'true', hasPersonalData = 'false') - -/** - * Uniquely identifies a SimCluster. All fields are required as this is used as a memcache key. - **/ -struct FullClusterId { - 1: required ModelVersion modelVersion - 2: required i32 clusterId -}(persisted='true', hasPersonalData = 'false') - -/** - * Contains a set of scores per cluster. - **/ -struct Scores { - 1: optional algebird.DecayedValue favClusterNormalized8HrHalfLifeScore - 2: optional algebird.DecayedValue followClusterNormalized8HrHalfLifeScore -}(hasPersonalData = 'false') - -/** - * A combination of entity and model. All fields are required as this is used as a memcache key. - **/ -struct EntityWithVersion { - 1: required entity.SimClusterEntity entity - 2: required ModelVersion version -}(hasPersonalData = 'true') - -/** - * Contains top K clusters with corresponding scores. We're representing clusters purely using ints, and - * omitting the modelVersion, since that is included in the memcache key. - **/ -struct TopKClustersWithScores { - 1: optional map topClustersByFavClusterNormalizedScore(personalDataTypeKey = 'InferredInterests') - 2: optional map topClustersByFollowClusterNormalizedScore(personalDataTypeKey = 'InferredInterests') -}(hasPersonalData = 'true') - -/** - * Contains top K text entities with corresponding scores. We're omitting the modelVersion, - * since that is included in the memcache key. - **/ -struct TopKEntitiesWithScores { - 1: optional map topEntitiesByFavClusterNormalizedScore - 2: optional map topEntitiesByFollowClusterNormalizedScore -}(hasPersonalData = 'true') - -/** - * Contains top K tweets with corresponding scores. We're omitting the modelVersion, - * since that is included in the memcache key. - **/ -struct TopKTweetsWithScores { - 1: optional map topTweetsByFavClusterNormalizedScore(personalDataTypeKey='TweetId') - 2: optional map topTweetsByFollowClusterNormalizedScore(personalDataTypeKey='TweetId') -}(hasPersonalData = 'true') - -/** - * Contains FullClusterId and the corresponding top K tweets and scores. - **/ -struct ClusterIdToTopKTweetsWithScores { - 1: required FullClusterId clusterId - 2: required TopKTweetsWithScores topKTweetsWithScores -}(hasPersonalData = 'true') - -/** - * Contains a map of Model Version to top K clusters with corresponding scores. - **/ -struct MultiModelTopKClustersWithScores { - 1: optional map multiModelTopKClustersWithScores -}(hasPersonalData = 'true') - -/** - * Contains a map of Model Version top K tweets with corresponding scores. - **/ -struct MultiModelTopKTweetsWithScores { - 1: optional map multiModelTopKTweetsWithScores -}(hasPersonalData = 'true') diff --git a/src/thrift/com/twitter/simclusters_v2/online_store_internal.docx b/src/thrift/com/twitter/simclusters_v2/online_store_internal.docx new file mode 100644 index 0000000000000000000000000000000000000000..85aa50dda48d3b4f1b1e3f9394617be115568a68 GIT binary patch literal 37111 zcmagEWmsIvwm*z(a1HM6?hb(jcXtWeNN{L8xCaRC?kf9 z5Uw$;916!0pOJd&OR`cY-09OqqbDhKY+#U~l}`a(?32Hi$8uuHyDJ?}F1H}NLp(bG zSJRT=^LB~{l5MA^PrwK>TL9nJaN{!#na{=z3H>g$ZWE04&Q=;u zbt^rEs2+pJ0QB!a?7Laq$Fw*P;p$4GuGDnbF>OMA90P2FX=-K;ptH1I9RzcZRx}wu zw(IJ|sQX$U2FVh5-AbZn9CZiM)7Fz4e1S{jXpgP*3BK*Sy`?XVr4qSc3^Tl)ol&qK z*YF=k`^>E&TB`~Yk4+xo-WApM}6EgfnCPG zdlOJ~EBn+@wClPOm}e%>luWPpoJ3rJ(G_p<=>33PT>e%{q~~d&cx_j7^p+y;5nI6! zLirzE^rZP9b_ed>Iury1GWf5NvxS`tE6eX|Wx~XJXm)h}QxWN5>SBi`4XJ`9L#YFW z0+H^o<0nN9K-r?@&JGnR18v+MlKs;iGt2q(e8NS>BD)|hQ=PfM+=U+P4f^v2kkKka zGGcoGxrh38u#R0?TCD@nQishG03 z)(qUX2axhdz4CLGgCI#IHA4@oE4Ybv%zi$r2BG5VmYsKd%v6*UT3(ZuuIoW6evVTl zzu0P1PIVh&7kv>%ruBGE|5>20&&X=l;M;r}Tp$c^fy@DB%FX~s7gjTXv&HY5JTqZT zv5yU1`qoE!RzWlT5*{yJ{1+0T>YnJubCxd#$z7z#_DHN_I>+9*-TcCqPy1_Y3VCsHQVW0W=* zkw9c%l;lE&C-#-B8G@-0~s%d*LyI}VN66>M_ z|9UrIth$$BL01FEL3HeP5BmlUl2c42Rn@&klVdaD*u~jtW6BNMp!`j9=o{4Jx4F~D zB^6?Uxd^LzZtH;l!rGzP+3i(k7ixdePv$M0HCWG0V|=tJCcuofT+|_VVXIKY%rCcB z=hp1$U*xch#WP^!+GM{obx!0R)cd`@dwIJ^#CXSh4ugMag=$DY<1YE~)O$hr&%Ru( ztl%Ai`(g(J0fGMazL+>V{?QioF^3g4^!7(a7=up{*6`vg_z8jY;?t6A1T_g6&9kEv z@8e-w*|&kd_hC5vpINWN1?vSL8%7@X_)6hCUw2UgY-r!vXQgrnB_GBR@ z{mZTPuKz4axp8s*s|uS^L^|{Ws4`F{&zvx0p5@kbOJOp2 z3S@-r#vNzlA7N~ey+2*ong7Jdv9j006PlqEJ0f9nyqI}&*N^lA&#Yim4EXI@#<4u} zgl+`_FQVb7o=mN-R4eQv`Z%sjTYM;opBwsFk}hiGJ7toM383c+BU?LQ)hVv!roL1# z4)wzgD$IkR#NrdK6vMJ4ye@HEVpA%XU+pO1@)s}Po5acsXl=-diyx1BnKf8n#H@*y z+AyemC#OZEYsYHJ-*2;2kPBB0(o!W8Kbn#fGMdq!XzlMyF6bI4>P6#Za}!{=QE!C+ zTOoG=w6I@nh4Gc&x#@0`-hL!_MrS#uw$vk%q#PsKJ�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Ξ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 C1rg2w literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeatures.scala deleted file mode 100644 index 03a112578..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeatures.scala +++ /dev/null @@ -1,93 +0,0 @@ -package com.twitter.timelines.prediction.features.two_hop_features - -import com.twitter.graph_feature_service.thriftscala.EdgeType -import com.twitter.ml.api.Feature._ -import scala.collection.JavaConverters._ -import TwoHopFeaturesConfig.personalDataTypesMap - -object TwoHopFeaturesDescriptor { - val prefix = "two_hop" - val normalizedPostfix = "normalized" - val leftNodeDegreePostfix = "left_degree" - val rightNodeDegreePostfix = "right_degree" - - type TwoHopFeatureMap = Map[(EdgeType, EdgeType), Continuous] - type TwoHopFeatureNodeDegreeMap = Map[EdgeType, Continuous] - - def apply(edgeTypePairs: Seq[(EdgeType, EdgeType)]): TwoHopFeaturesDescriptor = { - new TwoHopFeaturesDescriptor(edgeTypePairs) - } -} - -class TwoHopFeaturesDescriptor(edgeTypePairs: Seq[(EdgeType, EdgeType)]) { - import TwoHopFeaturesDescriptor._ - - def getLeftEdge(edgeTypePair: (EdgeType, EdgeType)): EdgeType = { - edgeTypePair._1 - } - - def getLeftEdgeName(edgeTypePair: (EdgeType, EdgeType)): String = { - getLeftEdge(edgeTypePair).originalName.toLowerCase - } - - def getRightEdge(edgeTypePair: (EdgeType, EdgeType)): EdgeType = { - edgeTypePair._2 - } - - def getRightEdgeName(edgeTypePair: (EdgeType, EdgeType)): String = { - getRightEdge(edgeTypePair).originalName.toLowerCase - } - - val rawFeaturesMap: TwoHopFeatureMap = edgeTypePairs.map(edgeTypePair => { - val leftEdgeType = getLeftEdge(edgeTypePair) - val leftEdgeName = getLeftEdgeName(edgeTypePair) - val rightEdgeType = getRightEdge(edgeTypePair) - val rightEdgeName = getRightEdgeName(edgeTypePair) - val personalDataTypes = ( - personalDataTypesMap.getOrElse(leftEdgeType, Set.empty) ++ - personalDataTypesMap.getOrElse(rightEdgeType, Set.empty) - ).asJava - val rawFeature = new Continuous(s"$prefix.$leftEdgeName.$rightEdgeName", personalDataTypes) - edgeTypePair -> rawFeature - })(collection.breakOut) - - val leftNodeDegreeFeaturesMap: TwoHopFeatureNodeDegreeMap = edgeTypePairs.map(edgeTypePair => { - val leftEdgeType = getLeftEdge(edgeTypePair) - val leftEdgeName = getLeftEdgeName(edgeTypePair) - val personalDataTypes = personalDataTypesMap.getOrElse(leftEdgeType, Set.empty).asJava - val leftNodeDegreeFeature = - new Continuous(s"$prefix.$leftEdgeName.$leftNodeDegreePostfix", personalDataTypes) - leftEdgeType -> leftNodeDegreeFeature - })(collection.breakOut) - - val rightNodeDegreeFeaturesMap: TwoHopFeatureNodeDegreeMap = edgeTypePairs.map(edgeTypePair => { - val rightEdgeType = getRightEdge(edgeTypePair) - val rightEdgeName = getRightEdgeName(edgeTypePair) - val personalDataTypes = personalDataTypesMap.getOrElse(rightEdgeType, Set.empty).asJava - val rightNodeDegreeFeature = - new Continuous(s"$prefix.$rightEdgeName.$rightNodeDegreePostfix", personalDataTypes) - rightEdgeType -> rightNodeDegreeFeature - })(collection.breakOut) - - val normalizedFeaturesMap: TwoHopFeatureMap = edgeTypePairs.map(edgeTypePair => { - val leftEdgeType = getLeftEdge(edgeTypePair) - val leftEdgeName = getLeftEdgeName(edgeTypePair) - val rightEdgeType = getRightEdge(edgeTypePair) - val rightEdgeName = getRightEdgeName(edgeTypePair) - val personalDataTypes = ( - personalDataTypesMap.getOrElse(leftEdgeType, Set.empty) ++ - personalDataTypesMap.getOrElse(rightEdgeType, Set.empty) - ).asJava - val normalizedFeature = - new Continuous(s"$prefix.$leftEdgeName.$rightEdgeName.$normalizedPostfix", personalDataTypes) - edgeTypePair -> normalizedFeature - })(collection.breakOut) - - private val rawFeaturesSeq: Seq[Continuous] = rawFeaturesMap.values.toSeq - private val leftNodeDegreeFeaturesSeq: Seq[Continuous] = leftNodeDegreeFeaturesMap.values.toSeq - private val rightNodeDegreeFeaturesSeq: Seq[Continuous] = rightNodeDegreeFeaturesMap.values.toSeq - private val normalizedFeaturesSeq: Seq[Continuous] = normalizedFeaturesMap.values.toSeq - - val featuresSeq: Seq[Continuous] = - rawFeaturesSeq ++ leftNodeDegreeFeaturesSeq ++ rightNodeDegreeFeaturesSeq ++ normalizedFeaturesSeq -} diff --git a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeaturesConfig.docx b/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeaturesConfig.docx new file mode 100644 index 0000000000000000000000000000000000000000..4168010afc1ab6ba0a15aff35790044baeb0b5aa GIT binary patch literal 37097 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeaturesConfig.scala b/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeaturesConfig.scala deleted file mode 100644 index ece502e30..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/two_hop_features/TwoHopFeaturesConfig.scala +++ /dev/null @@ -1,30 +0,0 @@ -package com.twitter.timelines.prediction.features.two_hop_features - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType -import com.twitter.graph_feature_service.thriftscala.{EdgeType, FeatureType} - -object TwoHopFeaturesConfig { - val leftEdgeTypes = Seq(EdgeType.Following, EdgeType.Favorite, EdgeType.MutualFollow) - val rightEdgeTypes = Seq( - EdgeType.FollowedBy, - EdgeType.FavoritedBy, - EdgeType.RetweetedBy, - EdgeType.MentionedBy, - EdgeType.MutualFollow) - - val edgeTypePairs: Seq[(EdgeType, EdgeType)] = { - for (leftEdgeType <- leftEdgeTypes; rightEdgeType <- rightEdgeTypes) - yield (leftEdgeType, rightEdgeType) - } - - val featureTypes: Seq[FeatureType] = edgeTypePairs.map(pair => FeatureType(pair._1, pair._2)) - - val personalDataTypesMap: Map[EdgeType, Set[PersonalDataType]] = Map( - EdgeType.Following -> Set(PersonalDataType.CountOfFollowersAndFollowees), - EdgeType.Favorite -> Set( - PersonalDataType.CountOfPrivateLikes, - PersonalDataType.CountOfPublicLikes), - EdgeType.MutualFollow -> Set(PersonalDataType.CountOfFollowersAndFollowees), - EdgeType.FollowedBy -> Set(PersonalDataType.CountOfFollowersAndFollowees) - ) -} diff --git a/src/scala/com/twitter/timelines/prediction/features/user_health/BUILD b/src/scala/com/twitter/timelines/prediction/features/user_health/BUILD deleted file mode 100644 index 598e0c066..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/user_health/BUILD +++ /dev/null @@ -1,10 +0,0 @@ -scala_library( - sources = ["*.scala"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - "src/thrift/com/twitter/timelines/author_features/user_health:thrift-scala", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/user_health/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/user_health/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..69560da7f5dd17e9a33898350bcecc194392eb2f GIT binary patch literal 36814 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/user_health/UserHealthFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/user_health/UserHealthFeatures.scala deleted file mode 100644 index 7c8c7f8b1..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/user_health/UserHealthFeatures.scala +++ /dev/null @@ -1,23 +0,0 @@ -package com.twitter.timelines.prediction.features.user_health - -import com.twitter.ml.api.Feature -import com.twitter.timelines.author_features.user_health.thriftscala.UserState -import com.twitter.dal.personal_data.thriftjava.PersonalDataType.{UserState => UserStatePDT} -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import scala.collection.JavaConverters._ - -object UserHealthFeatures { - val UserState = new Feature.Discrete("user_health.user_state", Set(UserStatePDT, UserType).asJava) - val IsLightMinusUser = - new Feature.Binary("user_health.is_light_minus_user", Set(UserStatePDT, UserType).asJava) - val AuthorState = - new Feature.Discrete("user_health.author_state", Set(UserStatePDT, UserType).asJava) - val NumAuthorFollowers = - new Feature.Continuous("author_health.num_followers", Set(CountOfFollowersAndFollowees).asJava) - val NumAuthorConnectDays = new Feature.Continuous("author_health.num_connect_days") - val NumAuthorConnect = new Feature.Continuous("author_health.num_connect") - - val IsUserVerifiedUnion = new Feature.Binary("user_account.is_user_verified_union") -} - -case class UserHealthFeatures(id: Long, userStateOpt: Option[UserState]) diff --git a/src/thrift/com/twitter/interaction_graph/BUILD b/src/thrift/com/twitter/interaction_graph/BUILD deleted file mode 100644 index 500c73d77..000000000 --- a/src/thrift/com/twitter/interaction_graph/BUILD +++ /dev/null @@ -1,15 +0,0 @@ -create_thrift_libraries( - base_name = "interaction_graph", - sources = ["*.thrift"], - platform = "java8", - tags = ["bazel-compatible"], - dependency_roots = [ - ], - generate_languages = [ - "java", - "scala", - "strato", - ], - provides_java_name = "interaction_graph-thrift-java", - provides_scala_name = "interaction_graph-thrift-scala", -) diff --git a/src/thrift/com/twitter/interaction_graph/BUILD.docx b/src/thrift/com/twitter/interaction_graph/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..ce119296aa80ed5720c82361c96309494c9eb22f GIT binary patch literal 36822 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

  2. ?(PUjlJGeYvcY8M=#nDRGu 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 aSq!yx7~stc%t4@BCCHEn%pQNcK|BCh{usFc literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeatures.scala b/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeatures.scala deleted file mode 100644 index 3aaf9b856..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeatures.scala +++ /dev/null @@ -1,19 +0,0 @@ -package com.twitter.timelines.prediction.features.escherbird - -import com.twitter.dal.personal_data.thriftjava.PersonalDataType._ -import com.twitter.ml.api.Feature -import java.util.{Set => JSet} -import scala.collection.JavaConverters._ - -object EscherbirdFeatures { - val TweetGroupIds = new Feature.SparseBinary("escherbird.tweet_group_ids") - val TweetDomainIds = new Feature.SparseBinary("escherbird.tweet_domain_ids", Set(DomainId).asJava) - val TweetEntityIds = - new Feature.SparseBinary("escherbird.tweet_entity_ids", Set(SemanticcoreClassification).asJava) -} - -case class EscherbirdFeatures( - tweetId: Long, - tweetGroupIds: JSet[String], - tweetDomainIds: JSet[String], - tweetEntityIds: JSet[String]) diff --git a/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeaturesConverter.docx b/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeaturesConverter.docx new file mode 100644 index 0000000000000000000000000000000000000000..ed3ea3cebdbbbb4029f2bdbf6fb37cb447e5a572 GIT binary patch literal 37059 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 H9uN-zB(OcT literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeaturesConverter.scala b/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeaturesConverter.scala deleted file mode 100644 index bd3333a03..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/escherbird/EscherbirdFeaturesConverter.scala +++ /dev/null @@ -1,19 +0,0 @@ -package com.twitter.timelines.prediction.features.escherbird - -import com.twitter.tweetypie.thriftscala.Tweet -import scala.collection.JavaConverters._ - -object EscherbirdFeaturesConverter { - val DeprecatedOrTestDomains = Set(1L, 5L, 7L, 9L, 14L, 19L, 20L, 31L) - - def fromTweet(tweet: Tweet): Option[EscherbirdFeatures] = tweet.escherbirdEntityAnnotations.map { - escherbirdEntityAnnotations => - val annotations = escherbirdEntityAnnotations.entityAnnotations - .filterNot(annotation => DeprecatedOrTestDomains.contains(annotation.domainId)) - val tweetGroupIds = annotations.map(_.groupId.toString).toSet.asJava - val tweetDomainIds = annotations.map(_.domainId.toString).toSet.asJava - // An entity is only unique within a given domain - val tweetEntityIds = annotations.map(a => s"${a.domainId}.${a.entityId}").toSet.asJava - EscherbirdFeatures(tweet.id, tweetGroupIds, tweetDomainIds, tweetEntityIds) - } -} diff --git a/src/scala/com/twitter/timelines/prediction/features/followsource/BUILD.bazel b/src/scala/com/twitter/timelines/prediction/features/followsource/BUILD.bazel deleted file mode 100644 index 0ee33acdb..000000000 --- a/src/scala/com/twitter/timelines/prediction/features/followsource/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -scala_library( - sources = ["*.scala"], - dependencies = [ - "src/java/com/twitter/ml/api:api-base", - "src/thrift/com/twitter/dal/personal_data:personal_data-java", - ], -) diff --git a/src/scala/com/twitter/timelines/prediction/features/followsource/BUILD.docx b/src/scala/com/twitter/timelines/prediction/features/followsource/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..4cf9ff82aa254f5c4418dc46892c6a2107989bd6 GIT binary patch literal 36751 zcmagFWmsIvwm*z(a1HM6?hb(jcXzi&fiO)#A^&?rS6YlhFqS2F-IyNxK(8{NPF80k|%VRmQ7=fD zI83|4XuUhC?EXCN??G`d86chYyvRbMnQ51f)E3D1HNyBzL*|olLqfl6t@{LHy^EEG zbKOc$A*$yfG64Pi4~K3Rk1;LIL%6!qs4F$ybxhmPAIAW@5Sp5q1L!QRS4Y8|qZLg? z>vmn87L~B(+;<3piocz46&WDl|e%Co6dQ1FLihk`Eie5Ay#O}b=TZe*xKnDLca>QSY#ipWvVk5l)KQQy+ME805V!d zNJeZAB==O`4$-ksi@c^p6|I!b69kZX$szIoDx@G6x9y1l?gqHWDrQ3S2ioeqo z$uG9rlvCZt*hN2tk!d}i(|;x?{1dX84fr;n1}6vuoFH?6nX(JO$(7X%;9~LnCeKV5 zQ|x0ym%jCto>kC{xI{;gmSccC{QO=PJ8-e}hKpOlek_Y;Vq>SkK{todon%9B=+a4K zjkmEG+AK67lr${DrvJTG6iYe~uW0o`ne`Qig?`ikL%ms~=fZ1qwqzb_sq?#;f zxpZ~|`T1}G%KkcTuGvqMtn0B8tTdsle5`4EFuP#)2NLU| zg#3CpV63{AVL?{|$3b-Leh>Qw4U$t#B~{gP{(h?!q* zug-1Q)4#}J7mH`W$hFCSXX>2DJE-@6efRQqk%;k*_Z$ZQ&8?{zV8a{8kz>SK;8Z0PNej4%ctKij~ItKcUD&5KVz!|&G8&-B+Lu#!4JhZnmu}|R& zQwCd#qd9f(vAL=A0p`gk@nLKmCjCqyY&@F|_ z;3<$1vKx1tja$RmBKv&2t~39Mkz?hchbJ^cDRxA{Bw1i|FIHE^YCl9DZ)-XGyxKk?)jAwkCj{D~xRIz*XnCmYe!g z!8p_pH>fZVf)a~QxKa$ulJL63afwZ-SpK!6fXiRJd~XsfFQBy{KVSTK+{>)N`XXjS zwA6+{oAlP2;2E9e+<|?6^WIGu`OpK757<(VNRo1lX#YGCHAWKH zV!x4+Br>73K_wWLfv4ePuN0rszal4EsPwL*J)QN5mE;UD{r-~hb?*8X=|69b2=*Gu zbnu5&81c^!tOvlwoE7}3b#nkOPJgUQnj3(0Hgw>IQK07t4>LQ}+X>}dv`XD;6V(Ps zr5Sbp!2rD)=9NGT|L4gkd2agm>9B~u>Q6f#PwYuM+aC;Y6{V9bgWh5J?8hX1 zv+PuQiRmo6D8dESkRh-O{E24k>!0Bgz0h3PHam>%ezGd*T@i-bS<7^r9ne;)=roL@ zQ9i6=Fq)FXMVisIUoCMiZTMcVsMcq%{%TlVr>{+-BoIV7&Jsn_Rz@%ko~xV&T0d}c zpz$X=1-!>xx6-F;rw_m|U#%7V9-S-TAXQgiX)j`DkxsikYZ4kcyoRv&i>_0uPydp= zmZqgU7IuZM!u|BP-KIgk{Lx#A(7A+~MogKZthB6zQ1HyURs%f-i(hmtwtleo@n}ZJ zfCk&$1?oDp5jb@?E>filBfNz~2`VYF98?b7Y%v~@@GK^*DD_#-fhVESV&Z1~+HHg) zcXy8%6FCG!NYoiul>CtT^Erh&Rx|@HNQO`$LWl8ND5LlVvy1TQjlf-9i`!#vV_mS} zCT!#p@C-64ZF+#?EO-xM^w$>JxCHn0{$-&Rx9fqwp*U$Hl2Pro84R|c|4$<>W2UhQ zIw%dwQ56>JHr{l#3}s_icEF|@`FPe>2L(#^lW;n&D0e$!w=|QMfmQlsZTrEWX>XyJ z@B$a8OD1Gy92k)ZSVhi_{&^=m1`uL$fTy@I@DxV`p5p$vlmA?x|9(IJxmbS@R|;ms z|8)9-)EkY?QyXue?ti;k*p99 zh8nOCX#dK!>qjqp3)kOs26!WyxGhuX*VUDmZ}jxTAua@BXwnfP!JWv&rz5NOlv9Co z=GV7xc-FDUM*h^~Vx$_X8k+CR66yqdvv8H^ceOGT)h(W%v;EucPk~0HG3n1IYrK73 zD4nf(r<#w&6DOA-0Pq>#SMYxC#8dYqD|zMF@%bcObYTeaav%G8|G01(Q!Ltiv}160 zzjh8vnFBrU&-}awg@x@LdOg<(y*RwKt%tG#mq`tii_fO|_QO(kx5ieEn#-TZjxHL! zR_%F-s#-t&Dkld=`Cm(gyTl+=6y4_pUwP9+wYW8{LK# zFZ2N$MM(OrfJ<3JK01!>3nrfwO>$Bu4r@eDL^EG-MdV%Hohxq*g$3Ukv93IVMR{!a zuOFk04IMwM`SE>w7L}L~KGs?X?_(T%1Z4b4fFe}>H2wpx$Ty&w^OGZwu^rp`d;Iq( z@SaN{W*ynbG3k$IN!J&iX~eu^SCK#$X76WyZ_3NW@*R3NuTHP!RZ%I4SpQJgm(JBr zP;~3iOIp2l)yfW06-!#9h^(!4`&{UIcG5B%A{<%7O7oYBobwCQxBu4N(}(~-yYL*zwO&s zgS&CrMR*ZM#T7RTC<2C}Hmc)|=XN0`QPSkX6}!h8$2WBgoGCe0^?5f3RvVp71-+5HUaKBpv%Tz%EH@C|&-E{OtY#j3BP1xcbyfIp5V78Aj)NKbI1G)&0!$ z^0;QxAy{?VU$FGKhMjXmZc*D|I}yEr2l_pNYB~}%OwYcQGx=d+eh5>ej;ci5@<)1d z1gmxIZX<-tq5$j=FEufw<#u{9WQX;N%zRk{RZ2$8Ag6@p0J4l927S_VP=U7+_<2)cG!ZP-<{UrPTYTW!fa6iAjSV0U)4xJ%>u*f zg*@CVw+{6$>|?G3a3~pg9Q_}mx?r?WFz!D>|D=K`r9HJJ_xvw{Qx!^Z3(_AdlG|a; zbN`3L|3JlgUsT}+rGQ8MU6?x|SdS_?*eiC!4`woC=Kqq&Ool+~g^cir>e)n(M)daI zqyF7g;40ZL=??0|GRzW?(w!sgB++#9JH3bW*YVdSod+d#zekb|OriY}SJKkt*}380 zilw*c;7TN=J-g=&S{fR&e_@IeX3b*w{;i2A!^WkEkzpRxXrR8mZTqZ${kPe`snmVlG$s@7@cXglsIE! zV3q9V1n9n);ej%+(#hgKlr8IUCpM@^4W&q z{EP!Hh&APCKOT2#?1vdIvi>@|f;)+MM{q8|2C?E^gl$5HS@G@;`~B;#pUNoGDf`o< zo4>EeX-gs%TH(5Dc+LDZv)T$V)o5Fk)?y+q$hMAhqV=U`Eq+kthC#j0C24j2@Yr*? zt3M|BHs{Ot3mU$zj~;5)lc*!O;YVc+p3pEu3>vswrAG7VLC-J!XGKc;V;t)rNg~?i zM$=W_kEL%uC6w{P(o4>tD#!_ta@5aw*@-88IG*><4v)=hKUhScIy;cw3(5}+Ztwbk;K6;z>cWd_ zCE~TBO=QsNzyuU}^>7B}X@tBr-uNnVMHVWH2sS8SLsyQf7=H()6_sxmL9^w!YDF!O$PsYfFg! z`MxQ)%G|9l2|KfYOCTcnCsj;9;;L+VlZe^TA!quf|H@eo#zL^nR}!wnPw@N?p2~wC zn1)a%H)IetbDaY=d07?!`tn`Qpe>t z?8EInNm5>wclrFEkQG{3xOzV3%JJ%3SHvRIJ5@mjyP}}`+KgTo(igERfVMth`S~KU z6Pxhs78Q)%dxz;@O@PRXu`q`GKAE2Mb)Bls`W64k+Bp#_-1x9I04Ocn(iFV=>70%| zL)yG?O7Z%VHVc~ac(@w6c)1uH@CH3QdjW4>l3wSJA7*|&9Xhd@w7;~7X5O$qO%1_% zzd)cZrF*rAz!+_Snp1|Z$?sL;AGwWJL-I>bTwPJ66~<`BvTssQWupk&+SO08R9im; z1HM(wJw9P|b@{3UoOA0wX-M5SklmvI9&u`L8Lt!In%<+>lfPX&Oba9|PyUcL!@^x0 zZLSFN*b9;Pb$OW8E!%5A3;Ke$mv3YGD@zk*`NqK^{QI ztT8)@CU11?E|h%KslCa^~uGRtBA9lCRttT%ujo&!8C1PDdKRsnH#WvgpB|5kVD&MFeqm? zPATKHb_uu3Q^|0aQoO|XNW&?4t0aJ%2yPx-f0Ql_nM3o(eWb0-@B{IN!j(J{fnF-{ zD@I|b+x8eC_d-cE0}ghjg0i6;j00I9mta~+!ShUoL#X30rWz*TRnipyMn zk--fI(dfnKlKp`~`$aK&@l*D$*u zzSk)DNe_;c4GJ8IF3~bg6DD(>eSqQil5{RzIxa24ORpu#_0`ac4)o7Fa^&ofQ*p(o zSRksKGRRY4BHdabX7Gj45r3lp!tV;T_W=hWr<8uu7b_SoGo?LV zDTjPRkiFKlYAiq(`X*Y)hdr@>$}m&v(C22$`1`lMsg0%;?v>NigoQMXz9ghiuXisG z^F(+RAJ8(`__`K7xoR{_xbu+|)v3y?1^5=rYK}Aql+JH6>=mf0f98a#aC&b_4c!lT z=l7+x-OOSshpt31@J+{;dZ1UNjWx!6y}fJ| zEA$N=g>?I8RX?QCRN^YG>d$@u_#?cO`jgp#_q}tgz^~Nn@|1%lir6+FL}&>|L(d`v z5j|Pkktg8PI-`bVo$yoNm=@uxM-;13*x9pT1p1Bd!_RDD& zufoh~%|g=n>XGgEQPbIkWxh&oz+gdAhc`$|5Ey6qBV%?f|J)sc7#2FdWg80>P3cEj#Kgd1fMv^P64u|y;Xf`fpBr*O$No1>oTm5ZOc}q zLLBah*R5B1Rl<>SLcg{)m+7*S+x}){1!c?5-XXpYK2mHqxf$9pdL8_aCi~Nmi=0iY z)G50ZQ9V^m5Y!5c$Pd~JF$MSVpw65pYgN00w^Wz}GIAeO-CN0hCYfZG$eF7u9*h?n zi@U|w)VkLf?G*5@mr99m52A1RvtG+k9fa{Mdn^kb^8`{YiRyX<3xc{-+$?c901K-y z38%FcY41J_Yk)?K6PPYb(k{iL7*5Ufg>k$k8EN%PnIY0zXDa=|FKuQE;g5I8&}uTgNL;G=2SW1YH;z<#7s1%3?c~;8jXhl$>vh`qZ19Ex4D5 zZOuzz+jlQEB0uz9v?G0=7}pUPc6^sYMt? z!={no=-cDea0l#`G`d)K%Wo3eq(=in78}x6VA~-b-0|Y1OQM-R3{T)& zZ!Z~cKJr^9WOF`7ttsOags*GsZQ>t9cVH>HUh%luFSvVd;J6`lAo|k7$!#X}VS3Lv z$Kaj8HSimX;pXzzG3D}_bw`kfoc-VtEb5WFu{D||EDOS(CbTOSf$pf~{bd)kK6o-) zhxZG{+yk*gVgK^pdeleR396bX`CEF7YkL51&cr!X9YROE1!6}kw4(mTt&F^rsa4et zZifkjEJg>;)S_h`?@i!JT7I+2ru-16J5*cJ4}pMn8t8>oopyLw+Ots;#EzeQL&%=c z%S5bXk>3b)z}W1Y{mAVRq9#FDw62ZS2PhiipAQ_UKCR2pIb9k*p z^qBP5gM+Xhu-)wb3g-l0%*Pkv^lvg+~F9l%lX@8BkXIys|SfXMp4?`}Gz-V>&7~lu>R= zx=v??2U>jba~AzMf8;2N8p2H3jqo>+4bt#_Db5GHT8GK9B~2(lnP%)W2}mWnls$A| z{W8Ob4^5JFnMjAb*J*P3hMxIvX$}p>;j50WaIW9qM1BJ;y%|0#4OPHX0f57C-}uRN z{1IOASNQC|!w-Ik2a`y2l=<;oIev$}@V0%Pk)BPjw{3Eh&Q@WCZCCEbIxOUuLQ5&b zyG}Tcvo8+v_UefKUV^v27_MAx>yO!yP8isprAy<6alKcO=5Rl4HTwaQ75gm2+Xi*I zukcX1!(5PRr8LLTP^pCLFqAihVzzvFLHe{vxyDU+*0wCTgx6}$zWj?wz9EulZUF7< z2iI^C7LCg`!#d)aV|8WL>J&|a>s~?|j6;p%uzU|r=C}p5$SRh+^$d-AX3K{tZ~Dzp zs4QjH33Bfi^^TGh`!I7so7uCk$B9s)AKL|W++L$ZaZCq~JyYozN_5|>i>6_Qcxf{w{Q@t%L^UOl*8$?VZ;4XGVo z_+B>1VV8!RPDCB#PLfa9?JT)#m04OR#jA+<-9BK#Fb$SOk3rd#@!W1aN4(3AQ`>Es zRjYGImz&kX3qH6NaBRbJe9+}2o*bc+&v9ISNRRQe|{_ z2u4suS@{H>8oiq&L5b@uvuTa>&DSU^uAQ3GdZ5gn>EA!3gSuFrDvk^|ySY?{VOq>s zogytP@GeXG+&vFgn!(UR0(qaNWfxYB{q6fNC`4nWZMu|OQ zv{BYzs-P%R&!(Z1tkjM&8;rPr^T1I3i$`%s4i9px_*@yI#@O|6kd=+01c450>C5+@ z;_6py{B5n$Vg|i>m4_<(JxuB_>P%3F_-NRu>M*lsFOTeRZE$^;aUn6`<{A)WJEs}uW)}Ak8KDxUY_?t9upzy|u!_L0`VdPIv}^c@6{-HiX7c&J z*!bQ4KiTMpJp*~qX&2(__pOVoZFOO&Hms8lZGO34<3Nt=bDg&ed=6-@Pn(ezyVIEf zC(#kIxSpW=UFbCoHnEobj7TQ4f;3uie)7lGhTI?cPvovc^M9WM`?1Ep|w<=zOPv^bC}^#5lz>4sslPCbK< zhJOY{rMLbs#bf&%AX=5p17Ic1N>SP(#*Kv&>GDl!uX18JvpD5WdUd4U5Wh-qcE7Pc zb4B_Jzq#Dj@J6}RKo_atf`u8T38<|4M&s!R1CdQd9MbK za9}EAM(6w+Y5<)L_xX75ml{;1Pl*ZUUJ~5=txT$9$w9-agO^LjJ;D{3cH056f%3%Y z`~f4-6mb2TKVUJ8ej*v=4%^dm90ftNng!Ow%iN~6#^n=k9`qX%h&~$dqUJ9}-0IeS z-R?OO!i5$EW@^im6S4%I`;OZ**ySpaqtoXkPC~ely~~E|?~ZXw!IfevVr2S6QJ*hQAFmMv+No13HoLy>S}xQaN=beHPJ}8T;9#S;PQ#-PWoh6HSI< zAkQ*3R6JCw1eptj8iLfD@PT1u3fvhST*>$)Me})BC>MB6i`ZX>oRQ@3c)O<~1`d3- z&D5A=syX2s&DjU?Pd%C7fDk0LUnO`l;1ZWI)MlK&6`_Y?e+x{6;E%(igESRmk}*WD z{aRIn|9RYm<+ZfmNLvcV>);^_U*C+o`yKxW zafPeB6sAaP#kNvgezyvEX9+CsDhTz_o!-3(3?nYg%IdCDG1lp({Qhk-4g1R~6|eX{ z2TEi81W0a>UG=mKQPh3$s{X7v4 zm@B_@-zVtUTNq-QZl`Mx(stTpjC|Wk!na~Bqn?z@s9zxq<|_uaY3*gq8QGULGtz<^ z6ZxzbR1^Bm9gN4Uw==*&lYa*B{m-DJiCyOFy^DVS2v^Mg-&9{KQ0&hXGO)((`uU?d z-+H%W?pH`R{_b}tG)Lc`Rk|I`sK20t`0z{zv7PZpJ2SPM{5)Kf8SP|*h3|I8VCoxT z!wA>;Jl)^@AQX;p*TZ5Ti%A_Xr{F@M6STA9AMMEr<~;1F3qsj^w8`fYt^`&bSDw_9 zI+3=2DB&3K!d&7#VmGl2tcgDry8lmw7a5mf6Y(1rJl-m~ z;>RU#T}E6=^x-f1bH6hW&r}t><=pjBACT-p?J1jAhu5(;eUhx%$c%~KApX5VAKY)O zbuqnyMBB4NRq*BX!_aNqSD9v5A4VDvuJ;e3$CavLif4E4_iXZ`EbZ!8*@}yo47t6D z;3hx*sy*rJl{;yZj^>B2yEX(*>=Vpz(*V>@S*L7%l}+_~%PlHodnLAC{0B)64K5Hv zHiP2yi`RbSs#dz2^ce6nL1Od;hR211P^6cmGDZ3@ps!=#LQ6td|im zZQZC&_F{TcS_DzI)KD!%v13Kz3iUIFQEQv>F=5m>HJiw#*UngJo93)f8-usv^};@C zHaE79H89tjbH<3xYnHgl-98SOOg*90tw4iR?S?IKLw=?n%s!Kd-_#%epvDAK!+-d_ z`yOvypGQeH{)5`xd<;x2$nz)lcWSIi)c=F}yt5y%JtEs^-M95!hcV(|WmylV<4hJ4 zQ=rE$a_yk@CMwX8C{`q;XSf#XhnjvTZ3^=($G!v}v*M|mezA_79?ajn?83LrKC^HB zBENAP29vA7|3Ti&&V?1p@_&#|8_R9p$E0kmy8K1nYbR^ht_&Nie>;@7r=(f4`RcMIEJJBnb63m%!YQ9u8T2Go8T^jpjkXISRf zoXPiB=*X-*JojkYi(|4XTc3f@RXJ{yS0Z-v=v&ch>_9WBOZ&!sUC<_6>O^T@ERwvY z89LJM$s8Amcr8&g>qCxCeFQ;`wK&csdeqn`NdV*iu*TR+W=mrS+%Zwh{2|YA5|L#i zH3egDRklY+YyDkK6!PEQOiyBE-c>^$A|ZnS$c7n6~yUuF7W-g|wN52OKFb z6seg}9}Atsj=Jz7w}2uL{-u`^3U(cU%oDCkcUTMs=;?-w^}uBBQ?Wc7;v5^OiLM{}olOFt1I3iO zd>9F&X3Qr5LLbW#i{u7{r@5l7(*lm==X`g#6uiq0OU4KlXO>TQO8FJajl`v9#JDQk zQ_2e0KO|Y}!ds__aY}Uuy(SAV^}2gswJlWq%cJgX(a6Bxz%G4e%>OX?ldJN&bFgiu zVfkMsKj82%p;Wj6;9bWibT|=&L_j#C2}}!_+!r#|5?Vg-%4_qmc&KqR1V*+Fd!8)# ztd^9<2wY`=1`4YaDAw{Es{N5}E7X*=-dKp#m1jh6yawJ)9{Tq(2{RnXH3J=Ry#!&#jt9}`(vKa<=z1f1jX*S5(pTO-koTo7q z>(JnC?>-*-GJt#rln=rCtZ)}JVn3OSh|2j(yz&J?Rm{N_(uK@`47|@-{SB?&Lqz5hDS^{`G3`rviFfR03pd> ze_!D1z!$hCAS9El`*To3PUj|U;qeIZATnDld3(1ZHrs`a$fF)>a!O+x5b{!U?hMK! z%o~@r+oJ@_knY4IeG=YGaS;Sg-f~3$*bwG@BBKkn8@~* zLZm+A-6Nu{F+$pjZfIL$HQJm~PdWteQX)(!4F-7F&4f{QaWW|8!)FRk zsoC8*IWi1$eG(5v>aj?6i4+1=_F7-coPBzqbghHFLtP@%bng4~D#?vcK{$OFua1-< z+Y2+p8%y_bJ#Sd2xU}mMPY}3NlcwKv-YN`S{>{S(5Vt68&Y{>_fZXHFoZ6?HG;}8% zeS(35ZEPta!Tmm+=dG>{jXdpa@u;C5y@I#5;44_p^L2yn2k;jX?Gb&%eJX@w#J$@$ zg#IVxUzpeEXN!d_mb!rW`^Jq!#mxKCJnXZUGwJR|yS0ydTI=%PQ~@-yqaPmU#5#Jyi1EKPRzGk1bB#c+PtY)!w;Syjq^*k|&A}r!4&Z}Wwazd

    u}V}rKbW|XPy5Ht`v*hyKq?(km!G$ln@D4yJw6b~kTw$2g2&nTqxvCJ3BFDKAb(Fo!$7nad3x<<>nV5+PY|{@S!G&+sRr4sHk}oQHk-(JrQFQ0R%IEz{9I zCdL~5WR%PW42LfP%{~JqBerv>&l4>elG*QPr6R$DP{O<*3Kiw1ZXa#}Z`QvlKfv$CW&b2PI0^RZVEUIWw1fCBW(Q+OnH zq>w8ZWljN+94QB;QvCTRL~MI(zW)10aMza0ciW)@E9o~7d=@U5CSh?0TNw9q5gGhn zw+H;UhykYo0+8vIh^C4rqUuh~F5rZ+py*U1BPhFCjA-*!6~WN2!?qap zzMo46e8VhN6Wz%gSg=It56norR=iYjG31b*=_(;O^v)}2GuKH2s+wWa4DJ0FR{l#D z@96$Q2S5)wKo{OWbp2Hw_TTFMl!lF%ssZHZh!9&HvV`@frA8(cIcg8cAS+*O3Cp6V z8iNZyw@Qj_bml68Vlr*uzW;Kt@$^gxSJSWK%Ihi%6rKOprL{Xdkm*!=p>Hys*7`R4)J51v zu81Q-e5+@fkAVlhQDc|d?uXlI;XO=GRo{kez!7wxT*DIDbAY)lHih`6BCRY{(x$@q zy7UV2&kk*9lak&B2-XJ($M}cv56N=&Hnt9bdNm`u#@deoMfiJX@6FB#V>Xy6O0XCZ zrNx58H(VEQQcL1hp@`BqcWEwGgQ4%0ju#8uIDGs5*1F}>ROB;cBv49a+&O{i?Om)a z#KT;bT)bxBoGpH&Lqr^o&YN~a6>|`D@FX{Q`zaIGM{DgSQCjqL zP>2O!P9_A9-TiyaVeMq4Z)6XcmHEi-Ce+rgcQ`OQHjDUUM6?=0;#j~~>T~&3zD0-- zH{1e|VN{=F4Kp&VT}YlAOi-6+@D+zLOCdXtMSS+!#ZXx$=wMfDb`&V7u_s zEZP*LIglJ*+NnErEI2Y%RS|_6*H7~6<)30H z;g;MH?7_Wvi92dn@l|_P<0TWS)HuZMQvjo-z?N!0#!6jRvpI{1FQ7r-xt5)|!?8xMHz{%9`SXAX^&IT7%s^xp^6c=(B ziIuxeMa5IbPwj8NhUEwaONNdUGUM4$>N8PKp#>NFa!RsuaGos2OM|ojpSI3C9IE|~ z<6~b&LopLPlyZ zjLB9~Q~XZdx^kY*A9J2_p7VZv&-p&j_j^8{&-;oKWp2@uaCOp^26y&udH#Z(vX~RRN%qR6YrV(c}UZgRSNEa{H2!4Xu z%nUD#KDj|YaoxERCV)F*;r)=~vVe8w`PRGT#&k!b%wNX0G4-FCZ<91bEc)ta-DMTX zrtnDvm4?bC)dIVQv?0aJP3XkowE$zw!rw&@M~erZ9x*c(EeUTgw20J9&nSgCtLLOt zBjnr*`PLMk8A{oi9XppQdj#GA{dkV7dvnrjivaus*He0Zfm+YAiIed~IdL1EeITnG;cu!ja3E=2}6Qw@;=p zm_%2)-+R{(ai3_Epnc~kwLl7>&www+pq_R zl3WwDva2tu6FC26 ziy=2*o$1HOHKKzile>)*;Y6CN^XHs9r$(pg7e(kyi?*y1tx=!2@vyV_c$`D2c6NJY zKl3@0nZ;@XTJ(m_EryL8Jp{IyRL z;r=Z*lrvsbc%=P=>JpxF3Um-9*0e(kt% zne7V7HgxxlRoOF&B5^<9t#{*6yoY^QE9JIG?Zu6xH@qsN25xS;2&?2Z6;WRa0z*uXI`555%MnKM8tNz z(1oB9f6HMk^86|NGh6~tq5Thk@mf_sA>_oi`eLez$1*n4X<%t;{Bv8$`c&YcHhSK- z@}EkluA#MkXdY!gHjhw)w-4I-e2I8Jt=iv~;2J>?T4Ph^48)t&ldre(&k2rfx1DP?XZa2n@?;JY0S;-<@Fb$_v)p za}6)`OJE#o9~Q6M{|uC{231Zj3rRc;q7U89v;Keh<}{ zQ(15{=j+V!HJ%M#^+T`|hV{4&=!gAIRSLr8^7%zI*H*RabiHpMND#DX?mgJ^XC^`L z#VE5k=v)q$CzHdBTepksY>TcP4m#7r8f%N z6vZt!ewjPnkh~Xl?QGzX^u%w^w5V8tdpI)nO!#H;gGSYi!5DHXl%3n)pzf4FY@ai$ zOb(XgINvYftuGTGcIUETN*NP-7H)68RNl~Jt`DJBes0W%?^E%=Nbw}c|f^6z&d+>wip`J3a#N2$jib%Uo zFI}&#@fU6sABxx3YSA(N329%!#uz4M@)6^eE|*|qF?~*#x&gesm!(OyV$10_LkJ^c zguHN0IuXJWLsp(p?y&UP?_J>jKjUsychP`79`Uj?QJob^)|e@t%-^>ny1e+(ySf=z z_^RSkwf=decRDoNNQiDp<7=g{)4a3iN6xoJ(rx_&1@iM@acExW`e*f6^nGbW9>SIA=z zD@&4cWTzF)rX`xytCqX8K{8rDge?++pk-!vD~D4;9TzlNFH;0?TT`MqM+$b;f^`XI z#MEyfZjvBSktbG%&SR9v+npdjdC>E3ShSQBVMK&OHudP&IxN_X@k)9#d`hCjetDgcLp8Pv>{}d7 zkcgrV6X_D@h}U=SmPO5t&zD741on;QJ4Sg-))Gh`Mkjxzgf)84yIdrOuf%b zeO*rP#I?iky$_vUxIPfUoO=Hm6|EIL^NR4d!^h9*dfS!3$J_Vh=z2OlXOEYTl?t~L z>C&*enYr>hAh;`8c)_7IK7G(WJIiJKei-_F2G56qK&i#l{UwY1FoR5Ex7Rlpd-FI2LK}Y8u08tllx-C z_Nf4k_W@0b?`r%Oa4%ow|33MTke~Jfu2%Th6eS46(V7Fozl+2NM92RcmO)`Y9$)QB za36p_DEVEFVd*y5B?f(763hYnq&pn-knfxyOcbyjY`pBqrO@BxAR7iu02>iI1nY=z zgk81-SP!lm@91e!-}K-bG8h5QzjqKbaX-z*!2ocgy8~#7{}J%Bv=__*=Z-t9KN5aq z?am~@6mY7wLwS_=tygv>USK^q9^BEpr~WX+c1MSnrX0Ws`ZB8aLR^61aWU)5(f MergeableStore[(EntityWithVersion, BatchID), TopKClustersWithScores] = { - (storePath: String, serviceIdentifier: ServiceIdentifier) => - Memcache.getMemcacheStore[(EntityWithVersion, BatchID), TopKClustersWithScores]( - ClientConfigs.tweetTopKClustersMemcacheConfig(storePath, serviceIdentifier) - )( - BatchPairImplicits.keyInjection[EntityWithVersion](Implicits.topKClustersKeyCodec), - topKClustersWithScoresCodec, - topKClustersWithScoresMonoid - ) - } - - final lazy val defaultStore: ( - String, - ServiceIdentifier - ) => ReadableStore[EntityWithVersion, TopKClustersWithScores] = { - (storePath: String, serviceIdentifier: ServiceIdentifier) => - // note that DefaultTopKClustersForEntityReadableStore is reused here because they share the - // same structure - TopKClustersForEntityReadableStore( - ClientStore(this.onlineMergeableStore(storePath, serviceIdentifier), Configs.batchesToKeep)) - } -} - -case class TweetKey( - tweetId: Long, - modelVersion: String, - embeddingType: EmbeddingType = EmbeddingType.FavBasedTweet, - halfLife: Duration = Configs.HalfLife) { - - lazy val modelVersionThrift: ModelVersion = ModelVersions.toModelVersion(modelVersion) - - lazy val simClustersEmbeddingId: SimClustersEmbeddingId = - SimClustersEmbeddingId(embeddingType, modelVersionThrift, InternalId.TweetId(tweetId)) -} - -object TweetKey { - - def apply(simClustersEmbeddingId: SimClustersEmbeddingId): TweetKey = { - simClustersEmbeddingId match { - case SimClustersEmbeddingId(embeddingType, modelVersion, InternalId.TweetId(tweetId)) => - TweetKey(tweetId, ModelVersions.toKnownForModelVersion(modelVersion), embeddingType) - case id => - throw new IllegalArgumentException(s"Invalid $id for TweetKey") - } - } - -} - -case class TopKClustersForTweetKeyReadableStore( - proxyMap: Map[(EmbeddingType, String), ReadableStore[EntityWithVersion, TopKClustersWithScores]], - halfLifeDuration: Duration, - topKClustersWithScoresToSeq: TopKClustersWithScores => Seq[(Int, Double)], - maxResult: Option[Int] = None) - extends ReadableStore[TweetKey, Seq[(Int, Double)]] { - - private val modifiedProxyMap = proxyMap.map { - case ((embeddingType, modelVersion), proxy) => - (embeddingType, modelVersion) -> proxy.composeKeyMapping { key: TweetKey => - EntityWithVersion( - SimClusterEntity.TweetId(key.tweetId), - // Fast fail if the model version is invalid. - ModelVersions.toModelVersion(modelVersion)) - } - } - - override def multiGet[K1 <: TweetKey]( - keys: Set[K1] - ): Map[K1, Future[Option[Seq[(Int, Double)]]]] = { - val (validKeys, invalidKeys) = keys.partition { tweetKey => - proxyMap.contains((tweetKey.embeddingType, tweetKey.modelVersion)) && - halfLifeDuration.inMilliseconds == Configs.HalfLifeInMs - } - - val resultsFuture = validKeys.groupBy(key => (key.embeddingType, key.modelVersion)).flatMap { - case (typeModelTuple, subKeys) => - modifiedProxyMap(typeModelTuple).multiGet(subKeys) - } - - resultsFuture.mapValues { topKClustersWithScoresFut => - for (topKClustersWithScoresOpt <- topKClustersWithScoresFut) yield { - for { - topKClustersWithScores <- topKClustersWithScoresOpt - } yield { - val results = topKClustersWithScoresToSeq(topKClustersWithScores) - maxResult match { - case Some(max) => - results.take(max) - case None => - results - } - } - } - } ++ invalidKeys.map { key => (key, Future.None) }.toMap - } -} - -object TopKClustersForTweetKeyReadableStore { - // Use Prod cache by default - def defaultProxyMap( - serviceIdentifier: ServiceIdentifier - ): Map[(EmbeddingType, String), ReadableStore[EntityWithVersion, TopKClustersWithScores]] = - SimClustersProfile.tweetJobProfileMap(Environment.Prod).mapValues { profile => - TopKClustersForTweetReadableStore - .defaultStore(profile.clusterTopKTweetsPath, serviceIdentifier) - } - val defaultHalfLife: Duration = Duration.fromMilliseconds(Configs.HalfLifeInMs) - - def defaultStore( - serviceIdentifier: ServiceIdentifier - ): ReadableStore[TweetKey, Seq[(Int, Double)]] = - TopKClustersForTweetKeyReadableStore( - defaultProxyMap(serviceIdentifier), - defaultHalfLife, - getTopClustersWithScoresByFavClusterNormalizedScore - ) - - def overrideLimitDefaultStore( - maxResult: Int, - serviceIdentifier: ServiceIdentifier - ): ReadableStore[TweetKey, Seq[(Int, Double)]] = { - TopKClustersForTweetKeyReadableStore( - defaultProxyMap(serviceIdentifier), - defaultHalfLife, - getTopClustersWithScoresByFavClusterNormalizedScore, - Some(maxResult) - ) - } - - private def getTopClustersWithScoresByFavClusterNormalizedScore( - topKClustersWithScores: TopKClustersWithScores - ): Seq[(Int, Double)] = { - { - for { - clusterIdWIthScores <- topKClustersWithScores.topClustersByFavClusterNormalizedScore - } yield { - ( - for { - (clusterId, scores) <- clusterIdWIthScores - favClusterNormalized8HrHalfLifeScore <- scores.favClusterNormalized8HrHalfLifeScore - if favClusterNormalized8HrHalfLifeScore.value > 0.0 - } yield { - clusterId -> favClusterNormalized8HrHalfLifeScore.value - } - ).toSeq.sortBy(-_._2) - } - }.getOrElse(Nil) - } - -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKTweetsForClusterReadableStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKTweetsForClusterReadableStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..420cccb9247af813e36f007cc1a6f1f95479e63a GIT binary patch literal 39332 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�@##LGJd zrlrugxbel;eAx@PGNuMI7ne=U-gfo>1ut;`J|(}J$&BS$(`MZL$xMAQN*Q#<%9$WZBva*LxF^b7^T9kp~p!I z1rk_9#Dzp%_6(@C&)byC+3}m8&ylACcgi@fdSxN>dqQAW&Z(cLWntvtes$b&S^hMK z<$>i7BL(#OVeyuob0dS_>$6rzJiC+wrd;!1=UX;+udoHsOEDd=_dT;#Uf<@5!?-Jz zT%6-n@B&R&RyB=*oG2ZbTJ!&XXJc0FTyUD-g%6y#2P{*-q#0;Gj z2eaPM4?9>$2e1o*pwxaXkSgBzO3)I8k7*Kx7rfh|TRbwJw5XYL%qFCzBWa+dHf;r# zENLVse_6~UBc^fQ(=V>_SgvuZ9aeAL5!~8xf-@v!+9%UNlFz1v#7uW#hVU{d=Akr8 z6jqUD(W@xWpTY)QIwG8+Y+Ktr|Bn$Q7Zn(6TA{yXM^rm^*fAzfkJ>8I51(LW)I}Jc zEx8tQn!W0^75a4s`J>>|8fEBp#;@F# z1>#(}VyPL$F3U=#s!op%N3xq#w;pNvHy+D=wo_CdjxnT5g7s~DAUvBxO*DL_J&?@l zc*%xE@R1h&Y=Aofud<6~`cx$`Pj_75|l}Dih1`5Es|ZlSa}u z%f)!#7U&d3SzRr@&Xn?bFh1+0|NJ<^i>-#lDNM$Z>XYzeIeH$n>P_I6$!`-$qXX;P zEt>cEd%btY)`DF0z5m@_fp6TYr_HVV_9iSutugmy$)RYeN@Riogm6cQSwtk1c({5w zr7^rq^<8*^mr3dLK}^?WUkBkZTym;tUXWRnqpIWf;0IfRGr@6tIpZYrkdP~TW#|@i z_|5#dDlL0uCTUWYxDGtM7lrCdco$>u`e5JjVpIHSNH`EhC|+tvs!`vW+bPZNiS|ob zJ06dN_7Nh}JSt0sgaI84p1Ey_XL0tUQ&BZg_$u#Ok@^)FUs&J3+|GMvnFu1=mV8YG za$(}R2K+52DY~H`vsmoi#B8fb>{MZ9NWDhj5N61Gf%mF_U{L}o3o{3+Hkp}&;)U-5 zb&6$F97^++9D6Jm6LtM=t~wjC-YKR^RGH3^?jSNyU5eI`i3$-!>4v~*x)&e#Yg&4V zjw(V|)tjJ_RB2m`IoD{}D<)Wx1478B>GapZIZ+S`s_Bf0`zYNq*<9;-P+aX-zgeso zV~%cNeou_A#f&254FU^#dxQsVK?qsaqnrb4ZmCz`HtIl(hk6Zx-+{B%-#VXWMLlB>x>^501ni5cuhFVa}b&!Ks|!JkPfN zREsWP2!54LQ9lov$)6+2&t-&=7?HJl02p5`#foJ$!l_2o2ukI5U!Cudp zABWH!c6f02uZJC3)OwSez77Q?$AKT=aXOGnhN5Zdl}GW(fQQ-&#N2+!j$c0{&;|ls zKMMqd?OnYrull*$dz%07&d3S;pgQUsz@-Erj?DNA4g4c1UI7&U`}n)AJvk5+!Dx63 zxTFUFvhD*;0WH6uJ+^KhyOC&e_}cLBArb(0rUHRj_Q8XJmfvt|clW>DweaV-!_SyN zAjt&s&eMQ_*v%XO6y7d??SF&2B6-^1uK4zK?gI?sF8qJX|0MbAD4=Rz(cyfPm4}U85 ck0rL>JJi>q23F9IRmBRj29}3J@{hCs0Jy59KL7v# literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKTweetsForClusterReadableStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKTweetsForClusterReadableStore.scala deleted file mode 100644 index 39284424f..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TopKTweetsForClusterReadableStore.scala +++ /dev/null @@ -1,298 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.bijection.Injection -import com.twitter.bijection.scrooge.CompactScalaCodec -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.frigate.common.store.strato.StratoStore -import com.twitter.relevance_platform.simclustersann.multicluster.ClusterTweetIndexStoreConfig -import com.twitter.simclusters_v2.common.ClusterId -import com.twitter.simclusters_v2.common.ModelVersions -import com.twitter.simclusters_v2.common.TweetId -import com.twitter.simclusters_v2.summingbird.common.ClientConfigs -import com.twitter.simclusters_v2.summingbird.common.Configs -import com.twitter.simclusters_v2.summingbird.common.EntityUtil -import com.twitter.simclusters_v2.summingbird.common.Implicits -import com.twitter.simclusters_v2.summingbird.common.Implicits.batcher -import com.twitter.simclusters_v2.summingbird.common.Implicits.topKTweetsWithScoresCodec -import com.twitter.simclusters_v2.summingbird.common.Implicits.topKTweetsWithScoresMonoid -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile -import com.twitter.simclusters_v2.summingbird.common.SimClustersProfile.Environment -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.FullClusterId -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.simclusters_v2.thriftscala.MultiModelTopKTweetsWithScores -import com.twitter.simclusters_v2.thriftscala.TopKTweetsWithScores -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus.Store -import com.twitter.storehaus.algebra.MergeableStore -import com.twitter.storehaus_internal.manhattan.ManhattanRO -import com.twitter.storehaus_internal.manhattan.ManhattanROConfig -import com.twitter.storehaus_internal.memcache.Memcache -import com.twitter.storehaus_internal.util.ApplicationID -import com.twitter.storehaus_internal.util.DatasetName -import com.twitter.storehaus_internal.util.HDFSPath -import com.twitter.strato.client.Client -import com.twitter.strato.thrift.ScroogeConvImplicits._ -import com.twitter.summingbird.batch.BatchID -import com.twitter.summingbird.store.ClientStore -import com.twitter.summingbird_internal.bijection.BatchPairImplicits -import com.twitter.util.Duration -import com.twitter.util.Future -import com.twitter.util.Time - -/** - * Comparing to underlyingStore, this store decays all the values to current timestamp - */ -case class TopKTweetsForClusterReadableStore( - underlyingStore: ReadableStore[FullClusterId, TopKTweetsWithScores]) - extends ReadableStore[FullClusterId, TopKTweetsWithScores] { - - override def multiGet[K1 <: FullClusterId]( - ks: Set[K1] - ): Map[K1, Future[Option[TopKTweetsWithScores]]] = { - val nowInMs = Time.now.inMilliseconds - underlyingStore - .multiGet(ks) - .mapValues { resFuture => - resFuture.map { resOpt => - resOpt.map { tweetsWithScores => - tweetsWithScores.copy( - topTweetsByFavClusterNormalizedScore = EntityUtil.updateScoreWithLatestTimestamp( - tweetsWithScores.topTweetsByFavClusterNormalizedScore, - nowInMs), - topTweetsByFollowClusterNormalizedScore = EntityUtil.updateScoreWithLatestTimestamp( - tweetsWithScores.topTweetsByFollowClusterNormalizedScore, - nowInMs) - ) - } - } - } - } -} - -object TopKTweetsForClusterReadableStore { - - private[summingbird] final lazy val onlineMergeableStore: ( - String, - ServiceIdentifier - ) => MergeableStore[(FullClusterId, BatchID), TopKTweetsWithScores] = { - (storePath: String, serviceIdentifier: ServiceIdentifier) => - Memcache.getMemcacheStore[(FullClusterId, BatchID), TopKTweetsWithScores]( - ClientConfigs.clusterTopTweetsMemcacheConfig(storePath, serviceIdentifier) - )( - BatchPairImplicits.keyInjection[FullClusterId](Implicits.fullClusterIdCodec), - topKTweetsWithScoresCodec, - topKTweetsWithScoresMonoid - ) - } - - final lazy val defaultStore: ( - String, - ServiceIdentifier - ) => ReadableStore[FullClusterId, TopKTweetsWithScores] = { - (storePath: String, serviceIdentifier: ServiceIdentifier) => - TopKTweetsForClusterReadableStore( - ClientStore( - TopKTweetsForClusterReadableStore.onlineMergeableStore(storePath, serviceIdentifier), - Configs.batchesToKeep - )) - } -} - -object MultiModelTopKTweetsForClusterReadableStore { - - private[simclusters_v2] def MultiModelTopKTweetsForClusterReadableStore( - stratoClient: Client, - column: String - ): Store[Int, MultiModelTopKTweetsWithScores] = { - StratoStore - .withUnitView[Int, MultiModelTopKTweetsWithScores](stratoClient, column) - } -} - -case class ClusterKey( - clusterId: ClusterId, - modelVersion: String, - embeddingType: EmbeddingType = EmbeddingType.FavBasedTweet, - halfLife: Duration = Configs.HalfLife) { - lazy val modelVersionThrift: ModelVersion = ModelVersions.toModelVersion(modelVersion) -} - -case class TopKTweetsForClusterKeyReadableStore( - proxyMap: Map[(EmbeddingType, String), ReadableStore[FullClusterId, TopKTweetsWithScores]], - halfLife: Duration, - topKTweetsWithScoresToSeq: TopKTweetsWithScores => Seq[(Long, Double)], - maxResult: Option[Int] = None) - extends ReadableStore[ClusterKey, Seq[(Long, Double)]] { - - private val modifiedProxyMap = proxyMap.map { - case (typeModelTuple, proxy) => - typeModelTuple -> proxy.composeKeyMapping { key: ClusterKey => - FullClusterId(ModelVersions.toModelVersion(typeModelTuple._2), key.clusterId) - } - } - - override def multiGet[K1 <: ClusterKey]( - keys: Set[K1] - ): Map[K1, Future[Option[Seq[(Long, Double)]]]] = { - val (validKeys, invalidKeys) = keys.partition { clusterKey => - proxyMap.contains( - (clusterKey.embeddingType, clusterKey.modelVersion)) && clusterKey.halfLife == halfLife - } - - val resultsFuture = validKeys.groupBy(key => (key.embeddingType, key.modelVersion)).flatMap { - case (typeModelTuple, subKeys) => - modifiedProxyMap(typeModelTuple).multiGet(subKeys) - } - - resultsFuture.mapValues { topKTweetsWithScoresFut => - for (topKTweetsWithScoresOpt <- topKTweetsWithScoresFut) yield { - for { - topKTweetsWithScores <- topKTweetsWithScoresOpt - } yield { - val results = topKTweetsWithScoresToSeq(topKTweetsWithScores) - maxResult match { - case Some(max) => - results.take(max) - case None => - results - } - } - } - } ++ invalidKeys.map { key => (key, Future.None) }.toMap - } -} - -object TopKTweetsForClusterKeyReadableStore { - implicit val fullClusterIdInjection: Injection[FullClusterId, Array[Byte]] = - CompactScalaCodec(FullClusterId) - - // Use Prod cache by default - def defaultProxyMap( - serviceIdentifier: ServiceIdentifier, - ): Map[(EmbeddingType, String), ReadableStore[FullClusterId, TopKTweetsWithScores]] = - SimClustersProfile.tweetJobProfileMap(Environment.Prod).mapValues { profile => - TopKTweetsForClusterReadableStore - .defaultStore(profile.clusterTopKTweetsPath, serviceIdentifier) - } - val defaultHalfLife: Duration = Configs.HalfLife - - def defaultStore( - serviceIdentifier: ServiceIdentifier - ): ReadableStore[ClusterKey, Seq[(Long, Double)]] = - TopKTweetsForClusterKeyReadableStore( - defaultProxyMap(serviceIdentifier), - defaultHalfLife, - getTopTweetsWithScoresByFavClusterNormalizedScore - ) - - def storeUsingFollowClusterNormalizedScore( - serviceIdentifier: ServiceIdentifier - ): ReadableStore[ClusterKey, Seq[(Long, Double)]] = - TopKTweetsForClusterKeyReadableStore( - defaultProxyMap(serviceIdentifier), - defaultHalfLife, - getTopTweetsWithScoresByFollowClusterNormalizedScore - ) - - def overrideLimitDefaultStore( - maxResult: Int, - serviceIdentifier: ServiceIdentifier, - ): ReadableStore[ClusterKey, Seq[(Long, Double)]] = { - TopKTweetsForClusterKeyReadableStore( - defaultProxyMap(serviceIdentifier), - defaultHalfLife, - getTopTweetsWithScoresByFavClusterNormalizedScore, - Some(maxResult) - ) - } - - private def getTopTweetsWithScoresByFavClusterNormalizedScore( - topKTweets: TopKTweetsWithScores - ): Seq[(Long, Double)] = { - { - for { - tweetIdWithScores <- topKTweets.topTweetsByFavClusterNormalizedScore - } yield { - ( - for { - (tweetId, scores) <- tweetIdWithScores - favClusterNormalized8HrHalfLifeScore <- scores.favClusterNormalized8HrHalfLifeScore - if favClusterNormalized8HrHalfLifeScore.value > 0.0 - } yield { - tweetId -> favClusterNormalized8HrHalfLifeScore.value - } - ).toSeq.sortBy(-_._2) - } - }.getOrElse(Nil) - } - - private def getTopTweetsWithScoresByFollowClusterNormalizedScore( - topKTweets: TopKTweetsWithScores - ): Seq[(Long, Double)] = { - { - for { - tweetIdWithScores <- topKTweets.topTweetsByFollowClusterNormalizedScore - } yield { - ( - for { - (tweetId, scores) <- tweetIdWithScores - followClusterNormalized8HrHalfLifeScore <- - scores.followClusterNormalized8HrHalfLifeScore - if followClusterNormalized8HrHalfLifeScore.value > 0.0 - } yield { - tweetId -> followClusterNormalized8HrHalfLifeScore.value - } - ).toSeq.sortBy(-_._2) - } - }.getOrElse(Nil) - } - - def getClusterToTopKTweetsStoreFromManhattanRO( - maxResults: Int, - manhattanConfig: ClusterTweetIndexStoreConfig.Manhattan, - serviceIdentifier: ServiceIdentifier, - ): ReadableStore[ClusterKey, Seq[(TweetId, Double)]] = { - ManhattanRO - .getReadableStoreWithMtls[FullClusterId, TopKTweetsWithScores]( - ManhattanROConfig( - HDFSPath(""), - ApplicationID(manhattanConfig.applicationID), - DatasetName(manhattanConfig.datasetName), - manhattanConfig.manhattanCluster - ), - ManhattanKVClientMtlsParams(serviceIdentifier) - ).composeKeyMapping[ClusterKey] { clusterKey => - FullClusterId( - modelVersion = ModelVersions.toModelVersion(clusterKey.modelVersion), - clusterId = clusterKey.clusterId - ) - }.mapValues { topKTweetsWithScores => - // Only return maxResults tweets for each cluster Id - getTopTweetsWithScoresByFavClusterNormalizedScore(topKTweetsWithScores).take(maxResults) - } - } - - def getClusterToTopKTweetsStoreFromMemCache( - maxResults: Int, - memCacheConfig: ClusterTweetIndexStoreConfig.Memcached, - serviceIdentifier: ServiceIdentifier, - ): ReadableStore[ClusterKey, Seq[(TweetId, Double)]] = { - TopKTweetsForClusterReadableStore( - ClientStore( - TopKTweetsForClusterReadableStore - .onlineMergeableStore(memCacheConfig.memcachedDest, serviceIdentifier), - Configs.batchesToKeep - )) - .composeKeyMapping[ClusterKey] { clusterKey => - FullClusterId( - modelVersion = ModelVersions.toModelVersion(clusterKey.modelVersion), - clusterId = clusterKey.clusterId - ) - }.mapValues { topKTweetsWithScores => - // Only return maxResults tweets for each cluster Id - getTopTweetsWithScoresByFavClusterNormalizedScore(topKTweetsWithScores).take(maxResults) - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/TweetStatusCountsStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/TweetStatusCountsStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..33ed08de589c010fdc7e45294383bdafe01188bb GIT binary patch literal 37052 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 literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserInterestedInReadableStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserInterestedInReadableStore.scala deleted file mode 100644 index e318c9185..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserInterestedInReadableStore.scala +++ /dev/null @@ -1,263 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.bijection.Injection -import com.twitter.bijection.scrooge.CompactScalaCodec -import com.twitter.simclusters_v2.common.ModelVersions -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.common.UserId -import com.twitter.simclusters_v2.thriftscala.ClustersUserIsInterestedIn -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.ManhattanCluster -import com.twitter.storehaus_internal.manhattan.Athena -import com.twitter.storehaus_internal.manhattan.ManhattanRO -import com.twitter.storehaus_internal.manhattan.ManhattanROConfig -import com.twitter.storehaus_internal.manhattan.Nash -import com.twitter.storehaus_internal.util.ApplicationID -import com.twitter.storehaus_internal.util.DatasetName -import com.twitter.storehaus_internal.util.HDFSPath - -object UserInterestedInReadableStore { - - // Clusters whose size is greater than this will not be considered. This is how the using UTEG - // experiment was run (because it could not process such clusters), and we don't have such a - // restriction for the Summingbird/Memcache implementation, but noticing that we aren't scoring - // tweets correctly in the big clusters. The fix for this seems a little involved, so for now - // let's just exclude such clusters. - val MaxClusterSizeForUserInterestedInDataset: Int = 5e6.toInt - - val modelVersionToDatasetMap: Map[String, String] = Map( - ModelVersions.Model20M145KDec11 -> "simclusters_v2_interested_in", - ModelVersions.Model20M145KUpdated -> "simclusters_v2_interested_in_20m_145k_updated", - ModelVersions.Model20M145K2020 -> "simclusters_v2_interested_in_20m_145k_2020" - ) - - // Producer embedding based User InterestedIn. - val modelVersionToDenserDatasetMap: Map[String, String] = Map( - ModelVersions.Model20M145KUpdated -> "simclusters_v2_interested_in_from_producer_embeddings_model20m145kupdated" - ) - - val modelVersionToIIAPEDatasetMap: Map[String, String] = Map( - ModelVersions.Model20M145K2020 -> "simclusters_v2_interested_in_from_ape_20m145k2020" - ) - - val modelVersionToIIKFLiteDatasetMap: Map[String, String] = Map( - ModelVersions.Model20M145K2020 -> "simclusters_v2_interested_in_lite_20m_145k_2020" - ) - - val modelVersionToNextInterestedInDatasetMap: Map[String, String] = Map( - ModelVersions.Model20M145K2020 -> "bet_consumer_embedding_v2" - ) - - val defaultModelVersion: String = ModelVersions.Model20M145KUpdated - val knownModelVersions: String = modelVersionToDatasetMap.keys.mkString(",") - - def defaultStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - modelVersion: String = defaultModelVersion - ): ReadableStore[UserId, ClustersUserIsInterestedIn] = { - if (!modelVersionToDatasetMap.contains(modelVersion)) { - throw new IllegalArgumentException( - "Unknown model version: " + modelVersion + ". Known model versions: " + knownModelVersions) - } - this.getStore("simclusters_v2", mhMtlsParams, modelVersionToDatasetMap(modelVersion)) - } - - def defaultSimClustersEmbeddingStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - embeddingType: EmbeddingType, - modelVersion: ModelVersion - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - defaultStoreWithMtls(mhMtlsParams, ModelVersions.toKnownForModelVersion(modelVersion)) - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(theEmbeddingType, theModelVersion, InternalId.UserId(userId)) - if theEmbeddingType == embeddingType && theModelVersion == modelVersion => - userId - }.mapValues( - toSimClustersEmbedding(_, embeddingType, Some(MaxClusterSizeForUserInterestedInDataset))) - } - - def defaultIIKFLiteStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - modelVersion: String = defaultModelVersion - ): ReadableStore[Long, ClustersUserIsInterestedIn] = { - if (!modelVersionToIIKFLiteDatasetMap.contains(modelVersion)) { - throw new IllegalArgumentException( - "Unknown model version: " + modelVersion + ". Known model versions: " + knownModelVersions) - } - getStore("simclusters_v2", mhMtlsParams, modelVersionToIIKFLiteDatasetMap(modelVersion)) - } - - def defaultIIPEStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - modelVersion: String = defaultModelVersion - ): ReadableStore[Long, ClustersUserIsInterestedIn] = { - if (!modelVersionToDatasetMap.contains(modelVersion)) { - throw new IllegalArgumentException( - "Unknown model version: " + modelVersion + ". Known model versions: " + knownModelVersions) - } - getStore("simclusters_v2", mhMtlsParams, modelVersionToDenserDatasetMap(modelVersion)) - } - - def defaultIIAPEStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - modelVersion: String = defaultModelVersion - ): ReadableStore[Long, ClustersUserIsInterestedIn] = { - if (!modelVersionToDatasetMap.contains(modelVersion)) { - throw new IllegalArgumentException( - "Unknown model version: " + modelVersion + ". Known model versions: " + knownModelVersions) - } - getStore("simclusters_v2", mhMtlsParams, modelVersionToIIAPEDatasetMap(modelVersion)) - } - - def defaultIIPESimClustersEmbeddingStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - embeddingType: EmbeddingType, - modelVersion: ModelVersion - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - defaultIIPEStoreWithMtls(mhMtlsParams, ModelVersions.toKnownForModelVersion(modelVersion)) - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(theEmbeddingType, theModelVersion, InternalId.UserId(userId)) - if theEmbeddingType == embeddingType && theModelVersion == modelVersion => - userId - - }.mapValues(toSimClustersEmbedding(_, embeddingType)) - } - - def defaultIIAPESimClustersEmbeddingStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - embeddingType: EmbeddingType, - modelVersion: ModelVersion - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - defaultIIAPEStoreWithMtls(mhMtlsParams, ModelVersions.toKnownForModelVersion(modelVersion)) - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(theEmbeddingType, theModelVersion, InternalId.UserId(userId)) - if theEmbeddingType == embeddingType && theModelVersion == modelVersion => - userId - }.mapValues(toSimClustersEmbedding(_, embeddingType)) - } - - def defaultNextInterestedInStoreWithMtls( - mhMtlsParams: ManhattanKVClientMtlsParams, - embeddingType: EmbeddingType, - modelVersion: ModelVersion - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - if (!modelVersionToNextInterestedInDatasetMap.contains( - ModelVersions.toKnownForModelVersion(modelVersion))) { - throw new IllegalArgumentException( - "Unknown model version: " + modelVersion + ". Known model versions: " + knownModelVersions) - } - val datasetName = modelVersionToNextInterestedInDatasetMap( - ModelVersions.toKnownForModelVersion(modelVersion)) - new SimClustersManhattanReadableStoreForReadWriteDataset( - appId = "kafka_beam_sink_bet_consumer_embedding_prod", - datasetName = datasetName, - label = datasetName, - mtlsParams = mhMtlsParams, - manhattanCluster = Nash - ).mapValues(toSimClustersEmbedding(_, embeddingType)) - } - - def getWithMtls( - appId: String, - mtlsParams: ManhattanKVClientMtlsParams, - modelVersion: String = defaultModelVersion - ): ReadableStore[Long, ClustersUserIsInterestedIn] = { - if (!modelVersionToDatasetMap.contains(modelVersion)) { - throw new IllegalArgumentException( - "Unknown model version: " + modelVersion + ". Known model versions: " + knownModelVersions) - } - this.getStore(appId, mtlsParams, modelVersionToDatasetMap(modelVersion)) - } - - /** - * @param appId Manhattan AppId - * @param mtlsParams MltsParams for s2s Authentication - * - * @return ReadableStore of user to cluster interestedIn data set - */ - def getStore( - appId: String, - mtlsParams: ManhattanKVClientMtlsParams, - datasetName: String, - manhattanCluster: ManhattanCluster = Athena - ): ReadableStore[Long, ClustersUserIsInterestedIn] = { - - implicit val keyInjection: Injection[Long, Array[Byte]] = Injection.long2BigEndian - implicit val userInterestsCodec: Injection[ClustersUserIsInterestedIn, Array[Byte]] = - CompactScalaCodec(ClustersUserIsInterestedIn) - - ManhattanRO.getReadableStoreWithMtls[Long, ClustersUserIsInterestedIn]( - ManhattanROConfig( - HDFSPath(""), // not needed - ApplicationID(appId), - DatasetName(datasetName), - manhattanCluster - ), - mtlsParams - ) - } - - /** - * - * @param record ClustersUserIsInterestedIn thrift struct from the MH data set - * @param embeddingType Embedding Type as defined in com.twitter.simclusters_v2.thriftscala.EmbeddingType - * @param maxClusterSizeOpt Option param to set max cluster size. - * We will not filter out clusters based on cluster size if it is None - * @return - */ - def toSimClustersEmbedding( - record: ClustersUserIsInterestedIn, - embeddingType: EmbeddingType, - maxClusterSizeOpt: Option[Int] = None - ): SimClustersEmbedding = { - val embedding = record.clusterIdToScores - .collect { - case (clusterId, clusterScores) if maxClusterSizeOpt.forall { maxClusterSize => - clusterScores.numUsersInterestedInThisClusterUpperBound.exists(_ < maxClusterSize) - } => - val score = embeddingType match { - case EmbeddingType.FavBasedUserInterestedIn => - clusterScores.favScore - case EmbeddingType.FollowBasedUserInterestedIn => - clusterScores.followScore - case EmbeddingType.LogFavBasedUserInterestedIn => - clusterScores.logFavScore - case EmbeddingType.FavBasedUserInterestedInFromPE => - clusterScores.favScore - case EmbeddingType.FollowBasedUserInterestedInFromPE => - clusterScores.followScore - case EmbeddingType.LogFavBasedUserInterestedInFromPE => - clusterScores.logFavScore - case EmbeddingType.LogFavBasedUserInterestedInFromAPE => - clusterScores.logFavScore - case EmbeddingType.FollowBasedUserInterestedInFromAPE => - clusterScores.followScore - case EmbeddingType.UserNextInterestedIn => - clusterScores.logFavScore - case EmbeddingType.LogFavBasedUserInterestedMaxpoolingAddressBookFromIIAPE => - clusterScores.logFavScore - case EmbeddingType.LogFavBasedUserInterestedAverageAddressBookFromIIAPE => - clusterScores.logFavScore - case EmbeddingType.LogFavBasedUserInterestedBooktypeMaxpoolingAddressBookFromIIAPE => - clusterScores.logFavScore - case EmbeddingType.LogFavBasedUserInterestedLargestDimMaxpoolingAddressBookFromIIAPE => - clusterScores.logFavScore - case EmbeddingType.LogFavBasedUserInterestedLouvainMaxpoolingAddressBookFromIIAPE => - clusterScores.logFavScore - case EmbeddingType.LogFavBasedUserInterestedConnectedMaxpoolingAddressBookFromIIAPE => - clusterScores.logFavScore - - case _ => - throw new IllegalArgumentException(s"unknown EmbeddingType: $embeddingType") - } - score.map(clusterId -> _) - }.flatten.toMap - - SimClustersEmbedding(embedding) - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserKnownForReadableStore.docx b/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserKnownForReadableStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..832fa48d22da9fda7a2a31106d7e747a2907123a GIT binary patch literal 37673 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%0AfSrK(Ef!?Qm6a5uCzkeGORDF z!A%Qt#I1sXM09Q+O?+8z${+{^nFIvC&XN91B@Co*4j!KQku5@m(*)CHobU<|_CG@+ zgZ?|@#hN)Vr0eBhA$gucmg>#_6*3D7nM5$G4^gf!M`@y%7|hv<+8P~egZeQVStwFD zjZxHK7HtIH&Jc=J)Zmsh5OJ+D#f3%`#J~b7B+v6)LXiuowxZPT+TyD)gkT;<#v)Z{ zJ=mdb2n>kRZ=o7q(cRk+n1+`x!Vn`tFux+ZC#M|ZS4@vvC4ZwfY8QEwBm1|3_74Xx zf(S#vpseM?I?Q5i(W+f#sN#?yv*tUmFVHaE)!M?KxR}7*2g6*Z52W?e|M7s%$7BxF zYc&B73?#{HcaK8x92o zE5o0-EQe>FZidpNH)8^LHvG?~S=NF8X@4YI#V5J(5P{$qhM)+6*}q--DLr?D`3iB1 z&9Klh^@?GsZ{!xq#)wXW%t_Sd?tt^(e56Gnj3`_fw6!3`-b^~=Y`GCH@!6W8Nv`_o`P|K|n+;FJ6sy>ongx&zMprft3g zvjQ$X=dT^7*ChV55YP?D@W^<1&prlm@3i|?y|1LoK5uO)kdFO^abZvsxQTEG6PbzO zpC_~ve?JLM5Db7E2ZPe^{TTEg^vmr>A$+Gr{5?86m^!;LtvwKWpR(cADDT9>*44z; z)5g}_B{>lqECW+^zk8$a&qMe_Kb;g89hFHnX*BBcHEM}^td%5u5jR7xhbL(fN=t!J#MZi=mU4ohUa%bf+jCN>TszJJkvWN~!!a(Xjp zbf;sKu)`2fjQo?{6P35my(fyE@Atu&wAI`9#0dgFD6D5UkwoXdUU>5|eIe%lHp(I_toKoTj@;#w*!6yE!VmN135va9Gp~r_8@aO*;bS>g z(sPmgaL(q}w*-v6M?+FXtrg{Qmp!)7_>ys96zW{;#Z6<+tw47Asa{A+0D&G*%16huE zR4&KSK~tLkFM7@qk3Q-3|5J~>FSZP63&O<(nbzs!z3FYCAihra;ZNL z6w9JXZ_oLynM*BMw&`0A2pUzMpd9|^3WqZVwYDIglx}z@>_e6@(>I;HVJw4KX;@*V zM$8iADWbIX_E%RBrR+F|hZr_dR_7t|FtbMx@bnN1C^Rhc496ZVaZMtO0?j9uFf-(7 zqKrr9U`%7bFBL=HaQBq}dK=<*yY|C_^oPA`1S(_?L)tK@qk;B7m&^-y))iL>pzg_5K#XoCiA( zPuoRcwo%A(jy!!CO#O$J8-p*tp9&=zUNag~IU=_V!E6YZ zUc^wzsXnBh6F;=d+yQ4h5Z!CNLQw@x|87G>ZP2vDD3 z^W%Lxditwq^OrcV+#?!D-^1o4*IglpPna3v4xe1P$RZjMaLEaJSso6A5$}mp{pxw4+NJeZVRJVZ#L{B zE9lKU33&*4;DX{%)sigkU7Jseqb6YrS_IvRI}RYPuMgcxT;+G+5K3j=sihiDD(gky z*yMEuf08Tg3dX@|HytL=>&m(cybHMF0Ao|o6Dt|qnoWr&qhj=%gFkvKq{3r<&bOvL zTK*|{p48eACY^Jqq@n!F-#XsMHyc<;{vRY<3pBHQhaX=QQk3+*{bj}Hv_Don zDg7JbsSIev=l_QlBZh~;!-r5Op$&<5R^DVD6O*^=IK!(}J%;eDUwlB^s^i}1GOgw^ zrmVQ7qnd1O+aWr8XSRNz=})b{vG3FaI3$l%6D)XgaQN&&t*iisZyvkYHPV4LiY9$S z$i}ufXKqR#xGb~Q643-|Z&=PD66<4e7l0q3mU=vgWAnZn7cGaPWQvl^FvaU<)T)SA zpFJoYfA51NC{3cdV7*VJBbpw|!muKnNj3mCP{k8*3YbW+D#8mE91NdR@)xIT&qq&c zxIm3wixVpHmn?+Tc*AmSG{s3?YDzmV4n)ikx$UT8U-#yvUv6T8N4Dl7T1wCuyuX7t zoiPt%N4A!{lZ$l57irL(Ot2=K4AJ<5S}#sVUyI(+zf-TVv7qv!knY(66uw{D-Te`DlJs zBX~WO5rR}Sp<|7)BqXt>Q#6ZQXO7$KlW2+%=VsMcIGL)=N|`$Q{(Rm9~0%G>c)?B*XP_#F`z~Ips29L%|(-_t&(o9Absfav7I3dyoa?2BTk?hk* z;6pfwFwJBu4oe)aRMwfoK+{B&)K#-Cu#}orQ*;Wc=!S3rK`9aJMn{y@dC9t%)UTCf-ORJB zf<1%kE$gnxxi``c8Eq3KVK%SyNh|hnuSz57AEi`{yfZpU+~RJwBF2VoqGqT zt`n@u$dllZ)clOr#N>qyOON*_*=tfk<7QT2p%g&?W?*q5j4P*Q%aHKw)9}povQ>Gz^DjtxQD-WMXn0Qo3D#pXBFneLk;n%w3Maei3 z@+?Q@sp!I^J1ZsksK8GoSt-_2ilM{O!6}JpM&?DlR7&~LnB9noqoW^Vl@-LRFh`jm zq|biox5-`Pswj@< zpsAA8QAwhk(g)C-&zd4sr1c|VtE!|K=S7Gs4SQgPG;;rhX!NH6_5`jK8rjibH}%a7z?SnF#lv~y_c$t0ZNcMDpOL)Mas-n%F2?%|3oc<{U<6BVhB0mQXNGag37-v z(5VAj5dR6|j|J165sA-44{MRTWu7QWp6ZIjSxcP}G*G77sw(xAKWhp)#OA-ElmEr{ z0P+v=R%gVWGrY>YWCa&)aADY62()#;x*$3`e*%wc)r@FrX#`sOsUUh|>inU7CRCu~ zILWCxkTP&CcuLCD9Y{H`K;pkBlYsq`GFRHHnT_6Xh5?6ySad9zJUTbOdH$~m(*+(@ z(HJ9RZUza$tPBjwrdQj^I`#Jz@-iCV1EnsNCJ!OhiDf=4b7-e4NqQ@%D8)la;I^{n z_6VitheFX`IM;&ri#8Os1?@2G$Q0H3(hDLDG3Ib2H#hZ*ZrXw|ksv%5DgI#~V%uPnqnFj$S!X*@tQKF$eWqD0M!<(3LLAD}VN}^nf zrX0*;^Gd2vAzkQDaWeIPGHsy##KxG)ues)D(PP37j%>>l|28AJP7#%z_ErxSgbTy@ z!bbzcDJ*zV{{vwUYB#+3s>&K$>RTA<@y}IVAT-C3s`7;$?Ku;C%#w z>4=6TSDeGdeHx-Tc&&+|BV3da$#S*eg;KgLr)*MYAwEqwsLz3%h>4GTP zp>4daD`;@`Cv4A!wGWyX>7Ij%h9ebimEeGXkn;I~JXBAr6lAitN*9#%xMp%i6QxuMBcY_9WJox$)f=j4x)@tp|c=lSpXGvR>gtvfwkDu%{NG(Su>`m z2w$g&_duxQ96S+o958^p?9W2e#W`G-+e>AB3Qdigl;L{y&LzSG-2WYxq+CQZ9__EN zJn0AJKa%NaeEgXula$acbSs=H1b?#xD?w(YRz}j;2sXjffV zHu?Yh%L#8y~<`-6|H-=m) zKzQ~B3^-=Bk}OkKth5T#znO67ben5f|!pxLSDXx;tawoGSx3=rCPR; zo!c13Lv%i;n+oTQ;TVcRq2jxb`0_I)X8c zh%Y>4<`&vSM;Q3oP~IWJ4jkW`LaHfsT`tC@=LO<00l!@0cLRv_3@9NcBlBQ#Ns!22 z;QL5vjc(JLf4J3wmWBxsy&Ld|qxgap&k+iL8gv+8&>3>-1ir69@ntghDIX=|^ZzBn z!R7bon}0q%SNux^D>Tt!K&R}>h;Z~T@L$;bNc4%7z}q0w5xyR;d==8916e@&&MP_G zf5qe2Mf>B0>?qYfQXblOV!WY#COikAXa7SAssFD*n7j=S5@Vno1-Lh4#N);Ud3Oyv&V8gl_I)I?DMlb*+nUd_W%EX3AmZ72=b+^g z*PweG_ZA?FSU%;@LOsR>8>7?DJuA~RaL_kcvqk^Ceios`EV+$5VTMP)IUSz;ilQXp z!PBO!Jsz^pf`}!ElmZIR8ox1ud6wY!O_RIMLY!90jp^7!ExwqoMI#a%C@31%cco8O z2zyLVPKtSg0sN4q{;HsZW%_k}OjcOpn!Udsl(y?e1o(U7zPi%yQVlA$3@JYCk24vl zSA|rU}2b8Y+F9I(qj#3YPECjxm#Y>aW&j8jeGp^}xYvJEUZ}D19#QYXF8B0CR+j}l< z13>}KU$c*aFr|NBO8|1;PZKq>dd{D5W1qD}DPl(GWmzv!%oZ>{0Sto`uzsLI9y zIEQ8*D_+WtvidOfSzgyHZbD(~vVFBA+GE>bjf(&{OXc6=mZs;8asQEm;JY}b2#NR~ zpzMB&{a6__2(IZjr;M$=p-iY(1E5IV(sl$oAlic9fMtt05qkDBnDsF&d7V~av2S6N(+{C?87}Be=!SvsR8vF-XWv&g00mbl51KQN0Mv$ z3BIUo(OUyrpc`M7{1f$tIlsQk*B! zfa-ACNOsfv-n81;h1q#QxmB+pb{V&}sz^d9=FzR4gwsjO7%ne>W>9PG?SXLd#|#1Q z3LGAQcxjGN{He}w0F5u8*c)m=lD$B+;V8(&)_t;Ym{L=ydBPT+gEPA#mQKc<8nN0? z#2jizeP?eL8oMx^)l&8fAFhkJ3BPZ8DS9|V*z)!J)1Cl8@94KE5*dRRj5k%r`++wR zT(M8LEH&fL*CQv#I|inYYH!&3B_iDpq9)eD0KYH)W`WTH z)Nx+=m{3i&{EQYznB6j2+SCckEbDq<<`l4#7T=78I2wXKDk|#INp})fG)0_{+8fBB zrX;DJq@w&2k`fq_`z+N7Rlb0UrqbNK6IPhp-wEtU6yDy9hVr1E_3PRX1XgQeA@24p z4pnYycuT`>ZbCanZcA`y1;8QE>crCml%NYO zR$6{m(h?S(GJr}NL71Cb$0Ex~iHbFj6hY6NiqQ&Ev}%XR4+@KS5^fRo#&A6 zh~poIOIL#uMup6R;}5(E13cW%!FZOSa4F(72H(AQCe6VFv4dTUjT4|kN9WPv_;Y>* z@2zsLrQkt~-hG|ZVhb3E!+3hW-@{-J;9!D|7DRNawqdjd5p5M`%AJKaWX_b}9&8XI zh1oa2YAD8AA>F%zW8JQyDzDTm$x=vK4RTUyo8vkvQqUrmz!uoC1 z+b-v;rh5q9QIAxCx;MyGkJ*{R{Yrd`5Yw(BjfWV8Qft6=8JTMEtl~4^7w{HIdv==& zIjyS?yU(xKpZ+@U&`O5+S;6p&GSrn=0Vx;^5cF5Zs@%xRe?N4^g=E>0|J=e%NQ!S! zT4V|nzm5Bd&mb>#Z7ygyOe#=78?)RKj$7o%xCZ5h{Ohr7igu_1&KR-T|3r;LBN6kFgh)SbU32q@I#gI@jl@gUoiwglc$tHKDQ?7qy=mz?rtesL?<|>3KO79 z5_jWFchb_?^&DupW0rT4iwOZPQxaBwS?}LEJ*$X|LuHoQ%RVt=^v1F*`phXk^u7Pm*ao+Ingq2@pf< zDOgO}yrV8#OuWzlHL9Huk8U9j(3Bzu__F$SJt{N3x^kATAsUE7GU(2cQ{PKqI*pF2 zQ8Xe!Vi50Ynb1I&Kq7~#VX`M&H`Y@pd6tCM(l|C3yXp64M0?TSPl9kJYOQ&=mdnE+ zukSC`vY_6fdB_Jpi2b2c?=J?N1_8s+Or52gB%!{;_7?-5&5@S~kxA3|hP;tkvnPQG z>b;ssh!~cVlv~SX63=+x6&=gXU>#W|-hT)c@n*RzKXsB$>41DQi?@A9e)>rwu}5W; z>Td8q)L{qwQ73}@zt!2m1J!ZCbo;%XqyGoYVTi!fZi${)DxNF=*YXRS*=V!o!bM;8^VT6X3g7}poDx?t0<>uIP-3rN-P82tNGn;B>GE+A{0^^yg{y0rSe>->j={%7@m2-6fX{0 zkc^9+(Qz4Q@W&!kX715ZFBIg2my7s9Cy-c~io97|Ad&GGo2Z{)a3Q0(JrQM~AhNF( zqbcyxkI19tAgz^He~U(JN*`^_6yya@($5z)=z$UG9L`EcmIemEhh3yU=LWE2 zrZ88isaTi)5DiXzuI#56U5%t|V0ph0lfF<5+~vrbF2S$I`%c==1{gRbOMn=6afE|q z4Ak`Yf(x%nI9t9$V~I|`GVYZ7lG3p4YxWwP#xg9rYo;QO7dzikKELT-E@#pps$$a z-Fg77`sHty>@|ZYlpNd=#~k`)eH{ipw1z7(?)?i1dq=>{#hmABRWQ0@g{gNv?1_jt zr#3DRYotDUPvx{keK-%DRbAO|29i>TkzyzBL&Ml)%tMJD$CYV)>Tvhv!X$&2=Dulo zqOIdAd(EYJmWZ#*U9*Yob^c4`s4ueX$Vs;yQbJSOQvwjy zwc;D2`e}52O7KF9;qgy;R>;#?_kc`xuiw!%gINup7x^S9zus;}+S0>)kM_5L^Ax`K z;EXRPM+Nkeih+@`dom`)Pr%d?V?@KnBeXEIRGeT~2o+N57hJ2*HP?Ed(!8D{4#bw< zORvT14(LCZSDtDeDT4q@P_+P`e~R+{Rf6iPsgd&kxZtDb`mF|;;6diRdIk;?ln+dz zn1vHqu<$#Rgj$ds@W`2)fs3K0Uw*P`a$t2nP!OLHmv8&xOf&3C<^Nf4&jO{kpLe-r zLii(e%Xoweh8HFpBjXY->1v}$uLAM~Q8+Amh{ULzr9tWh8MsyQICfMX9{!pJ-aIaf z(K)4EkU;hppumx&OwSU%=Cy{3U?KXpm5M7ydVqDJ5fpdD<61}pg?@TsKDK4Efc_Nv zL=jA}YxLB97RJ;!{qCL6B@*2mvm1cXeag;e8MMG*Nav$q z5k0wa8*KmVCjp<`*7w=f5di_Zm>9$Q{ba-T4)ULl{pQYdHU?I4{S5~Kg8FaA%z#CU zRSb=6{wn3VmC|qboe6K`$F~To)GTS6#AY-UnvsyENkm*Pkk5E^7#s0dg6#{xXLxO5 znXc-jIv;G~Jg;b{$Up;Nuw6tX!HKy)W}l5d9^UY^TEEgYP>9mdwEgJAaiALjXD;$S z85{j&iiw!l<=qM%AX4(w<#O@yXk(%5~F47d;Agu!6#9AQ}s9 zypAK)>5zp^fa2DaNF$0Je=h7iJrbm?!5P;hED}ZpCr+J25^ImAdncKUB_^PfIeK}* z)-!BFWz3LHOfZQ>+f4Czlo-@S<0q3R7->F(qAOBh$rZiL#Jave^-w!w>% z2z5_b)?8x`S7zKaF*Qf6yKydhkNkTFu(GjnZM81fqdpzeEW4cHv$MU8#X+Qt+xyZ{ zM*R;(Opd3;1WR{L8q5yH&kMQ3CP;&E+wq33#sdg~b0Djx(Xby7$X{BSJGlxdELDXr zilf68#gX)8?WE=qEyjA`z8k$eGk-L<_3BUc=JMOg!iT@k-cg`Rg;!1BGI{XE zZCT!>2(;+!su(yN_NUzQrznqB)$Q9uf-z3l|2X;M2(vUh(brzlzu< z36Zpo0BeN{8xoDEjeJlQmmez>c}03OD`L)5glTeYga2J z2&kXxK_6mF-UcuP~dqE^ylDKN7 z-nU+@)op{Tg~9ZIk!+i-?Q1!LL(!p5Zlez+?iB?;oNPxiB|y82kCs6Ugicr?Ew*ak zr1L=jjd7D7`h8_<9%cgu9gogkjDXV;1juNiiuc`!Rsk~RZLoy#lvS^3vg zX_pMvT4<5&_#3__lVIoo7=#ls<##pi*G6e(2`SQeG*P+&*}2C-foujLWND4%vo&|D zd)1f6$H`1f%Zdy($Q!-d)hpG7PRhNxmSQp5XS7G3$^|K@IIv+h$OM z{2%wBlwxfNP@z(rAYNgCyr&?S3i34iP2@NYBiHQZ*%!Y4uf({wIU`R!b)whBpH}?ec^t3^=fmZQe(DMo5Esl zrBf?-qrvbc%p_Fw%52yqzX4j}S9kc|`gpcNnhXsaN`G$%3wBhxQaj&-&M$H74ef}t z_|JNM_mJoPVQF4gN?#>i`NPC>HR9U$zH@8dbynMD1J_X4Z8#}!L&x4vCu8Jna=mcg zg6}YrvB00U*XnyxltwrnD;6S{_%NkLTPFj2kt{lG^I)2F!%!hnp3ZhI{Wlu@vWJe- zH?))#L`?RFpAtNTXxdBRE6Wqd!TAOE-<0=LlDgVymX=m1i^Z?*EXx(cvE(IVr4Q0P z4}V?hpP@t-4ajD{9Hz^sNK(r+;#g8PqM{y_G08zb^JUFCMX5Vw5ukL;35{x|*7+2> zwG@^ym8Z`AY$~YkqWV4%U|+TsvBHVrvL6`O(!5>9L1!?SXB&NpFX8hD)=sEijgnBm z(_+)VFmH7UIr=l+?zgLRK`D5(jaG{FQ&!FA1*oVmAok*DLxdlqcMEllDbMl{W?Y{oR5E+ohsuG!#BWS?8Wi(StZd3e$$!8Kjq z`%L`HXIWGkZ;ruIe16!MIqwNef?>|U0cd--MP1gT!j9y<`t$DQ9VWyp8+5PmzcZ9J zWNlnO*m73lk4dmo8pCMo0k9w{xSHrEf@DlPKk3-~Oz&DuQ%O<-X-K062N8a|5fJ%Z zKEjbtNe6;qmd*b@qN znbEe2U4tL5Jz%|~a?crzgS~2XWv}g{w;Oe3=crskIo~HCbk}oUmBtZSTY%nHet#-g zp~zFVRTURf?7ElW7@SHckN?mEjy02rwy=k%7U?u*iWga5)vt;IQ@e42012@;T1&Hf zY1=CD=MNGqg^|;O#^)3g6l?CEJ2q9>K_s+c%^}1~@Xz16B$bUzd{FcN-9wX->~YVg zX*{3^gwn8_^DqF({Sza;IFaz2p+H+TX+ETK)@2EpSWiu-D04*1p&cPozibf^lA;2` zr^WKiBa;)!hP63nYg_IW?9e?yY*zJD;}}hs^rLbbGsGP-MgvNybkZ0TDl&M2Y%wFo zkQV)R`P8O)u-p{&<3)1gn;>r*#MB$h%i){X+;P3)gM5QJ-jBU>I#{PzuD4p_&O*Zr%*=&`NbI~XAw51>^{%Gm+V>q;Cz`1Af)@E$q% zB3KAIs|MLZ*<3=?wap!pSRNdcW_%p&K!+J)2|_Ih%-o?I;j}so_HE1ot0~}f#c)8R zje3d~MKc?Y1mm$KdGETf8a|c+$_qmc6qn&uHGR$&d2nqTT&9Ur(DM3!>EfR_TJ8qw zp#r+-yr&@#hX1 z$?cv3WpHekZTyd)&bGctm2E;4vGZjm70G_54iAnT=jLm^cF9C7j!m@UOy{6QFV}@% z`mNecEN;U^g-Ed5nM&=e$LW#jRMUu3CWE*&7>sjV8?KGa=Q2Cq7oK~GJ1Ld%#7XZB zZHll6V7KcXGr9utJFNZ27-^b1QH{AmAJgjDBKnW9*Cc0=-__()Wy?F&1m0HP!2X$B zH+Ra)?EwWF0fl4zL--%b3QqP8&VRLPc3iz(AQPI{*Pem9{c+|z2n)0@Nf2u5Wocb} zcRz9)(hbq*igzzL9(Lo=uQe{$%e;63M?rQ5RdY0y^Auz-DwVwXAz59$>};fCJT*N0 zmXO@-f#jnkTrO@qj-%C!Pz;DLaUFK6Qq>^@=o=``Fdbs1+0@HmiJCPVP zTMVd4#*SDNRk~d=K4Y+?KQMr+N}XO+IUO@h6@@RH7v@;juTN#t)YxqIbv1M46`SdM z9Z`sy054bG!P_;5;nmy2VIPQH5f@|+2EX{WnZ4K=N++Oy-KUWJ`ma%1++1k5HE>QQ z9GKnxXUt*eYHMWb1e}%mlif{gY}xH|VRi463dW1;G>0d$L9jIy2&(Bui<36rgHT}A zo#&1*Gi_eWTp3T(R%Hv6MX<`Ex=luZ_TAxr_XfN|{(8L$OxQ*YM|0-54%9B)5urPl znOZq`|CxG9arsjTb{!RUX0FXw(DGyNJ$Cjt%EkgDDot%El?Kmu%G{tKVQQXb>RerMm z$b_11SO$GVh^3|Ak~K}MC1#F3{@17P#CJ}T3h9NI6jYfri)3<=*jb)^>GIz=W8<C zHY~pgq8%1G<>J}lH!~_BpA!|+*s>+kzIeCy5K7Ov-B`a{cP}_$9EPH(H;*39`3>N5 z(fJUGy!zd2bm8#RsFR}pBzic8z#kXBTS~%+a`sNJBDr^0CAFqU%6;`=0M@#DZtuGL zMpjQWy8A|W2fANZU3cU#*h`EN$}St7=X>|(p8jxTHa9T%K9h4ft){%;6lAhlnz#EO zzV9E1O@!e_VO)vjYV6VVFBrGpd7l6*r=pfGW?-!4x%KEO5x{IW*zqgH!RGPRRHl5v zy7%{J#~<=@#u#6Arg`p~bvb{-^gvPQcOO?fLLDozU7QMLcz@Z!?!0YQHGhSvL6oft ziPp{LPVD!~^+1Uja{E}XSKcxP*ad~7Hy z0}<9K?%;LGkNoYAPyg((3dUB(W5~Rbh7jn(F@apaaevYN#ZD?uXPNON|gJYL1FlHF$Itv z{{r$D%IE!2kEY_1<)|w6%R;55yYG0)C>P zamh%l!=_zo=M!C20NYpyTdFo3CO00sU!c`qhvOLx6B?2{;pRsz=`^qx1fhWR7$a@R zjc*0H0sX3x1nOcwr#D9z8h`OaG>6zIU~D>RwX!SijwhK>m5m)h>y#1Mf932E*GinL zmTFQfzi)*&F-CC)5v@@_bKFBgE=0$`o$n zuEGDcx0^zh=Xcc9M{EoDo$|!qRVu4{fbDvDbY%j*DLr%B)+Lyp>r;F|^_JIFiziJ2YkH49aj%Lw zx@EiZg!9cud$?IR9A)k93bdR~U{asb#A?W+RJG?pJ3|!97p{zt#^nyox7e;*iU6-d z?W#&Gv!C0$nrB^LxP|oP77sDQ$u)bPPvA0|E;7N%VB*gwc1Haoi?>cVBRS)>N7Vdv zrDY1|v^o+(Rz>qn`+9TYoFi3lA93yfePHtQb+cr5>7^^q^Dkm|IK+2k>gCC=?_dA+ z?}ST_+@;e055Lsr29$38_bL5H-9GmDd;gqlX|g{!|Hx|bE`#k2lLD3R)v5ApYBoQS z+VyeT!PfJ3S6U~Pgs*+UyY9SSMTUCI)~VCA7S=``%CgJ)ck@p2y_|bl|31#rwI;GkFeEICAeNHvE*4-+7Cmo`o zvU1YvIqTk7?FxVSM(wD2Bk-PLBioF%3qNFCjDJ7bw=(T>POxCzDwfH%FXkDZeZs}! z)8%c{*`(6p+mz0B;r)Utm-rH``{rt&9S*7Kv&{I-Jui}7c-vFKhU=;gYi4pr^Udp2 zj$?T->uFzy??&VKiTfBP?D<*wYJCa!Jm2MuE_PSMy)f*F?8g5=NR6Gp;8bM8);a~l>eQUKn{MQb-sCe| zmoV?egGX~hms}K1So&WsFZ+VRcIoEMcWlXA-I_%`f)UDxC1<{nljz?0X_dmi#MFqs z4_39OCR{NQc_YE4bGT6FVa2?J%rnd{*pr^L_ny|h#2f$QQh)r^iQCf-Kbyii?d@IV zIqm0s&#V`|-M%C(tygBMZRV#bb9OH~x2O8ro2En6YmRQ4bjhf?veftOBh?>OcjXR7 zzyG{`$`g;^;?u9Lwae8#xw!SUTy@RkWy|N)J-hjQUj4%2)7PfQ)urBEy?*b{YqzcM zRc_CIzOLWy-sh9|YJc1ReRKM7{8t&vsx{v$?!U}GSM&Ss_rK}&7WEGwt=}K}>uTD!L%y7fOemAO^*l@;GhnLG>S^p>9mPrdj`Ht;WNVw1{P z(1?}zZ`|?ikbQtRBa;X-Xn351!C{tp#M+>x6Q=@OsHcEqZlG=l3^V}67#O0RfrG)R zc_r~7l?AEAv7pu&x&f7H-VQ&2O78*3k-1^Ifpi1oF`yBUHa@s%kFK$!jXO9KsN^D0 zqacdL=Rgs7-IJVO1RjY-*Z$@9ZSmJY?KvzA3<4wzM0?TG~i*j%lm7BJNm=w)_I zbjxP|MZq%%KqE?XfquuPJ+DDp$OvfpX`odyD3<@>fog~N9N7@8q0qZp%(`2jfgvuG zm4P3{qzpc&NyR0VIjP|3O7t*5KTr~;zkyM~4n;HC@sjA~pwE*c%$ZmWGY4rB1zkJ( z#0x@ueK}M++B6Kh3Fs3M2op9|KutiImO$5!K5C56?@|rbk3NQsZUlP&8)1ZP6V~21 zx&i1NU4#Lm&Bz8|>-M6Xh2D2Wn8nwEY!+%y65SN^t`@=+)mCVzpme;@^`o~35&92w bAZ0Ps)?t7*D=-Iva+M%MA~1Vw>I3lrVL50k literal 0 HcmV?d00001 diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserKnownForReadableStore.scala b/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserKnownForReadableStore.scala deleted file mode 100644 index 8655e605a..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/stores/UserKnownForReadableStore.scala +++ /dev/null @@ -1,75 +0,0 @@ -package com.twitter.simclusters_v2.summingbird.stores - -import com.twitter.bijection.Injection -import com.twitter.bijection.scrooge.CompactScalaCodec -import com.twitter.simclusters_v2.thriftscala.{ClustersUserIsKnownFor, ModelVersion} -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.{Athena, ManhattanRO, ManhattanROConfig} -import com.twitter.storehaus_internal.util.{ApplicationID, DatasetName, HDFSPath} -import com.twitter.util.Future - -object UserKnownForReadableStore { - - private val dataSetNameDec11 = "simclusters_v2_known_for_20m_145k_dec11" - private val dataSetNameUpdated = "simclusters_v2_known_for_20m_145k_updated" - private val dataSetName2020 = "simclusters_v2_known_for_20m_145k_2020" - - private def buildForModelVersion( - appId: String, - storeName: String, - mhMtlsParams: ManhattanKVClientMtlsParams - ): ReadableStore[Long, ClustersUserIsKnownFor] = { - implicit val keyInjection: Injection[Long, Array[Byte]] = Injection.long2BigEndian - implicit val knownForCodec: Injection[ClustersUserIsKnownFor, Array[Byte]] = - CompactScalaCodec(ClustersUserIsKnownFor) - - ManhattanRO.getReadableStoreWithMtls[Long, ClustersUserIsKnownFor]( - ManhattanROConfig( - HDFSPath(""), // not needed - ApplicationID(appId), - DatasetName(storeName), - Athena - ), - mhMtlsParams - ) - } - - def get(appId: String, mhMtlsParams: ManhattanKVClientMtlsParams): UserKnownForReadableStore = { - val dec11Store = buildForModelVersion(appId, dataSetNameDec11, mhMtlsParams) - val updatedStore = buildForModelVersion(appId, dataSetNameUpdated, mhMtlsParams) - val version2020Store = buildForModelVersion(appId, dataSetName2020, mhMtlsParams) - - UserKnownForReadableStore(dec11Store, updatedStore, version2020Store) - } - - def getDefaultStore(mhMtlsParams: ManhattanKVClientMtlsParams): UserKnownForReadableStore = - get("simclusters_v2", mhMtlsParams) - -} - -case class Query(userId: Long, modelVersion: ModelVersion = ModelVersion.Model20m145kUpdated) - -/** - * Mainly used in debuggers to fetch the top knownFor clusters across different model versions - */ -case class UserKnownForReadableStore( - knownForStoreDec11: ReadableStore[Long, ClustersUserIsKnownFor], - knownForStoreUpdated: ReadableStore[Long, ClustersUserIsKnownFor], - knownForStore2020: ReadableStore[Long, ClustersUserIsKnownFor]) - extends ReadableStore[Query, ClustersUserIsKnownFor] { - - override def get(query: Query): Future[Option[ClustersUserIsKnownFor]] = { - query.modelVersion match { - case ModelVersion.Model20m145kDec11 => - knownForStoreDec11.get(query.userId) - case ModelVersion.Model20m145kUpdated => - knownForStoreUpdated.get(query.userId) - case ModelVersion.Model20m145k2020 => - knownForStore2020.get(query.userId) - case c => - throw new IllegalArgumentException( - s"Never heard of $c before! Is this a new model version?") - } - } -} diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/BUILD b/src/scala/com/twitter/simclusters_v2/summingbird/storm/BUILD deleted file mode 100644 index 62f92f3e7..000000000 --- a/src/scala/com/twitter/simclusters_v2/summingbird/storm/BUILD +++ /dev/null @@ -1,27 +0,0 @@ -scala_library( - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/algebird:core", - "3rdparty/jvm/com/twitter/algebird:util", - "3rdparty/jvm/com/twitter/bijection:core", - "3rdparty/jvm/com/twitter/bijection:util", - "3rdparty/jvm/com/twitter/storehaus:core", - "3rdparty/jvm/com/twitter/storehaus:memcache", - "3rdparty/src/jvm/com/twitter/storehaus:memcache", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/common", - "src/scala/com/twitter/simclusters_v2/summingbird:common", - "src/scala/com/twitter/simclusters_v2/summingbird:stores", - "src/scala/com/twitter/storehaus_internal/memcache/config", - "src/scala/com/twitter/storehaus_internal/online", - "src/scala/com/twitter/summingbird_internal/runner/common", - "src/scala/com/twitter/summingbird_internal/runner/store_config", - "src/scala/com/twitter/summingbird_internal/runner/storm", - "src/scala/com/twitter/summingbird_internal/sources/common", - "src/scala/com/twitter/summingbird_internal/sources/common/remote:TweetEventSource", - "src/scala/com/twitter/summingbird_internal/sources/storm/remote:TweetEventSource", - "src/scala/com/twitter/tormenta_internal/spout/eventbus", - "src/scala/com/twitter/wtf/summingbird/sources/common", - "src/scala/com/twitter/wtf/summingbird/sources/storm", - ], -) diff --git a/src/scala/com/twitter/simclusters_v2/summingbird/storm/BUILD.docx b/src/scala/com/twitter/simclusters_v2/summingbird/storm/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..bd1bcc99d473b2fc5ba483f50fec65c1090c9d6e GIT binary patch literal 36963 zcmagEWmsIvwm*!!dvJGmcL)S`m!Lr#cNz~6+=IKjySsgyXU|?e~U|^V_Q9TKOy^FcMi;=pg zgSoQ-vxl8+W0Hc>swmp$vlr}S7GY9v2~_N|9S2$m#yEV*>hv34oh6nNd5DL*3I1@6 z8RbwI=D3X1J740}I-xF~CTcwi$rA&E46S@}$YP)T^*rWN3!XixI5OEqnO&l}L71AB z44-$?+~BOcHU0cX7$IlkIl6&K+7DpSG?g)$7$id>aH>LM&|%g2Gd#H+6b|aDMbhaUY3}tH8X9}5!wQHzlIy1Ye;`KZipXnu63JasCTl|aI9PH zEkyAcLIj|F|6$j|>^`o=aRgIW8hNdzyMbXH^5XL^GC-|J2SCF8g!kdCIF%pegajlCnL(kJ+?|L%^iFosh2VJXb;Zf;h=ZbHL< z1obnQhDfbyyI4%}C&J9farkt{RPU?{zvE)ynCd8 zsymtI&Z0fn)xbPcdB$Wqy_Y1S0`%^YAR45Sc z`8si0WDk@nTIuRkku=c8=_Nim+cmXVNY5u&Vkoi=(lXJR56oTc)!wALXlOTDgG+|* z2q5!N-wD>SO^djpKoK>kzT>vgBo$`Zz#P=0t3RC)s}h$qqPLSlDG4r3K)*(Gq1AHr zWts)R0Ho!cxV{uuw*Ihn|8g(VV#iW+kl!fa?kcywfH1RLi z+LSZh#+W5vxX~Fs?z4XuDC{$$nic3Wp8*vJ9aJDQfT^+*z`>ct6yRk3`y$VbA6M*W zMU%Sok(yJ`48KBylai$eKl<`P1}k8x^_G)M!FD{0dvbHPz)m-Z!HsxRVED>Gc%7%Q z8PYT)K7=GR?kvFU3!)D8>#7OP+EbPkJzr%~aNk+aD7w6pPDYDEK)uP-(aW!;><o;_J~%n~R9S zGSEwM!NZdWKFUuSLd`Cf!v{HS+d{eFSLrJ49B$~b;jcC!ue#K!cl|y(lpLXlkyRmv7U=E>@H*(3ZI#HcYR^S zmYyh!RV`NStEYea9Cn>w?f=sA{ldbonK6r#t(j1HHxNcRH>KX6S8wnTy7ZloQ`Gf!z( z!EnDc9M_Yo)s|vi=C@y++U04p?)HZMm&46^KQV zyG4O|6cAr}#*w67k$}}DicM%r#q_Hk16=*$;YCWQyoA&S|8n``X+N_DGf~uvaJdbg z(syb`SgLlsru@SWa|M}D)esG3GSQO>2?2vC-Ko~WfyAP&fudd%b~YD2x*OGY2(T4= z4?qK*Xd{HD{N7D>hve=P{tFuOg&o_$)`P1M;*mQHFR-N^o;c+M-u7iQa-2Az#db3# zNqACglTsiw16RY_Rw*uJU{zM6Q0aYVM>@+h3-LL8`ok5$+x*Qhl7C(p_KX9r07x(} zZ0tX8Sa*Pv84KvHb+rRMoPJ*!lV1%0v#eO3&mOQ<>=7{1XWbIfnf6Rr2cW+XY$4>1 zI<5`$8`Wh7UmWwf#TQ|kV2v%@=DqR*Uw&kmw*Oo{J_~%0%#}=+s!%jMN|_g55;)49 z?(^#6=)xaf(O=i2FPo-dUz*urD9mRwD;}q-{F7WcmfMbNbZ3k&liW;J3c6`H5Iw&_ zx79QcO0^uD0;_Qh>r=9Pg7U01x-}D{d$f6w-P$;OV`f^9S;+UbkEgxE*Be zw}o6*@SJTI+#-|U17omaD0<)hQjU+L88p&~+Hp}+nU(bm=b8tmSvfLrbqjZ$vRB~p z3A=a{2mJ!$_}wb$nt?OvvV7O=rhfg;H7B0UE{?K=eEd~~lg{U+g}|UKK*J-Rop9PZ z@_tz#K6fnX&nH#-AZHZGt&0&$vyR|dI<3J<7T5bW&aM_Rm2~c}mX1}V%QKfqmBW20 zdb)vpUHgnYOKZY6yUg0DQ@3Z>FPO!erV#!s%5n-4yXH_N$nA^8>WNYp$oA(}&(C6u z&Mgf!3n{$ABD6-??ioWyByQV*eXn#|njbmA1P@JKF{jD2Y6483i_k}k6KqnQ=SU~y z(m2!#B;P&uyl%u7xJ8~NQCjjO-g}$9DZW#=J;grmd52wf^4iIs2S*S0`RY=|v4RXX zP+f)MtAv5$k6nzd=gNq_UfN)J)Y(PH3 ziaQ#A(wv6@qL5gao%QvWmnlaVW$S)eUxnG=tM0oG5D)!CLR?=Afz$zBp>cwCofd+-JSjf80?^BdmOZE6M~lQKkm*yHywY!NB`V_B#J2o zvEqF`dqwCANx&+yk9hYhkGh>+y1LLOM0zFuR$^~cZ{3VhVkcntj@vhz#%^}v(h_bR=iuzkUqO&T{c;C%>4iYPsyJu-Ot>Pjl|w zQmoeu>_dmDU79yGpx~l1-Z?w?c5`n===TC^h+xq$Pbg8e7x1j0ABABArFoYD+0Sur zY&EuPv0w@&>E11oBEeo*lcBZ^d0EU6A;wEpm!=kM6Y_4-hS&OfCUL+^5#Gfc7D8lK zII@^0EMdmRLAt`l~o>wLSr^YV?Jf7rzagAGsFgT=cMe)R6lsy*XS z;F$gO?Hlf=m=hyEDl$G+ktI81VWK^Y-wxcotnO(tNyY zaR0D=(VjBj{&X<=^QJvCboa>frB3kG?yYSjgax=lVwhZfKHYy1nzFY&zIxnT{xW`i z+2FZm%Tp{uQqkMfsq~pIEVAzH+NxgH`)Pi4+{^uo$eV*UpdbCNefMhr#^c>d`N$`u zyU^mreqf_8ala*SIcwNk$KGx6<7dT>IVqDzH6o`XnXfp)@=otBl(&aNgYJ!3R-Ztk z+&BF;PEf~(PafBOdB44gh))WgXl;P@W_I5E(tgB1VM;%0zri=e+xFRu(_{DXUF-S> zybs8*9?QX|o!KYR=}+fLH6KF3*)U5lQhFzYvz! zuC=cA=8Ey8K{h|T_BG!weZ8};mm7&k3)K|je#gyq7Sv7PS1A%7nXD7Cw}I-1Zj;{X z@pCJ4#+}2`ZZ^NuLIZNrmu$ zq;D9VPuMKb)vfD#_{3_E2EkDMAv|za9hkR8k(5o_BDqI{K&%WJ>SYj7sR4lg+h=?k zuzvSua6cil1S@Q>xaw*Sflpu5MtQRN(jmwwLXuoP?LM=n8>`CR7ur0WuvCdMZ-3MO zvu4w`3d>Z-+T=N9@nFxQy!C1EDH9sJH%ok22znD_V^p#N}^$_f&r8 zB#TPv%_$MqP~XCA7{1h$N%4xJ$AL={e=K0{>UnAJxu773SbNhp_X&8)E{Oza#js>r zb;LG*30c(Ucf)-;c|HGW$B;oh^c~#?o9q_uyO!q#>krFvpQMK z2N@Na5)9Quj`Co}JuC(?Ii|%AaPf+5-4%YDge>=(V;#d-3l$w~>G|L)winsWFQxcj zb-ysaKCN4I3RIm96fA$KVdL18UDCGONkA*$hWr4hnvOsP)q5c6NOqKvAI#XOqbeS| z;zCCTXSspZV+40q}?l9ncq zu1&vIOuZ#LXF^HsxqZj><>7JLSH?&oX1(O+v%&SJ8`o9?`$2E9=l;bBx7<%l9#?wz zL$le{+aA?F=Y^FH_V!2fw(p}hMGTs6BuS#}cbJz&lk}s{xZ?2No*a-Qm^`PA(HPfC zi83|^*GO+qfo@9~?#P3yUCe&N*)n#=PVon=zXrYls&@jaV$e!$eQ5>zt{$8ij~w5v zoNo#&%-Zp^v!om!#NkYj|1jl2)ZbuJa3ePB49dmdBvRZDw~p^LE#BK@dwARPRT)D# zV|%`G_49E*Ye}F)E!=Ppt68{VQd=dW9BYfzT1voax2~g@Y<=xrj~i0CrC0BFN?O}E zI`LTP9*9o9%SrrxNzL2s;;!~-3S|^0?6|DK0}^VOUIS;l)Mz0+@a1*jyh!O_oPEQE zIJ`r4EM4`(c>30Jd>Ickoy5YKf-FA?d;P4ZjaZW0$%0>oB!(7c(cH3Go#&33(Zca! zw)g`oX#Ip!@bejY9Nm4KeMPhGNgdd5bWOjvdumqu!7TFJ)rs&yKz?v&XU|WL8|OWX z6AzB1u;;2ap+T1&BT(?o-4U3l5lqA4Zq=S|jNfkYJcDQR`IR_mVs#Hr@jVAn`RfdI z3PWks80NeV^IY@b4JG1i0wcJRiCN`i2E($Y!JfVZMaDQhb${!yb5#dJE0UHIy8h^X zTYS{d4^6pMX0H87SeXOc{NX`ADWm-p)@0I~giVi+IMT2DR?lV8WkUglzJ#iVY1?QKXIy<9CDU4H(XWyov$V3vfb*P_a zskX`m0lrnuKRsi1cl)ULUvTL@Ye+sckUk&-p0I0h7;fTWnm!=glD%6xN(&$;PnJuY zW#%f5GE;1K-wzi5b#;{0AvC4MR^uwD`mTl;1PIs9m)nG3LSjEML1h+W%i zC@^O)Rw?7Hb{VJJL&QCyTqT15M}{Qe~dN_kzMo0Lxi>T$Rp9F!nHgC zzFsQP8+u`v>&`d<*J4REJvLUQxqyGp#=u@oi3d8Yb`l zH&A=zXAc#GdIA`J5s4<*)&=O6j+r=KWVrcYORsN5VRKF#=K2 z)7lf2vWU0%+3QVf#{9G)NKt~`YzYI?hMAH_-nZMv-@o-wZ#J!Rt)895FQ#eqCn0=( zyMKLLAjGYZL(O32?OyWWtkL+$m5-pPPFePepLeOO=2&x3>EbTKR)MnmXHKXJhu4#LQ2>h zdY8Zm=}6m-JpgB)GHRGN2tN0ZYZ0uuN3s}&o^O0yhAiG8!W?4$F(F`UsqR>;$lFf+ zaPd5cZNwtkDYk)<&QYp}kE&lqDS3_Xtp;Z+$>FYo;l~RN5W8@}{Yr)IDC@S8dwvw9 z<7$T4voNz-vyddNdUPjl%w#Tpg*TJ7=7&Hy=-FY&{N>24na0#wX?|6edW&HaPRjh2 zbl=rgXL^^k^1!jBH&s&6jj1rps8uNIZFOW{T$UmFLnW_x-A)OjW`&2=(>T0V@ zlXJUqdlApFtge&3^(b3B)i6;r<*PK0EQjKUNnSDb-2y}lTg&>?0-@r<+YIt$=M`vg z>z3^Zg;<wMv^v-yO}1w) zOB_usR4IGpk-b%nU{neWh>zNf(FG5%?Oi#~pHyuQ-%(=VOUufsy0wydPccd_lQC6Q zJQ^=H7Was)tMzOw*(l)MESD199Y)>pWxbW5*a_iT^jZ|!=kcdn5Z3hx6a;pwxLV+_ z0~Xhy;?HU;(%yd_(P$qvj%U0oNxKq@q(3v&7sB?EV4%@2WdciUovrla9L}}}D9Q`@e zH0N3wu{JA(?%2EBjF9WU>_GTFIibTpV*fsclX_OpS@+Pi!RI~3JVS51?gKhwbF1*caGuYg+L$FB& z!^OsGU-bCk@bayAa@zwT%6r;n5b@{K?RSWKs&dZ6wWVcf&Cw){%B|5VoPMw}p2Y)rqO-e9i4@yXfYziR}v43GYJ(BfFK< zkKr}z7>#=l)4*paij&Jz$C%4w+7nI^eEx%5pr}{&*4k)>pezt;hQOv+7_zgL=a)_N z#?a|p9qunEGk5q-g@dbyPh;N74iMFZ$=}kWojd$_awabz>fk!#%;7szArI@!STirsX%QY{?IExIwff{owcCpoUyb)#-qRra2$`2;cdW zcNozFa)pqEG~ye94hWlVYXGq$T;yXQCXI7r^&zr`*q1{)%Fi3p)OkGKypBcAAe?{$ zlpG#QVLe9uji5kGkG-1U4VR2vP>let>Wz%z05ctNz`j4`csBGhwEiGp{o*0A8VF_* zTLMrOemL2@KIpIJ-M&|dlGAJ~=t`tmwKB%r@?w#fcnqJkNMgRNm1lC@nDDP!F|_{Do)SC{u1ssc|pb}*_dTcP-ooG8yu zlvH7UmuW!#sxBYlUz>gMqd8QmE_4|!PTUHBq!fj13;(j>m(|_Lc>@GznXh+v88eZ& zAq=wHQgu4B+>l~RU$W>f_#(!T)!=5!ZiT+JTOo`blw!-_*4j;#Eo(yfN;hMji-RlC zrtG5$>6aNc$TdmSWg;By-K5Fp8+zowqdqd2fUP>d#=iM*8}Y4u8ENFWG(-Vc1prFN zLGqRE{3E^Ouk^Wpryu@K41F*gD>av1Z{6f7m94@8-J#rrc~rWYg-)X<=Gkay##k-DNMQA+7F{MogkniOPAUe{bs)+&F*2wa!wAM1?xQ6 z%L-+tzwk(^(@cPJwKT`jP^pCTD1;}Ne6DvkBu#PDDL|vJsIzK56 zi*73fB1@TNlFX|`y|X06Hq=bOYVN7Je?L6PZ8s%{^scTiRg{^F7X2N^;uWgv+@|t- zDpF=xTGU>kJHK=gp;r3juuS3EsZsLVI?2Yg_?2XSg+wHqfPL~$+?OA^*N@KE()%=8 z!)iyDK35I0SfybmlaYtHQ)H7iyUT7`Wfq^3;#5R^?;bIr7>7!t#v!cAxbHS!!r$k| zs_nJRsnyw~%g$-x1|8n<+qYrbKk9N2O^s5>=h&}2rb+=96htH{=QXbNqBin207+lm z=K#p;^d(_5f>mabs(#w^AHNc=ubE^qZ&zxLm(<@-Cta5;vxZ2x0lzi!N)HMlbWsNd z=vv#D3xtzLT6zbZ8NHt(Mvm<&vucg;$=4_=uAQFOdZfsn9XL3mg}7XqE{^a&zr9k2 zVqD5tnMR02poc(+VR%EYR7895;(Gk@_aQe>SVUTGv%;B73R0*+`RSXO$_eM1wtbb7zFFuv;r_4M@tR2D%6Zm&{C1O+aN;B#q}E^n_Mj3A8UJIi#MtxR!`kgAr_?3J#sa`#jNQW-Dy^Jk|p=%NN8w? z1w(qUg#lB+GrAU#r~tH9To)64i8UxnpA+KEJjJ>AS{YSIlLJRohpv{5dxa`6Y0shyy7C%+!`ABVZ1^@R_h`u*p>*L!-+{m;!SmeV+|J&=c*Df+NXT#K8EO zygqZJqB=H}Z;{n|$2?mHiLVVjT9HwD6EcC|gK-+sayeB5T^8ZEDckv#Y4{*k-S(Ox zBXx#i0QU+OL>xq_IH?nu8k{6j*x(2vInFFLjzrwDqS*p8gcB@>dCadPjtH{%JUuhv zgNNQbrfQ7R)f}*mW^9A`XC90&KrrIkuj1SpFbT^UYO{{tiqOKaz6B(J@x@}&f}4mk zN*kipeyys(`!eB1UeAmcE1*N}y)W}OjTGf+x++DBxw5}~FAM$l-5aVc@92AC#&%BV z#!dLAZ>dobB!#+U7TVA!Bb$e^-W6J~1TNyKQ=&=j}A+22&|OaE4>M$!OM*$?|$ zB@}q=SCiq^pFXVnW)iq|2mvzSu1}C70S#}EVF5&@q)cJj@><$RQWgSnI=FBnH@6dR zz9;`dT;=R2g(}iowXW2b->U-NTL6o@3qrhgXZCIbLWv5qvU=)NjCFb_zJJ?F!%AGE z7uW2rk03aXtEt_kki6qaMe!$ zrkzvI0Aw{~x-r1Nxn93>LCITvIbA^4SLMGb;y4#qbTq2|Vmi46b+SU8l80QwbOWPP+CGO_x>1=(pV@JWHlBswvrw`c={(-eO>z)_%skk!@Ks z0}W^}f!A_THGaU%&UpOOP6jAx>dz$J|Cy9DxyN*~e>uPx?u>Epo9b%?vhBG-2Ilzv z0ACcxJFgCmg9@p}-}7z+W@raHeN?M`jOmJ}UM$pVIMk2r2|RKsqY^F`gW6#?6+xD45MllY9~GjBm+) z?LjrA6Jh;_67CVwsnYDzBtFYMHiG0wHiG{s%q7|mHqTf&G z!-viFZpOEEk&f&T6+Bt}P&6yIHO5(%$I-^an}frs38kv&;<>$teXIOP3!6F?*5cx2 zLoP2um?@WEwWs}kvZrlQQGBpx|X6vZ;Q5rA38wzr;GxZ;1HF z;1WJ~D==2Sc>PDNYNgx9UIRWxaPGmCOI23#-Ocu zy^yz>)vfhY4b+Y1yfJ+9x&=;hkGCBLV{ZsmE6^ZSyJ4HmkdLt!qyJ<0Z)&+es4+m) zuyVh5-xIAH3&_dFe^9%bjf1EKxc{X7PK6nP@_$fYbPd3Fgl8LV__V(7G=@K_EbGOv zpUq-q3~>KNrXASPMA?2Uf*C>K5vGMAS2N(CO>VYr-yhFyT0C7dAlkXxi}8DxUHGoq zdk*O@@>|yt5V;!cALPw!oR|^J{|EVuvFz4Ebjs$M(_iF$#;m`&_=m z9;&s*v2+?4ZgvK=3f(twv>{{?y|o>VeaO4HU)=fHSp-#F@WiN%^5tg~pf+*HcPU4V zeuYnSHs4R7GqdvO!o6ufmeI0oV-`$T<)l$wiOAKxe^slo6V<3L?HkukL7Pyi1BGp| zaPqol$moCvQ)~eIjd;zRHyIk$F&Gu*(gdT(abu$dK9t+zIzu0+HMI?J_oG_o4|(>} z@GL9IX((IEvV8)YPv6xv-WzNwuZA}b# zYEy0s1$TYj?j9}1sj%=oBvH(7m1eevsW2N>1iv(;KFOmvTTomU-PWR$xU*&dhuv~rXK2_f`yN@anjkigY_@vT%bjr!f4dc_c>P_(J!9l_ycrTfuy&!lkwG0NiqXDqspv%&Pv&jOy zW-a?*Li|alErXz&Lnv|hLA#DE$S^`MasM#zk5Db7vWcWDB{aNZl{aRgaS#)xa15-S zw%l2;SuH7z;W)|w4P+LF_85x`h>j=P?GO`|dSgKnXYNtGi5gf}dC1?7NvM$k&RNJX z@NH-iTE}lR53x#E-O!8QXe}OBs&)1NsJkv!6Z(f z;R3axXr~5ON6*P{;vnKVP(B#r z0SHbC{rdy94)g)j1O#W4aeE1D$m!aGE<70}8bV}^A?xTd#A3aa7JkxWNls~O1A<>^ z&YwfLhkD_#^thK`8q%J+r%%C}DlWByig!{5D&7ek>_~uZ3)DZ0XP2%2SMh2(ZM(is zE+w%3r4XSXaqpOLdz^q~vIo-ISdAv9)PokztCSD}LW3R_dMkd6O^j61L0xu0<;2I= zA2$lnuKoeM=3T#gzEQ6wp<-ci69Q83-9TX2Xy1sukbTYU7vy>G8$19M4r`b7^Q%eJ z8g`u=S>doq9^HB}x0)rlndO|`7kSW+!|)F3HKucwXSW2WU_Udyxw*^vwhLUeqnr!S zd__7~^KBCSOv6fBBBXRv6AKia&+o%O4~u44bu6}C%W~+%X_{*8z3u2hSVFuEJ44^3 z=qipv4?D|U8cctpnEFD#j%V~_$2G^7P5%Kr2GK3{vC*FYs{CGDsnZdjts8~4d(fEE zffwCcEH%3)Cr6rozF+*YNIeF@CV`y4%2q3}%+b5=S@%=mcZe%Q>aGLtJ|)?SX)p)5 ziRuVx(*00V-0^g8=Zl67@++Hev3UL~H7U9+$L+#^mESxJ05S8@<{a|Yi+Kcs@$ zhd;P}gBy5O{)KUacD_`|Y@rK?duZG|Qp|iP&BHoxIhX2bv{`rA*V>T(rV5~znW%=G z0I)k`&e_k(2lFfMgNhgY0FQ)d41~xJ{F;5<5-!+8u{`Z)-d)f6T<*eVd+K#v!7S2tkbdi}dDCDx3vX03xUekQ39X z(>RDJM7b2SSD1KM4b#t{e_6dtf{U+*~u6CDldqGj(MSuBpTVwY&_@VI|V@K54^K;L3Vvo*$w`w}u z>z67nM`iQK^NNU!=wJ17fGssRE@JP#eDOWE^PRN_%Tj5evsoMHbY6f~p{WfJyOy>6 z1Q&uq@Gd#WY$#blmE80$Sh3N8w~re3Gxy%P%$)8QsDXjlWj(`5eeum^p>vDFgapgX?YplIK&dcdl!`<6%mvf(>;(xb;SXr)JI5a3)kz$VE@F@SutL}m zXhqj+qnOKhIqcb88-TIIMS_E3@$AwN;cLQ@YFy<~)cGa#UmUKFDy|fhiX0T1)|r#; z)oYgODdTcKHyH#ZRU_qq7#2*4smkujpL*Zc$VKIN|5o1K9qWijR0&-AyaW!aOm z&>|nu)z6Q;daI)_SzUXdehYp^qrO?=a|Q_x{Ey(k>{4ivKLz*x7JU9&a23I^s~a2W zxTS5EH?)X4i5A0s63M7-ImxK}U%(!{)k#4y{{mKSb1{p?og4zge!ji|sugu?@QPqR z%QM~Q9*FvO`Xc~KhKfK$voU1^R&HiO{{W5}KmevB%#?1uhZaFrgTj8st9F0s@HRN_ zdJt2B7K!AxSXL{nXA^}M@$KA9q^stc0*$I60uT9=jaYI(u4_xTERU}9*ZKiJqI}%e zzYY?WY%Pjy9(jTM49_C~tF(Kk3j;|&(iA`?G40qe?qxam3B5vwIc{;LzyFDSt$r@? zbuQ>)&UNW|xG*q#=wHqJUu)x*|6nqtLp!#E0;+Egz_oJ=)KPY55rF6YCFm#&z4}8Q z?&*$}e@N#=PHLYaI|0M=599?H0qw1K10sB|!X)gK`lDh&`il|fbdF)EnCYMO11(}J zSw)K_H4G5&lu%3b^6su1QK!d?x#055XaPbWdlo3G#2Pt=^*0Euj>5+vHLz`g4qz4F zd!LVHW)w6aN|d`b;KkNP?~WyeFS~r2f$(;LTTs1hQzKMpiliM8q-##UddykaN%1yd zkeb(3Sj_=f=eD3b%HeiZr~2^4_$x9L9Xc$6A|WjKv%(32w^}Z44^asLA5uI0cU#8P{dWiZ@emvc zeb69#FNAv?w>K*OQlJ+!GeG1F;lJg9Xfqs&X~~bv1J~=gdon}9yOGH54L2rj~+R&>-{s+bw|h2=Mm(LC*h9r-K~cy??pJK_#U2hrsXd z0J?iZVnrCm$|7nD!pg)aCP`B=ljl1D4}=HM7o-ZX9yB6#nC?KXOms-DQgVY(X`bj4G-AT6D7KPT|H8GE@R^zQ+^%DsJKa*h!7U1>J#U>We;MHuJcL^h6GFV!J#5SO_(#lhl&X(O={5d zGHEnVxj`j7$!cOOF#PPHgSlmJLa`!JTL)Hq*~6BJ@fIJ?;!V=T9OEZf@tVG|0rTSc z7(Od&Eqi7~z|h$9j1RjdfYVGN%&v}|9H>_cAgbT8~e%H@7Ni} zZ>q-RMNtxy_8w;~U>bEwaqYCh7%=gYK&P=QY_Trc-8z|8m1~?Up&jJvu`A@Q3O8a8|+^R6j-Po-JJ#&FfygS?cW+=Oj; zpq(oE3xna9mZ5&=)OMn3gq`3Us68^(e0%#v!Q*>rcgFJoV-s^wBLS$%$DYF8YV0=R zwyvlPBLok&b>nRsCgztF6-%TU!(&^%ec?%D_3Yq^(aOOyez3nvEO{&>juI@VZu?P$;UR8SbBpOQ~2A9_NG7O8`A>I zUByGd_-winWYe;&|&GvGDGFc>^A9?Lry<16adoGeXt*rueiKwy|ZpqeT7Z1ji zhMhRH9}bcbH>Bx?b*6G|L9r@6eGdUWy80ok`ll{g#m$_)rEF%xaBBBPiI6p9^BnP9 zR0=WZK!h|=XqI#8j7%qx2zqrqPjE{S=qt_RU<9ft;qS`e8+$=H;w(Ahh?xYBFxU__ zwx~9izwJmJnCKHK{*g&&;~hy*m17g`twJ+A*pAuP4|@x@Yo;RvWs&ee2)3V zLJUPiaGEghkm;AE2GVPfizaYr{;dKL^-mQcJy%4ELv?4&)=UL^`3)bpWLI#TJcspyejz=MM52PsP*j)tP|^757aw~w{PqjILpTc z2IgE11BU<4bNgCWE}x_IfZcdBsFalqMm9R`JB0x;WH`Qi zk$QVCTwXqBkX99c^ntz^bc$az+aF^jMrI`V1o)Ls^j&N#hx0H>*!`>DtA}UTlW*&K zCHL{&Cej=C{l0xGa7nOgA$!yB>da^tK(o1aavO28yW?4J*!8wQy?2`a_Hg$0_;E3P4RyaZgvu)D3#k8H*21&ZL5nk`J9x{GvIT_ zhAl2hc7nhMuV-edA1{7yi|Yn;f<#P3<;5mh4y)0CyUml6U+8_a&LBiBDraiLR@yghniJO6xj0N z`Iq*Ln{}g6jc%5#%}s%+$mOGpFAqLWt*^J6Bz1SGeAjGj53j)5m)rhdD}8ro z?CTDX6pJe10a}`yoj8y7cWoZpMD}JER^9RoO=kCM<XEwq@(TDyHWDn?G{`rTt<YsTT`gMi{{m;&iX`GfMF`@VG3(Y$+>8yxv8%uneZwCYJ+aK>7f*=^>!_4S=sBN(Px%CaJx^- z$T{~ww;+Rw6L{wPw>^^;XYx+!4-Jiltg9V%=H`5M{y(RM6R2 z-)t@)*7eShf2kbmW0{T!-J9J99Tn_+a(x&!EQ`zLaVLo;ECKewd+im^9~8eB^o5dm zGCop4_L~1Fp0_swX2(Y9}z=9x}EDQ>nr)i7t|Ibd~aZh)TCBi{gpVSvJZTSKvNDwlmkxxKoK zehS$m+tZ_du9i*c00a8W`7wzwHILsw4j(gNX--em8z=7|UmMpyI1S&)`s)P}vU!)s zOqWk?7nX!#iPMo}dzN}?-VGCxqZ#?~Eu7Yi9H~W%RMU1r5D&o3(j7%Ikx4FD$ zs3^p0wmEr2&{X~s6Jb{I+REIyeRCP(`*ZYQ{&D=_$MW^FRqdp{6H(Yzh+69@Z^o1l zdg}9yd8^M0Uu(B}h^a{B!nnch)=mFt%(zmz-FM%OAO2Ib?ujW}rw%v!cG*D5huO2~ z6oJ+?@l%SiwZ+QK6yMdhd!@nV%Acd(0ea4$@2{(A#8ZB&Y0;*qF`lOvB;Q}Qo*An| zz7)ekk*o;(!ah604OQ6j;$6p^<$HG!X(pVViKS>JoRw+jeLN?DVC+`b`|A@_Jq6VM z^P?r$h*CDJbD+->S*-Vk8D6kCDN8_u5sFnd&UbsR0)wbnwad%x@am7?3uiHPt)PWto9E`O${ zky3BhZi3)z?Fh1~)3VRQ^K*=paQYtbO7~@UcdYKYLBx=oP`-@$xn=o`hlP;I9u;sq z$C(PToXL zfJ&}Rn<;xUS2#5^4n-jgLZ=B{p&|JvbTP5umK!+7QS==MvUxZam+|OoH8$8Aj}Jj2 zZl78f-Vs=AUa76-7zGUr&bBMp_n*xYUKP8Ky?*E{Xx~lF>PmFRn=I>T_DV`>1}`qd7J!$(TG&d;GXqOUa0u(Z97aWH$o+!b2BOc91f-c-vg#%)6!*nCehsDjx(~ z2iCOa4kdJX#JC(=iz}JoL~BNRWO(L4y6a^|zkE(YU7Bh5ayyk@FS2~cmeC8x73W8U zw!q#+`^kG+b9P5;o!8BwM-XT5{=0cEvt^Sp5A3shW5JMDT#m)p$xoKZ%Tr#ZB-R|Oi5KrNxe^NHBDHtgT{f?nQ`(*sOo^w?ly=$iq&Kfv z4s6`tH=4L?=PU-uz@>yophJrd)PJRFnC=jEK`dboHTp zLnrRt$HTm&P)re9YdNPVwX4ZylDN*wcamRqCnps>CzI$=_j`zq z-gDu>=1l_)lGp9*2(78JdD7i%;W5->v7@W<`0W|*z@k^FjH~#Y1%HdpxgpOaNWDVoho6VvV!3?Hu0AZcMe{scjxZ`XY9QWpC?*{zS*g! zXd;EJJGnlV9N3L_-l>ccdUU4&8pRAeD=uO@h^OQ{RDE?jo^qtsxMwJzTJ;Gb8^oHg zyeR6B_4UBM);(*&xOl3uiF|Dj<^gfekxKO1MBG&%LU__~slFe(ygQ(Me@y>P87Vf@ z0v}(LXiX=CvU$5duqX5s#@5;IcNKG|oIm8_tYrJr!@re1r8IbXcJJLm^z7YX@CcT~ zJN1GxoVm&-c>K;n))Y>{C;51alTc*3gzUzVc_8ex`S#-cb7E}k$5=al(oazo^aC&X z=m}OAHGbAJS8G7-!PTmEVN2FbFn*RA5gUn%tlI&*Y|Cn_yHz|f(}WFW z&x=thkD#F>tXsoRg9Djd5(|kH`}A5p#jC3^_Pk;eLZVso=beH!{-C|wk+(`!z}K2A)sV{zb+@nA3y;rC z>vnnQ=Z4z__XAeDDQ;HpN#|{YzS3|vncKaL7UFAL-#h4@mDGHh>MXMtIsurT(ro5= zFjAxTj%JgcTAV3ULMJC)s?)yHSjBW#(vob<%6{EB44G|bOl9l7M_$}#iMKc3%gz#- zt@LHmO3RQXt|q-XvZxv=cO=0?Y+hbn!$J=iX`!;N4qS9Su+QTG4Wl!-W}DeQ`&r~7 zf>gR{w!y1MmDb1ErOGua%Y3-skC4T$UP~9g(S9{EzU=*B?mN9v;aA?~O*f|flxtbK zRR03D3;)YK6U+Z~bo4E7>UmcIEO$CqqqU!a;MUK+7YaDi3|lr#`$mYBmOc~`vHl(2 zok2S(5q9MEJMtJ=@sd}cg)ZkjB zb-T;#d6_e(0oi{7c?13064o~amM$>&36x=2X{UWY4i+5ey>;{Yhm4XQbaSe|lO9_x z6T{7(XU7^=htJ(f+48-}uFQviJRvdC@w&FxB@Jnpv+-C;|AsM&@0#7mAjv5)1m@1s z#=6Wv?N8(D*ffolgX>Us@{GEk`)dTtd~L4}Oc=AFk^ng|IBol4l}jXsq7)}v|AAIk znAOtNYCg9io=CXr&hh2lO)UWgh-(FFU-VFK)r8|>{Og$|*RQMe-Wx@I*N7*&EDK#M zKXkdA9Cx>s#5C|*FuK5}$|*PTjq2?Y27Asp>tccXF&S!Wr)r+W4fZs+;lONWEyxEU z{46EgGveONY7lbYe;g+zDC@{cNw=SN;UangxeDA4UW(n zBht?OcD(G15kgK?_t{lyZ(EBG$SsC?ciW6T?(;$q?#Q;AfawpY)qKFmX4XXiPYZx{ zUwIdI_SH~NfVUWuw*Asysi{tmf2IB`UG3(J9+KfOzO!Nef^i*FG9Y7^Z%b6fFtTY@5`nOXFE3*GI)UZ0en06I-GKjn4B9yFBGubG*62b~gjt)9%5(H(Il#w9V%7BgSR5#jT!QSJhB@ zt%_{X7p%0PIE0cqNSe})27FamqyFpx0;3B;dgXO%Rt=~tlGj8uWboELm?$2h&Lyp= zG^ZwFGajP0U7)7lWz6eAH_%2m$nZ(EBIM1-|Hh`!b2`Z1w7@?^z~Y9~d{qL9!w4?6 ztXn1DpYymv)99GyZF_G79PeVF-mILunno!KiLp6O0X|VYg|@8}w`uh23gXgsw@`I+ zJ{Pa@spxQLb7XnVhqPIgw1x5-of24W=z_E8K!sMeX=Er0T+}F2pog`k_Eg`h?d&hk z#*6Pasv>(%?$vOf)nMMF&ep&=*1$R{2!^%AB5Wa^fRq`y?bT?X)fgk;@IilnS^9(& zmdV3MZO0fg*H7Iom*z1iDcE_wp=LE{IbPC{$c{BKjy3*mK4gYKiXOIium|qNL5@6o z0*{68jx(~3h_3x}ymPH>P)5xN2(*q@KQ@+4Q_?>3)LmzrqbK$Ait)XtF5VL3F{_=- zExtP9WroRF=gM`&a9_MJ*?a%2*LllC+W!4JZN!gjgV+KVWnnZ8RzLenBkFSE)Q#cO zN3y~A>(P)y9xp*Pk>&`g^``N;itlN`I&7hK6s8ny!Bdi&ZUN_m{eIyj) zc;)Td?fBZum9EI?BPmAQ84<~K@Sya)$jc8CT3ulV@9DL|?0)?&wNjB>6VQ4>5d40s zoxze6pWJi6nS1hb4#|}zvzR-zSS5c$x1&B3L>kgk*(9S+{ImVf$17SE6}rbPRb%lg zyEOnP0n9riz!*bm2qE+V`Ha}Df3&4ol@tU-jGbi|V{s1gfTnY8a{(RPn0K-H?6Pc;|3x%v+ zAHBY;Qr|kfKfCd>4&>U>FoK5W;$A#xu2Wkp4LY1lC86NHK0R zY_|#GD?s>v4~YW$Um-8nEP)~2FaL(*dkS4@u>4oZY$y~m;qZPWh5lTX$r4g9R~uSe zOq>nc#~2imDAjakaidv`Q3MBLC~|S5Tk;^JwXRe*I&lyqE2z+XuX8D79-!LFGKXuc zFQO2_`B<5YG+_;3hxVZ`ATGZ}YWacNDuu!{zI+me7!8K`71c8}?Ub-$e%vPg8?8yV z*s}s9pdEBzBxn&t6aofytpL_(7H5lI<0?}fj|_#qz;%6rj^(b-9tPFT4DLPz<}zb2 zeSq(5VyEY3!T%iSk{InpQAXKG09N4N!mS}@ct(sSuqF`DmNxw9Z1Rd7DUp( zSb5`Klz>mFIPC2qxX~y9BXJ0PMn7~GDo{ZE3vh8v&aDX~4S3rBG??%IxxoO0WWUDl zoFAX=fb+iTo3FsEfXBe~OXuk|SpYo*bYltv3PJv}uTlIv{k~1#E4ixgTYD;`^MG-D zIMgJ55**@WR#F7|q;AshC*et=L6GARP&$DhLjgnnc>}1#@AOE&$3}+IW;bSZ2gB}D zH@uq^UHCYW6pjVZ~Qs5u_aGk7|1JD#n39jM}7s3L}L8t5)| zDS_%Un8=>is54VCsnTquKH8en3HC$&=tcc7@RjB09dE9m=IEQl5!>$eU_+>li$_ct zSacj+9NWB{*$f`r=^P{OG$xRsgg1Di@$tR)LN)OFJ`|h2n)fD+Y|zJQ@F741eUNCP z1~`JEY&oOPNLs&3L6EikCHqv|?W-Mi^RoBIz5h6+7%_^Sft8wZjE!e{y5Ylu=V4d3 zqikt&^TONhJ3X^Kt>E!isXaghW@ zQuBmHZb#3(6sj(7=;9w?t2@1`KY&*-o%T(m)ZSy(Dv;?S(bI7Ed$k-=-40HjAD*Ix zNCd-`x`UERR&OG22BYCb{%~lWnd0O{S_@1av4J1CLEme#l~01TafY>T0c&V4CLP|1 zob}L!8e8fSb>xLT&y^fyZPlU5o_-eh&OzZmWLL@%*M#TKEup0I@czeFzDkh@9_q7 zEj_CzBkSg6k>Jk*FttEg%7MdjP)U6H{cibs-;TW>KzZ8;jyL3of#?HXn98r1L;5})4(D?YUT z$w6I5n%U&ia@g5eo0#a>GAq)cnlVhigdl2!CSF3{61V-ze)DG+f6%R5TxKl6>y`Fd zE3~q_cdSe;4djF3ST!5$xxTgVXr#zDf6WEKpvf0jAVjZpI#beU57tZVL2$u6WE(es z)7u-tF^ZFg6=i9{E=8FpNnh`Hbq7(&iFbO4X9?Jhbv&%b~&GmV-?lDQ0y zV1`$St7MdHHL7X2UQk_!FwfwPE6)B0DS7q(KBsr zcrUjRuS@+$)}iOdASbK4lCI zoI5W^=9ME_4C6D38LPN7gf?&!hE-cS;cW+DdaqY1t6>=4ZHS3o^9lbQ@%PfJZskA*9 zQmVWyidnPSxR0V_@a;*&Q^XS=6pyBkY;o_}a!L{{8C%#Y_)gM!5M_OR_)hAopc{`^ zCg)Bg&3H=HAQI0mzdHn8p{P3q52wR?gfhQ7`zq)z@Qw?NL&-p*bZBcfHHLzQ*?$h< z=&^`~fc3e+mi}n@r}TMpTW7dz?wyL766g`5o)z8^qgnkoMtUO9qa!=wWbEWWD(>jm z2>(&x2^wr+U>80lqxSlK_p0<+}-d+Do$NR))BOBTOgM@pbcDCQhGe0xody7x^s#!P6<;o%fFr1l4Z!%# za~HQ(HpoudtbZ8A)E@8bv&siP+pMir43Wkgj%%pY`gr^W;76FX0pH>Hyx+z}>!CP> zvNS79$@&?sI?@%oC$;nMeULE|UuNCly{oz+sNHQ?iVKz5jnEXMl4$%4+ z>Ihy+@%dlWhR}q8g-n5m94uQM9H?+k0u&pW>b-J}T_p{Ae=YEa&|;N9o>kUjq#%Y4 z$qeXl&TJS)Oxt0!NnH{8E~b@mMBHJ#a84cnr|gAD^`5wu=Qq3pG6Rjd$=WDR6EP@Y@E9zkN7JPlEL$~M7L&>}B)(z1 zP+22|e&}KDlO`%dPOu0!+3z;)JRT~ zBkG#`6n$*l;ZOt<#9=(f{`0Z&EXI{`4CGNYW(Gp9^!(Zo%)H-4bPV#9%z;dqu6fNiZs>3nTcVnqZ&+&yU@$GmEa!1 z%1_A8EmE%fBZHMpHC$gA9yWc(G*Xh?V6}@n#bZdHFB8{2Bz#^iLTj9h5(SZd9%dpe z_+=;AZsxYly@S)%3)g1mOL0kSqhmC)c;mt{68uT_n$<9PS=HF6#SnoRSiBgex5`6& ze<6uTatlmkd0#HNvljhG}R z<}prrVS*ZKwB{{K!B37oEnc*o3M?q!&$oXqQk^+a1yWCKS|+7fm6b+SReIz!6O{xh zl#+Ob9mC5n})?V?IGAG z7~G?_weS11{$*cprjb8xT|hMn<;LAL5T|6puF)^^QZV%9K|o3HiG}1;=;%+`UNg=J zCa2v{Y)F=psh47?hw?eRlPlH87dq8k%mbdx8)@M=n9~Hc*Zi$|%>=?Ttf$)GTQ?!M0tG6Fy4t|PcL-aX^a33DIN^A?8mP2APK^+XMaev*iW7V zGL!@kY)s61H}_w`>>Hl{#!Q&lDwsY*f`vu{crJ_s2O5;L51U}7@#FM#bDe5<%72uG z!U2_1r~#D%lmx-!o%j+Mx20h%F%)IDbxafw5j7mU@MIT}1#~D6n{^Jyrm}9#s zkiK+4@S^LDco9qNS}t1>vKGnSnyOTk+Tb45!5tcs(2gdw1$@yOK5SUgU51$UGXfeC zMfRN;?VpL<^{C16ejEyyJ(y;u6nLrpuNitgU^7!kgQ#32nebt=AQagEHBENq!HB`N zxU$VRNT6BY%uf-&Oq1?`(8fD?A>}$@0rw}Lg=UC%x~y=N$$}3{i=L9>dG*O7!3Ny_ z6PBz(OgjPNZ&<#JgNh$140OH$tkTIUm{$6gE|tQ+*+NtxGt;V~=5$N(jrFnA7 zy=)4D(WM$R(MrtzzdrMO3|iqeiebnL8U+NKDsEY;z=mc0D=tX-Oq|IHB|$6!4@QM! zX~yCe4cFEp@7*cyi~yC7SqqW~yoy&?J|gan*j(_Y3cb0wTf-4I*jo`jXS=4kp67^6 z5u|d_))93^nF51#OH}4TLdJYgt&A5opN5t@nU)hm6Z;B8MU5+aD$0qyqBb9WdPC^6 z7To;83hllR_TwYY65a$An)Cs&1jF zGe@42Jx)USKGY%paSTVKw%dp+uStlB@blS)i+xwW|53x0W)jyJ02#bKS zRZi*890SXopdmVsr!HoMegzNk2OQc?c zYW$})cx`9@$hn2acLKJ?K60rkP>vGZ8w%2KQ=+1WmIL=bazE!jvc)tr5U_pC_u0B- zqbUgKY`ts9`iN)9Bc68)kWH$XdT6B?>xPTf`WfB6))&mxSmlRi-ryvfZKV<1e~ADFU#VDtfH&ni=df4--ieQb>aQAF#y-LbwG41~r7 zxDtOhVZIAP>KbgA`W~^z@ny}L=(p-v&i(%x>=U4j_hNp~I&{%4WN}(m3Hx7k)+4so z2xHfN_;^<5-~e31a*mZR6~@?oS^BN7YZo`6uy#4VSd;8=Y_P{i0$gPZ?(xeq^2d4q zNI~>loK}WJ`ZrL{fYpASoCXBX%$rN**4}Uy)Tjx4;DC=P6zjeEefi|ZH%Rctyok_Tug}&5+LPv1Q?7HA+ z3xMRA(Z`eKnR!AeE?@M~f)?r_l&6HJ-LMoibo2q&h-VQUA%MZrZ*gP_ zCT|!Yn#}hD9}>6{-yV5d=AW-eF3xvMEFU#K_OBWk5((#%CKArUjr}-kiGv}ZRAt~E zdtGW&PbtW*qS}9z)o6nGY;Zt7~!b6xLYs7 zMO4`wX;NlyFqf8^tY(Ua`cFt|U`XDxG#50*LKeCzOOGyCQQiO-up@Badd1(=>jeB^B9h7;k!CjRAha{_$PYY1OZuHdiH0cnR5aJA>=0PrK zqfNKbZ=N(43HjOS1=-0I;X=CI2e!h^nAaE#Tm%O0v#ial)M`3qS8Lcb5yLPLoS8)x_QTx zGEZ)J#kTrV4onv%k%8$Vn->fR@=>wjqzuNW@AUTSeM^3RHVi%WW>n&*C9Fvq&17`T z%h}OO7~Ccpg5;zrYt@vbe{tes_iFa%rJ;6-x1}zUf(Mz;ogYFT3eRDW8L78Z0$3C| zVKhK8t&ofGvWoH2($?w#DJ^M*{6k4xoB%}=Ant~Xdn8``6&85#q@jLO0qoN}k#T8G z^hE&A5-r|6gXGJCRwY1ZVK&73IB`AfrzSL#|73xck_2?-Nc`W#C1K?iX#3P=cdgnL_u5EkWVt8fBSv6vtjuT0f>QB?nV=u3*o zbE5pYg_)R~(5kY?5-xcg|B;YMS?1nS*m#&+sDv?Yy(b#KD2R0p$_x4Tv22cUs0Pj( zvmcz>Xb5U#Ps0_zxCR@xoHIdZ(gBoyT-%0ev16Be@;#7N3W%48))0Pew$2Tm%9GGQ$RS|R``W4%Oi z|7Yo$#KlgvE^Qat1WWA0W+&2dYvTLd!0gBlT+=Tsrm+`2P?7$Qy5{xM`7;SZk_Ai`fmN>jmsd}LO$g4sU{#AM8^iM!|k+ljYF zh91cU&ZW`}=#tdk1k0VQY)%6g2L8D9o%CX2pxd;Rjeqw0*DkMW(vmQ_rH*oVrp&(h z_^3vz%)Cgo(E^pmw)AREn?5PF(uf)uRz`oWlQa*f%K}8@V?@`}MXTjh)mo8de zTQP^mPq-foVT#k%N%0KO$%k9~!D9(4;j6MGuDk(WF(>}57;sjSER)lZ504$l{S?A2 zOFdVg!wZ%4EMQ_e5A}tk9lgdp?$1Ak1=tZ^8&Y}~W=Q_dkTfx`_mgr8qJc(LPxU67 zCt$3n^^*ZHB%VSfWGy@Eb0j2-jL@PxhzS@L;sMR65`a&uU)H0uGHR-385(1NIAlW} zT)7Q>MCLP?_*%uIQe;L6?$(Ko42fh4Xj*1_qV?mw_0ng_7_Cj?b8(ygZzl8?0|R7; zXX3WnhiiF!Op1m960HlGo!W;22t&9ZdJO>*z-bULEbX*enkh2cJKO*X;Mp8?i5QhU zLukw&l|6eBl&IOKjf{k4ElsU6MJ5HD25(YDU`c9v%8+QC2O^oFKo2F(T57qDKw(wf zCctQ!>F*aXL={U5KwxRNqcAiwGpO)Q1YI$(-3--JWD)$EP%(eDhw4)o`LrI$SBnJu zhm@zEWKw%HCTSi<|4kik;2(8jDF0iX9Rg4t4@{5$+d1aH!ORX{Toc^N{sD5p!iBzH zk5=gTFH&p_cXxhCIjK;?0+j6#+J)>9*o|d zGNblA3)og?`2*TBiu!E@Dm&mN0U(WELF^y66A=m&cgQy)CsHlauP!m~p1<|=x(<&i zGG`-x&PPl!5rkt7oCgu7rKjV%pIJw`!{+`tyMCf!A3#sf586X^;z*8V~1~BxGI1yqo*ou!pq$5%Bp3 zX2Zes#nsSmw98Kw%{r`;;uD1AR7#v6?BNW>_((yg*Px=+HEf(N`UdBaW8=B(muW

    (S{!q|l7Gz{OmF~HR?Zk~4uRhN)j;Nh1)p7yh9F%m^A36{U2 zQTR;F2uaqB*H(PoVX7n*tRAAKNG5zTCdQ{Xp*__+I1pdd(O1xo!ph;qLvy9v4hFV? z?*XWx6Ribtl|H!Y>=565#(P0!y0B$E*m`ggL_BhX;Q_Wbz!RmMz}vixMvfEtx7uu` zBneGwZc^}vWa6lM*(k=P46Mos7b$+|?8sn#W+pm^&v>}Pf1AJgMf}ejBS>!h>{b zeeIH3Gn9^CGUpF*k!1A^O?|uVhj>#kE&HVJ-tz#(CYZFJ-$$fE7Bd+yH!fU7eVLWP zW0HD9dSb>uGSJ5XnwJoXP|-~Ct1nRDT2}SQw28e3XTO?vIwhPu-in25chyU^G`Nle ztaL@7V(QcfKd*B(5vDqXJEn@f3rT^;L6>I}ffC$cCI9{&oL^p|gJpW{RZr%sbtsE0 zv%uz14(gq&uk+EO$L)t0OsV(bY zx%e`=z=IJK$;mapy(I%?zIp3@Uq9Oyt zq)E~15jijdQe}A?rXL`o4M@@0t1Awgc!P!(Q(8DB=HtPLPAb;IOMYx!HOt% z#%ec3MH?{cnP@CB#f>95(#`Xipj84-h_n*7ZHl+lC9k@2hE%cC16){gv)R>O%Zj;@j4$pXA-Z!Ynt6DtF#MPx7F_T_3w!>z<;M;%PI=hm_*-!S_w_AY<*xU z14)Yx9h*HOX30~a%(7B_J-xm90@l{aW}ZOSu-z+7tL!Jm<@4DVx9)4OmJxUR^XFa7D~wyLP)26(4_NR zi6q`MJe6~CSGPRMvl`>L?uG(mw!i;$#1y$cl8oc~a_PXrt+;TI)t&ApoK{F@|MXEz zyX^C`!}3;5fs;j=Go`#S3mnV`i}3+gwfeFT!+{$;8#q%57u+L^UleLKg^}e( zF*n`>{N1`4&cV}M8%IcATJMJN*sn});FX$;D$XM179CXsj3GX6Tvt7mp?aRMr&&H} zbB0J3lQf0<)0!lh_%l;PMcFFt(Ieoe<~eb|l_S%6^>-!XP4L;kt(`};ik=O!>wR56eR_siKULSJwKX0ctw`(OD~?Q~K#Mc%X2Xv(t_X~U|HDm;`@jsH^5tplMg zF%zHqDI_P`*|VMOVzRpRva`~9OL#rqsdr1EK_j3K4XSQw-bkOElhSDC?BLtYy(xk3 z3#NezM344Sn z4`qG2YLIpC`$=matLvG>0Z#>ZXD?U?;a#D~5`rCGLM?0Mam^3Mf_>+y=>8SE5RqP&g{A~c6s*MU*Epre2zIW^ra*fAy!vW*Z5c-U(er{ zjjcqxrT1(H(|9VGJiTfM0AFyu`5*RA-E~g0 zlUHBtUQRQF7l#3_4>4~KPm5>KCBiMoyZZMJ>lf`Q^X*Ruvp;XzLqc|sJYMPrUTxpL zZUi#}SBMRgOU|eJ4?+_HW$ZpHz%|HoOZdS?mWk2@&;M0GG3ey|nFI7e9Sb_>`M6 zc~mQWDxCF-EhOjo;X-M9I3)1ika_h9B+6~mcjE+QeE8&X-G}Gfi?G)5}omMo^*5Ro=(U;ejNdH zWb}OD^(4PasMw`-@#ykcSre8Ji}4L+e(hT8YHz6=Pa0(PwQXPX>C)3Z>w38ne>7J~ zA?kP7TxUkv1g1(7drN1ZkiHGnJailP){M_nB{w`f>x2N&(kbzr+u=LUH}Kk1gn=Fr zYVF?qCm5tPVX@b>D9}YAr|5jsAq^-YHPyl|wT3?0!ah8~%pL79X2GDDLyLa0V2t&aqp3!x-pFj%;1&K2bPWjREZ3 z|9Gp@>6XgI@A|4M#q~h@*u&*{$4W{4dcV5w%6)*yTXr${)*ebgb!#l+VZdB~+l{Y* zkiG*~pSt@I=~D&Db}0(03UQx0v2mr)fP_ydt#{}w(8aaudicb0kQ%{2?IA2+Rt=cH zMV^#H(<-q?jX^)z8y@r%Vp| z;5LFH&8WBjefM&r%qtr8K*Z&5d-s&S=fsPO87(OhR#4wUt?9#S%O!b4(Bi-)h&~mv zb@jZo_gs+UN36YRnR)v^<&;JOG-H^vEIVRb!h;vJ_*`+GPF~M{+R|qd4Sh%R#v;9i z`!4EDXhVVLK zLAd`2{gVo+jQY%q)cwB*&XmbPEeL<8NbZ0(&HEn`{{t24d0CAekOCU@cVVvhAU!Im zAg`E>KNv|68UITnBMBU}2O``bs^=2inov7_kNS60p_6#ylxuqzhCw!;gw8xk7m;OOYT>?_d~NeHQVkrKj(!M5BBy)^SAG#Hih+DZX}4K z?RJ=!MUwQQ&p6}o-k$8=i8Fdk8=*3+l@Vrc4z7{ho&sH$GTo2{SG$;ehjXNDj~(L= z+I|g$18R2st7A~hYp|ObK*NisHFt(|V5`Q^SSh#T>B*6wv$$C-3V$@;JKtIQxof)sr@`;oy>S zZ~N4u`h!XMxvLZ5Bfs3>(9WK(EEo0%W=C#p3n7nHEdu>6TLz%Oo0|hLUpM_B{jc#+KR-6-Rhzo>Ct+p{Z1aT${-lWZOIVZ6 zXcjU#K4QQwJ8O+mFM8M#m%$`(39(SXy4{0 z_jxX+SmZd9G^xgkV(t9AhQ#a`bxvl1`m*17hDubI>m)!51t{~7?bTJB^YSKK3|Ma z`@7Fn=X^?jWbd8|6m80`4+6@{w>9|he>!Af&Jwq5o{_!1rq8ucyFFeHU%p-r4SKe} zICuc>UX$JyP9A4}J|Ee$eCl{@70$Y4ex4qN_Iw3HS!z9D^3iF@KS zS_>*DJ#}(ImXsf-8qc{+L6(lh|JtE;nyu0%8wmJTJ^%EK(cSH>?03Pb^QEq|0vAxh2x&_74qbfz+WCY%B*@gK4ZIh;)B&z(e@%v!jDWcE`$GA%UAhXTn zRnz@>m;{S8D;{L(fB>d^{+8B+9(BqVbe#cxWKEnldE`ZIRz9T|hP7u$CyrwF3aVr^ ziE|&V=|SL{^i*Sh zO<>q3<>RerHfbJ)mY|lVMI6uB#i(_vMBPB`$$qbu_mLbLEg#}L7G9=in88nGKbM8# z^bmI_TRtf($H}N8%JWv&j`H`-I<{jUh*fsNC0it@pVrTpXCU5QB&73((iVNDP2_cg z*q6lu$S7vqdYJWJIo|Q|6(0#{>&Ea$Nlj}_RLLOT;^nM2uNm>t1iys%EPgRvy*~-z%iI0y;{pLrr7TJ&3s3iwJ4dbhC(Z%{1vQHD z&wM;f<+aBegNhe-nKtqiH9vDhl-WJEB!(XbJq!BNzuwMaCT&=MeewoVe%--s?jJSj;k5ni5oMXi(lc%qN)AC z9|l@G44A@?TwAD3tQ6;0Rj9V;C*dT`Zb|lCT(qZmNvaMUT6@zZ6kHjLvJKk=v)@)n z_QhoAqd!*hh}G|uB5G9nS|=Bttf{QFNjE#S8?_g6FU#mS>RFAl##0UxwotrEam%nP ze4OMFW!o)8G`F#6NGlX9DZ0%hTXtH3_Ofc-j*ySV9`(5MsHl!VR*E0c(&8{)QFJ-j zs;VS!-Q7RJ)y74L=^-^i89}Xw{n2c5=Dft-%uJcGM;6&z%>YIzPmlPhwHRIa0NdV` z`}|qO`tUskI-Zn_tcq(Jsn-;P)G{e!b>*YcVpB?#*%;;oV`>9dGtq zIkK%Fu6eI{kzGDtnmIvzAAey$x3Y^lHXC4Z4J!Vut}^|@ml5^$QKNW%_|{YA!2B18yV?@(1>mo3yrxs#6Vb zA1r=HdU`pm!qW1X&ShBTGG#@F+v0w;76&uVl@Tk`GU$%I%gqSc{>u)8?~@bSd?R)r zQb~_VGCqLm^~5ovF8mn;D0FRg<`Sx3GZSoUZ#<_f$%I2}(wH z_2YYkU3TCH9)UMPTr{C=9_zuD)*bv!N*GR77Q5od2m6hyUJ*s zWUKEQA)Os{^}*y51#rxnq~3;fSD_pvMPTh);2|2;(V4PaD8xUQdQ$1hJn&V@1 z9^P5qkaVSHQ5IMqtV9s%naPwLyu6-kp3OrBn{Q6VJ1Wphv=e+A5;~V~s)RXYHK)?S zxLms+}0H*RCRS1*dB+7n?;__f0GpxK4O)S{RwFq<(bIS%+wxbC^b60}<>z?s|qiZj+uc;-K>% zT>QnoGPhQSGx+5Jm^1j+B|?y$b=<$Kqc?_5=jw5OL7BS2cgi1JJ$xSXQnH7rAxQp~ z5$)9B$DKQQ0Z|Xv8D|FHnFgt#w|OTeXK!p#eT&`siB1}=6Ki_OJfHj4e>J_JMR`kZ znB5iPYtj!szYQwL#Wd{>SZM0=u}|=wKY4}`-62;9m`NhO;cJ7iS+@odJHmuN1z=D+ zHPsvafGfmi0kDRj>BFBIMi_BLNpeg<_X& z_zp)cF#zAx1;mCQ*D&G;*|k(M<+b@c9(aMxi%WdED<|`u-zh4b!9Um_|Zw>U)_E)T{3D7W%c>CpVf)ndVHJ+3Lt8 z4@gRp-!}IvFL_zrot)Q4aFR~F!_AzD%nPQM*_N!=p5=lRT?)^pz2J=)LsEsCEx#4~ z)^3R~a!`gPi&JMiRlckN;Um?8c`gR7NRzUUDyUa(&?wt1UY~_rWE153Fr=4~nxg$fK1-1GdX=VYBiiI~){z8cgMMxUrDG1sJM;NA4$ zTcRDQpM(^+u`|Xlszy{Z|Y5)%5R& z1-kC0iZaIy*H?ep@Hr zm=?Q|D5w;VWaYO@{)zMQL+AR@=~`-^T60+S=+gVDQ3kUt)Oa%TFmH-<(t3B_nP);ZOB+YFgGO`O2PJ3hOw7@v3?CYu%`g{0%@-xZ4~6iH)u_lv<$LG*ZP^i|$h@!TOqUHq&;M z#&~JN4OP;0=`u^OxGV5m6OYuOAVL>apudilwHbdHS)_%R|C!;3DI%oUu5!z^81Dl0 z@{+pgdCf=ioY{ecBN~XymFbcQzw_HGH7JIq%#~?`NCY|vgc$nwMRQC!;Y3s)xLe># zW!)>(1&@A7C`gL%dHMH|@(Um8NEDEfKpQ6Xicm*>22lk>61z7KpJu0ZmRq95{+kDi z;$J)pyD~W7+a(uDXthR8M?=gkbfs`KAWMnge~PMIv+#axlN8bK)2%vEKImmogHmIF zIKoB2L{@{EJAZv*eQ$~Fy@Cxs>KfmiKs(afbrw}kZh;alXE@&oC*3teH$S^{a6}Ig zKW(|=OxVh%B(09lbAd-kgSHC zaM?eW7fXskmFeps6kakhLNx=G zRNkpS|DYqV>`I_{G0r7<9j$nEXnVYTsP#qsH0RTaNJ&G4AN9e&fxHcQNHg%BI;3Xm zjuNpjo%WHl5iVv;*YHlGx|1}yH&oPugFO5S7<&6p{>PK;s8An&D3b!@Ln2YPRD5 zur?F_23V=Pw6@p+{H?~RPg6o!Gwr|NE0J*1XG2Rco#Z2f=Grv zi-j#7x2#~g01e>?%Wf9)>xeyq^aFR#OxWO|*N%xQgH#PWY?CSLV8NL?0}K$1s4i8E zD-$MRIa77k;af3kDCRf+1TfxM3>t7_5e6v()VkE_THNpnSF#2s)L4FPGOvB zO(zkf%|laM@@Icjxi9rwr7CeFNM%3lZAJ0yFQW@r z&3&Y@th9@+(uqnudZF27uu)bMlio!y0hoSHH3N{*knTnY|K@W2-WfT6_2qN{O;3gI zqL}?$Ou@mhCfsCl3+iNrDkUGOmhlE=X@D!t7Jc=X&c}Fd8#4n8ZTl z(&QfF&Hm*8ZP(1#D3>)i}*?ZO>7!OFNYdLgKmu4@dl%#Wi@ zhc^d@Q4@;Q(Is=L*%q%4(%LbgD1Ta(1zv@o=`(#ePN=EU**54R_CiY22 zm>B@_m+UhZpQ`4D{gqZ_lKoPvMBgEzBmGPGpsj#dy^{4Gc`8+|pL+Fq8Nku{{X=7e z+mR$!BC~}0(I9W4VPphW5xsM?=jV_Tb2rNI7`AU!ruxv`$;|>NTWcv6BUv#bumuL_ zLnyV3c^J^@?OQ&{WYo=CXc^~j%ou^T;thgcs+PA_Pqk1t8uLc*E$imk$vs}S=nTEV zlx;x$G_A&MQUhLwUiAJ?VZW(m|DZ+(QNzmq-hEHBZ7d)q8~s7;YB~<0=I8p8`a2~? z1oHnuebF@l-w~E$xZ&OQq09qHu`osixqGN4vTW^u zy%w42wq1Wbmr2QV?SM$n=*Bt*M?=zBlP|>_c&}>o0{NCsM9rjSQEsnX<&|tIEzfJJIk^L(|7UA31!?BO~ zH}{J>sh!18C52B6TFBu)qX2b@Lq1EnqI4^~8nXqy@|{^#M;C6*`>_lb!fatldGyzgZH}rJA^G&##z!m(4kU@$F)uUiqt5!!Vi&(+c#ihCoTrte zTu2DPms3h}RQUwX?u&0_3h7ku?<8h9@+~2n+10P2W;uSAl@~Ap_~flS0a>RURj$xz z@{lu)mmB`co@XNYmV~*M5R=_M4!WB8!u>@QyS?b~BxX$~0RqnD3B@u)f-@XZpVR$L zD-1;?W<@xvI#SAuHe{1N>%e|a7h#v^33yB9W9W1B zy#Bga`7e(;cg3TFe*?Snnl=5ya6YruPz)U z9D>)9De4P?=Thrnpc^Ux6ArpOT_}gt-*eWY4<^`;c-kTmx+Rzbn-8?>*n$it02A{I z1^)!qN+Od;!dyztBU*K18WIOFVFE|b(rLq$4V&GX(iDcR1W-p}wr`Iyzkuj?qS+2M zW^OPNAa>#!)t#t?b&-Soy-Y%l_;buchJtTHgU~vDqq&P#!Rmxu{6=H8zlE6`V%J<6 zUl~9wZ7KhP(`tKO?+(5J6LT&``s?7FdT|7 zoFC9P(9ATPyFXbB{5;-mL*KUOXCF*r_Zciu8HjYMb9VHc3?~jEo&)8AaKh#914eD8 z^5Bu#e~DJTf~knuT7f%~=#zl98Sdar(&)@1h)3`SO2-H@pE|&XtDDYof5!4ocoh zIVgE2aIho(Hmy+qOrC9y-e1Y9?X>Aiom@&_`AZ=}KjPjo!S*;l^<)pEm60lSZkam` zoM#yUI)pkMEc90V7^^6WguR-~fbxmAj~`AHpk3`Fcnv+-EcY3pTqF> zYPBYFRcE*Or(i!bzqz`}`n2<3v?HJMQ>VT=So3KX`9jS?Q!1!AmgfL0Ce(3_U~JB=0JTLJK|1TN=!GBA*H;TgNqgvgMrP&7u1U z9)su_``Bd1cU5sOrr7BK&)SX5(miOzVb6nRC7PDglbb6=H{UPzSgaOB30LcSD&KH#59<_>_kn36v=*w3C?(im(xY#2HBN$w`e@ym8vA| zmcw?D|H^M3dVr`|SxYY2{v!B3ch>X)`ILbx{@61V40Ka#DG~PfnS4(*El9)}2eT)2 zwWw8`{Y7v73a->mnjgSl2-L^4VGn6wc3}@L-{1zGm42b$pq?)kF`4TC;vSkdj})>V z%JMPKThAqXnylBI_cb@U$KL&pC(r zm$M72CqfY6{35yelL~u51%L=j0_4PW+B7y|3Sk~O%@qbNX5(~?r`Cv2_mT3ar)P=b zr1b+$PCLU?!z)Jf)#ZZ&7}f0(ihT>PR?7WFNpjRH@wy1^tCt>Z#bevkE9=e|jy@q_ z$=^g>(>1PD8B@<=_};olNL`>D_&q@HmL1!Z%>}aw`-_Sq4OfH&U*pseVJ#@=IqNN- zZmaL!20b)=W9W!Fdw%ZOPVCYC?@~?Yc>YqsVXtZ#d0r8g7WpfG_ONC8$Hi>jmoGl& zwm!4wq1nofwAO0_olXnT%G7oKqSrDupW%Yh@!u!snhqt)tB{%81t~Py^Yl@{e&O0X zm!8uJhZ-1&Z6Odh&JMvtGYjySLNf~)b5U0hioG>&b$yr6~Eh&Ac&lZZ!cDu_qr{sMOItw{=u z`4_O#S7*~`oXH_Dtmo?+plWf)29Ge-vmE1n-hqfuryl~abf_3aG#gWnZ|Q0(_z&Qy z0R&)5!c5uL2WVj=RVb`y+#0u+4ln)lt_M*?XyHgM^JUed238ShVV};;MA{neDNw5_ zBJhw`$&fi05Ym8>Mcf?(K>{tVPt&K3owtZVi75kP}fJmRYWP(&A+>DLYW>f;e^XKr2zRF(u7H#4f*4rSkJPI3wRL8Ob+JjYs?|nI%nUPnAC{^lKhZkKNy*m~cy6p090m9n` zY(e$1PK{8aDv)$UkgPfW>M>(xBf;H(dDpV8%wh((A|u%l^W!jzc@?=RPFzN0iLQ`? z<}nbc{|YwTJFJdDaE3vEBh(wc#nXGi)aS5RPcXg@1=f3kJ*8?7dgDKUBxb+n?sW|t z&0REM(Bq(IM%Qz(;~x*rgDfN$zvZ5@)q4KG1~m*H?S>Z3-^Jg!B!6qGp+L=J&>;Hz zUB6_s11Zl2)_(&yDE*^`f!7gXES1jA#+d<>*^#ujyzbT(!+TkjAw~_$@j13S?Av(J&z&vjuLwJ zjHPNAxrZQeQylC9e>U6Zy;2|*iBc$b7-PJ_DFiZ|KZl@0P}W`YJYsbyi|AXnMB76z zwn2k;#1__YN~@6Qtwkq$>=bP*#p9;JzhhX8V`DFcfW^SY?&*V)q9iJ2N4bKaH#!4Q zQc1~G7RXKL@IetSr%$jj8yqSY(11Aue5{;+(x3vZmr0}fN{z~4NtP310byqk9Zao*6AG1)TH3H$ z%kDOe47Yf==5G?lX6QdTOV;#^^qCgN$M9HK>e#X>{fEY$XS~@g034?Bp|VgXU%M*gN^i5N8A zs+;CE0oi0r^w8%}K&hP zkwN1pQm@+b50o0ktn^o%JxEIlO3hdn2U=+&ztHKAY3Lhk}%*-xxi$wIN}s zG>Q{AziDZ++-35%v%`QG6Oy2>1|yvm_>MKglEP~14<)FCup$hDzt@aU+2tE%3FVeu z6mK>u2ow!-YggsAlmVt~Zk_wqzPD@5MJ73MCyELL>mMw(D@#o2?P(5wr3wmyj?s$6Vysf8DK3Avx0NN>hdfe{U`!bL1NzB=8q6bw)%qm+lElo!ku289JjhpI+W zO5)pNjT!)btBGEzH&3Mo#{f8;90W8elq!8cVno8)^4Wl+yN0CW*le!=D3M0u`jXY1 zHMo|>w&%T5qp^{vDiu)@#VOr-?BYhBQnwX@_QifD$OUP#VU?wnS6HHgN7sW-ho*K2 ztM<7|Mqx9zZz+d~AdJebNj!KB$t+ha4~1M5IshSE1e*DrDl^LwB!W&2*8|)_82U=% zI0%61_{Lsft{8K!7-AOwBMcUVwGGNrNg|8p$RaY9Bez;tSYR%MD71cV09KsK zw%+`aPH@^8Z1a890zB47*PN0(2=8NF(O?6SVC-g$J0!ZLsez2TVK<1MEO%i zaL*N?LWQzMwUtX%z=0w!l3rR%I5O6&%aXtasn|0e=KH0fcVp?_=N1L`NSVtsVkOMZ zP~l<|kk-P4`qP1HSaD*b zQX?EHet;l~LJ{dag~Hrs^-@7l99qdE>7NdaP^hO8Uz%{8*u!U}L75oTEm3+3>+~dI zstm>acq>{Q2jNXjK?*H~;6eu7lqGfoii=sF1vz+|z$1m;bj4vKWQvqRKoVfs@lSEd zAuBuZPvI`Ke^|UAena`^xqTy#fLUHnFfgYY7%;qlp4->7bp9-9Zf<7c{O1vVAN`a9 zsrr+r2dt)}LB;H3Fw)U+pDA>RA%pSVi?rK&p^Az*{q*YiqmOhgpi}%JIezFPG14PJ zC%{x%k@vA}>`ueTq4%%8ukIdQPd;tyRb0n+oA2JZ?)UB5fJ*|^3ptyAlm8w}-R0$Jb-G_LrRL@pb*nr<>FEni`a|vz%Md(f*CjRY3tp zL+tkM&Pt-@jP?E5R{%;zid%+ajt0uOn<4k=u-lXo56^S=;>rG}wpGfZ{fL{hi1nAU zwiF~oYvzcMt2Y;zK$*)sD<8|<+i0$uaTmwSS@Wm*C2C(gVe0NBpoiBBm*tg9ouQAO zV9l*>vF$^OIndYlty$mK&1!db+^4YnfvL^^4Cw12WY|&m_13+h$LZFSGdu|MPH)bhsjgnM}*K0)z7ijJ7)s@BjjBzq+{WOZ=yhi^5~<=X4+ z#Rul;Vg4FB2c9k5xW=$?W_LSMz?C<(_PI~eak|X`P~&*D8^8^ySzOSts(NXCb+n|{ zhLKp|i&DOwakb*U+P1t%m&;8FIRid-Y}nus=Opld^n7NL{PE)Zwz#feFCb_~)VEhM zxOxRlA>t)ieXSQHCvHSZJU3aWrpR zIJkEj#(x z_bfSParX_Mc>k?zFl2Jo)7Lv!7FO_#s6dz~x#nknre3{4VgIw!W5vNWb$eu;I6k1_ zn2`_#Q;rz<^{rujyRBeMPLL7jXSEM^WfK==<30;M4q%wlYM9*0LSimjac(NLGz(st zUv<#+HY0>wrNOpUH9KcrB>K#P8*cY$87cQ3=o(1em9yRx3~D;u0yW`+n%Hk|guS!~ zUb`N)rQdOOSKm&LuiV&5*JWnkrnMVluMQrZ?A-ih+JojUK1zQ$zjc^)n-vepc&**E zQ@PbO8FzrQkz}q>j99nQ1VkD00Ohqe);C)!hIPCO;$NzU`k1F9LiT3&K}Q8UpIjb> z4a(zkxZQ}O2}*%I@Sb}m^9Lm_`h6k99t@9^kiBLQ78H~cseXv=i86Q=cJo9HxzC}e+7a^ZpIFr z0LHQf3^_0e1jhLft$#^cfjDAB1AvCXgN9lEHLM3n?_~UR0|;2XDq^N9Cbx@9g#qs(tv8L{4xUd#_V%*I`tC3y z@nwYF$AKHJJg$$Yd~M!u2iD(@tZzB1hIhFUOWej$a9;1-AK*?Ly?(x|Wp!Z*WVLTR z{bZ_!ZEiOW&#oqVx6>xw$YQ!Vd4u0v@e&hZTKU?>)VY0g8RPSF z^kDvR{Ncy)^|NK&q@E*T=vA<4+bK`xls8)1^Nm@X_X}@Zw_C7@aMi-N{_WOH|7gs( zVutN^pN$`WQ?qV~DV(SFH~Y3ZK#7Ohv*{H6wl%R+^0BqWs?8Li)vx!8gDq7*N52Df zoj}j8tLa2jzN_icCZ{nTrx(QEU$&kZs)fT#V4;Xt_%tT_$c%*9ztIrc zG6(y+9cQ6_RIKY0lw}DZw%ET!6G>5#TtJZ2-9X0Dg5-DwX<7Xgg?&q){L7UzdFBV7 zkOm8(Os86B0dAr2S%P2g1hWwHH8ABhXr;hSe?B(i(lu-A3KAmCK=(?tf!(gar8Csf zPSM92xE-JGQU8yycYv;J+q#8g+qP|2Y}>Y-R8+BT+qP}nsn|}%RY?VJ*E#pz_nrH{ z_x`q9R$5xy>7(~P*P46GvG!a;1M0I=`au+Y7%Eql)T0o2AgPzs!8~(ULoJ!$0!g0il;%XZjPDVU>dqjulWwwl1wYy%0F^|0tU+%`_#k+J_`E+0`ZKRqthAgQ}vCS+_{HY%ogxB3fK#yW(97=o+-jMZbjD1 z`u>Ca+g2Gzw{T=k2`0>YQ}gYIH;J!vLK`OC&Q*3=9#;wM$@oI6p+2xaf5Vyje?hbezJLU%aO^=5|FkxLxgg_^}2bzMJ(jS~MAP zLBF^)77TgC<(Pk){9@szut=|%R&aQ;evhCUAU}b7u||pEDUtK!kN2a16ErUh*X`A} zkhp+-7tt+84zV6*UshmHS|6*Azj>VYu$uD7gTA{4JW>e1w(GoJw-EOt>FmBoos;d+ zqdMXI*X_DtUusjbvvZ-S)Y(9$8O6=rac9}ctBdyd)9qJKS@P?Y#F`UT(c*mu7kq(S zg!WF`tL9ZRa+}kFDbduK(k@%B^yXEIfz5}9Mq}rl90sPUpZ0FCN8@p6yJ@iaGp-gZ zTVM2zw$N(NmCB9@YBIl<5wP2Zu057-YR7%}c$k$GiYQ=euH+P@b~RZ~64qJzPV%bk z=A@$LWD-2-+$>a5`&}%ImUU~##p+xxcrHF#zpJBwbGx1&qcn9kPr8{dK81QLb#zsp zyuaWan)fP}aTL#*^R`%D81Sq#PcSZ5Ku+!o)_s`V)o&+9?J%C7qd*_rtKbJJ$r;>W z5`OJ)W8-%GaQYr_&f075KG7;LYpar?fe^Og=<-x@Xgl6{uRMnD(VZsWD5CFKaT()5 zI3?qu;;Yl~oFl2qIYa*3s)rBWAkuv8MOKHXrwj6}?nML2*;AE8=v#X*7m!nqM55Og z{GJ>E+_ScG^~2cJ{UPzI3`{2?DF zMVr?i-tFuu#lfrd2k#Do7w-=JCy*rWsaK@o%rzGNlMg16rf?!2@uxGagd&q=L|3-V zLqW%__gAN%6Jy&y#@ca{ehMR@9(u_}PcSn>P-M!G5<`VceIcSa@=t#RMG7@DLlPZr zCcsv4HkJJy0Oy^ASC4=5auENL8Iu~eBt=q|b=UZ#90Jp;(OuU}wE?jQTeI4kC0QfE z=tW{gWF#)KZWrXLEvvEaPT|y413Hv7FGjgMf{Gl!ZXGub259=DJ)8UrIfaqD;}Ky5 z{6G~@2T14DK%1wSH*+XZFLTj(eOzApbxzG|7SBo@_b$6F5)v!oo_J_5S(UM$H~}wt z(I7n*;G7hUn}c?l!z_~YyZy>jt0x|#s(ZesYzV{jb;8iutE(~gqGA$EtXbpdy_^>A zpq$~JtDy*SSk?{2@BohLL~>Pe-QmLZB=PkOUuQ8ZNUih~GQzrMMIg&r+Y zLu6eaI_r2~Uc}2cjLu-2Ze{x%WRVK-Q|PGL1g{-eTAgH=zHMQ%bpxa?sTkrYd;>| zou6GV1Yo5ZwqlSri;t0(J`@tM@g3HUPAe%9dgSgq;uuNsvR9wE69RmnEn|(3w%ym? zV1O?ZB84zh7a8NFO>__&lZ*+f2+3PL+b?ROop@$%^)WFv;0JR@=%uE4Bi)qL&o z>gBG3p9k+w-VrpSr0+XwOO!$Ar*Xf&+hg>+%9&RO?>_~l*?|=bQfmOgF5! z+rAJ74T|;Ax^?qIN>LZGIo01$mnD~h?sng^V;!Tz=l-;8QgTspAg|>L(A)m zinz3me(gb zl<81OfQ$%?mR+&(6#`vRildGHKr1uUTIpIfkLwUuBusVZ_{!dvCLbKwjhvM)YN)qL z!bvgi&CIgPw>4Vt&7!^=_){IG#V)2FIvkD;dpn9E>bNavU7%Ct%QBJ?HFo zv4Ce{8E9#xYMjOm_B6O+L2YF%$_ByxEG5}DSvf_&tLP}BR?jo_jqsar{7DKtWW6B!m zzSx63vg68U@&jTmU;c9|Yoh~IBL0N9 zf#)`DQIcukt&i3o>;Z<@93|Sy(to(%itesYudf1(#13F2ly7DfsOews8| ztwu}zvTsWp$cyXXYw8~8$aN@VLy`Kq!rqxea4_UIqV&=3@$25R%TuN`$D1Q;Z!54p z?E&O_qZLz1+gvU$d|Xyr+}im~RSmheC~YQ zSr)mTvq9dbMcyGiCRc>!>k?ordQg!SohsS>oTpW)Mu#+Sn+HR{dKV4(cJ<7~BuYU* zgvDV>{tMZ2XxnOWn|i+vKQ?uD3q?2kOYs_yvNmTnTb9>CNSk>{TPU~T8J^{)4k(j0 zL}+E3dWHhuWsMRUYFJxpPxYPZ?!nSryy!ur3Zm!aehvG14f<{BTn&sv4YY$Ce^^^A z+&26vP?^5#evQ_7jS&JC59IgfRiNn9fP#w}wNi;WFB`Ouh5Z^cMjJktj$eyK6EP%a^TwMdn$x=n2~mXcj=$!o^Ne~Fl>f{qjtFdvAJTB zlIG4;cav>~n$*uN!t;^3bVrE8sCqiT^yYw*875!IV7>QQduFC`CL4DB68=)xtG`0>Jclkf zSo|wwHUtuhV0b@*Tz{_eWC<~di#4?kI@TujQw)+&luA0IsNo#iD4e|!1gWUu9cd84 zdRM9|jVO?zB}8bx*M)=<7eH-gnf;CBS79*0e2mN`s;~x-BfC&2Am`sgwY;KxccD;? zuU~}0MuVY#MfFTgJ0`4}owP~*MrqP1_N+h(Xa^n`30eXY27^LgFMxKO!`h}*zs^*{ zAwgm-aM@U-VY;uggF<#Sg?R{py2=<#AE5u^0iCbuJh1m#qI?Jx5Zp{Zl8V9*SGH(U zR86(l#c`}Vr6>@XbpdybGZwAjj(Io`Q5)e=rwAD74$=S=F$k&%m_Ae1oQ$=49E@+E zC=GMKY6(gNbTea;xNN>>hc?(CglJRp9kyUN5HScZ8}JQwk@rZYUelxvGE~NVhpiPl z*2@}4Fcc3<2)7NgCTj?DkWTsl6td>qcs}TJEqM+MG7wf~0C9OP&jQ^nrD<*h@v2*$j!^*(eJ&KJHodk)K zsNKU6=fC+#i+~wZxH9NygNuK(z!L|?${O_|1$t>jz$U?iG$-Y{Gq*AfduSd zfQ@B*VTC8I&(;2CzFN0%Q1?yWdIMwyT>36wJI`)N0%*Y?8&lwr z@bX`L4dXv(53Kv%NL75_+f%`v28`mvAtrH?VBjaSk|Izib&`HR3r-RY0-b~a)A0Qm z3K;Uw8$c%fphfsSHZqhpw>hIT81|65>D{E@%){2*%+}k^*3&IH85SY~RsOJdYY@Og z_`@KB6c-(ZNiBIS`syuunR>j9Bw`6SMU}oIt>cC0eN6YHaV#2rKz5x*`&>jgrX**g z=43ce|M}4MWUlUQpo(*`iV(7Cpu5<)1foxWB70iB&Q#I3N~4kTcza4a*bniu7x`1) zSDLMNyt#gwt#2MnWT)GM1+F$O9zJ1U$zgP9Z0l-fD|l?TbBwUl2v3Y0R{xpG$M?Yt zS>NybP;B~I-n%5Cejl^`Cm#XiVWP3B{4oT1%QF45ZU#+Oy*Zn8X zgQqElh*8W8jMR)1OdON5O&=y458Jw3B@64@SMF}#>6x8rIgj@m?{}qak81gez_c$g zb-UgA!E1TX^|U8X7GK;w-bX#&19y`w%fb*18@b?Xx%nS z>_26#0hlfkJP&t&RLdaL?PAsW;V763MbKTV*()k%^(Jy>&>KwT4~N#7DokFcwLsMo z>id!E_q`=s`XpExWmx$ZFo*V{)8L%SSPfk|4E`rd=NjSYK3QfmoySJe?d!~?n8*7V zi?Fc%XUPRpw{KGS$DJuZ)R$)n_R6jNVvcX*F3N;Y6zR~gK2Be%5@Aw$Y zCd%qEOdf9j1O%E9Y6*dcMV{%@t1YfYgi)yV%o1*nG((j6sUl{)qaUm$e_D2MO)&E;W%&=&aOppHG0+{om7vN~S3CuT(ST2xeu0p8)&~j(+ z!}nLEB*W_=goM{xYRxBP});so0 z{suBloEdR|R)~%Lw;1RDs~AfSw%=AQRn!?7`a;SStiQFjc`q~x8o6&VE4B0b^Jr~y zKznAib+Es4zxtc7P`4oH)yk&PGHh>pH0}IYxmLFSuP&f~nHsHT{&KMfFa9WAXD~C59#-$fAQg&_#ZQ#TYtF~~&*$G1T z-l$YkMKieH6cM@M78Ha7ks{P4s`7lT+iSxor1rjATk-n**om3>D%$cT9whIW2Hfwc zCE0CH$PpGZQ``~OjZ5L1qe{4n*T8`-AsHrF8*+ZY2@MP0jc=g)p|2*9BQxO#&^GksZ?eWS_$&2K+&T#46du3Hc;A47S zOPphR)B0I@S_0tXV_U*x%;Y~R?rB)?|5o7%9Bi&{8$KkZ`u1`Ers%HxFC8lRrvM!v zF8|i?F|pOiLh}D0;Z~@X?KkrDs+g**|Lrd;P}Bcd@vQuBi05*E6{!CYD@KiuLPm}t zPQx0L?yY^uJSV5_HgHDPtb2{%+P?S#x!1(M(`8xDXHHvlOGh``*>!+*_04YoKr@)$ zcxT^jkmry*QA@Ps$;IJw0JgT4H+uKn!>*MMvQ;weA4W2&b2Pr-w|UumBub_v$qZGpaZasGb;mC{cL|%@yloIs?J% zL>7t_$y~D0J+cW;#5r&>(YhEfL~tl#UO7OVuA=}wx$zPuW<6f0I6$%pT=N~vt;q~0 zWw|;1q9h2RAoQ-Yntj8Emwu(02@c7Ii)cAfbLin7&TQ5qoE^zV@?I{=1z)65Ybw!( zY${aq4{C!r9eo{obK|A)AJpmq&3~be;G`5^{Ds;OnlP}K$@iFpVWW)&5zdZ>WGz*_ zU#`BVs7~vz3EB`^tQ^R-#$1dLMAspn0U6Go4MmS`GmJ8+BShQ9uo@1JJ&Y61uI;}P zr^KmKtwaqOSfS5zhGc_96TptH+DX64Ch#AwN)}@U)lHxc5XSIQF@#RFCX(R9TFx;b zVgND7+BB=-DZ&kb>h5~g$ha(j6g2}?5f<6EY8EMv!>IJQ&J(XP_4YNCK5LYXWMYH@ z8^c2eYopk3(F}7ZqaP5h3RV+W$Wz`;v|+dWFr8qRz7(q77q#@9#VH`sSD&A(jbb+z zfdB-L!7zL>S)ReLQI%#gu1rJV8O8~fHk4bLw2xw+K?EJfL4ax@TXkIKaHF!x5(bzi zqO75oeTk*qqL!*#L`64@BOja^$!>g1S(BflhiNk$3TF&Ij6>glF;<>MzgmulII7Bs z?;6e?t>0F<?E75+_w1-Q0jWY+RS_j4oNLkv}Pu6Y-oDC zKgnLRDjGMlDhs6uJRk#$7a{jnevI!gBoaz)fr>2e%SDwmh7d3%Q!Ah~CgfR(%2(BcLw8Y5=~acBOtw~P zpcF%grh`!y(~8QEe65o5r!l`35l2Tq!749IP-Tv`ILw&)GGLn@`Dgy3QC}08P!Wst zqRNlln360v-kUv5N}QIle-XNB)Ug4E;}3B7{(K!sU93ba>T&S)f}Fupj{ztBiYMcku(ryJ8G&8ls{_=JH-~hqLcr{_YnLK@^)9`y$hV`f@CEZZb(u1 zdnlw$;D#VNJAWdNTJ@}GT3IAo#+e{`Q`*9jLl#7k(*((x27of47CbFw<^iCbR4DOZ zlu1DTNtr8s&fHdiB-4;XQ7k5oOaYyn-=g4Gq}d`5t7xpT2{(fTVRj}4W%HZeRK3Q> zDtS4L-=T81YO|*h%H#?kmIb8qwIsc@bF|VC_`(sPg#&!q#gS0V7tZyNgW^pk9YK2x zdom^U{*1yXBaC?*$*nDe;@kEROe8eUQJdP218V=WZ@1HkpLfo{8u&8fZtCz;(jYge zS9vLDx(h(SM7V?kGRicxXDn|S=XjITu1MBI%gL0>F_c63Y~IP0s-%mZs?KHs&t{F( zuxyNJ{95b&mc6F@ph$K+3GcI#8x+ww>F*5?!MISIuY5F6oWg>a4L{)bA@&mL(C|fz z5;>>sQtYoL1f*$p9Fv?pUqbVKRDm{yC|$(_4?RS}n~iEpa>YANKBOavgVvcUIl)8= zk*w4RUMgqUfqzevGNqmG*4@!I0xh(%et{DlJQr2hMkUYoKnYPA-!_PMB-+;v-Ekbl zLqUiKfiC;8=QKzJ_v^(U93}RP=YSMBo;?c#b z)pVkwtri>%2v)f`RDkGBlLAlCQSAmXK}vHJ)lN%r6#bqS? z7w>pg;UJX-8>Ojbs>)T?x^ z6#UH+q70syRux5KE7%N2lLsuxl~e9zT^Nii(V&4+V*3B}nb%{`5~ooFO_tvyfAsxHQh)w z9pRc-SHUW3Tv$_)PVE%5cxclbLZ>xh78X~jH-}v-fq3=@4Fm5>ybaE&CBaSA>~1f@ zIjT?#5=m_1Ui?lcz`poX20ap%HQD7OAgbcVTKAa4m2G@CPZRdve~dkgC!Kfnm3Vw@ zBq2cv=OQ}r4;N`8K`6i-C9haVb^+oQnH~_dRx97k$!iMdA-b5?OM`L2a0S50JBXG5DZ>=G4oVf`4mCF_gm>Sy9nKH57S5l}+_!v)7%TX;uRM%>2RTfLcX+KOmw!;Mgfdu{z#21k|dk1N%D-3vV81FD)Cyw83 z5!JMY9v9>C%OY{OfPWtGhap%;CWH`^u|){EBv8~Z&;!KuCifYwKiukp%fbbSJ`8!p zk^O*5<_U#iha5*4bcdb00Dspa`!SjLR*Vty1^g1>;PU_TpMTyxU-C-?D=f)!P`CWc zsBp|L&|laGi1bNSfZHI_k$#?Ue3jCqgV_N3E~~lRf5qe2L;K@}>=@MnVm{h;V!Yu2 zCOk)gXa7SAX~3@`sJ|T(d@HEBgQUzHc}ey-4dMAz1N+-CETP(NLyo*A0S5fLhjN-2 zC>M-7$Z0L_6S_ad*8NrfNMgb-0?1ZAtNUbvkwE4R9{r~lpMYOMasN@W@Jj?x^peWw zn!5!E77%$GfO1BU`?G}W`{qlaR)TEwXEeBN=KjdJgT!?NjK%?CsR=-iBFsAy!bwx2 zf`_I(=K*3r`vIc)G$R18eckuPs%5h&2;qFAYsl)DYse#>ds{x6SRwVuQX|$C8>7qL zBRk71Xvi-_tJUD6VGh33Jf)pHahAuRB?FHAnxZuE(aW~HBLTeMl87aklmY_J2EQqi zd5+-sZL^2&V!U?ht=afv9ln^IWfLL{Ffba{cV$>>_Kz{JD05#yDa)bJQ zCTlElt-fE6$~*O=0{ngPU)|{UsD_kUhn1cWCYTI0sza;bG_Y$M=^U%K!|>-~zCC-V zIi_MCu3K4bJW1Ro=YWCTIL~bzbJPQcb;y81r)}g0sJdq2%a?5gECDVljxtYvEO@@w zr7P1gRC(5HbFP_h>k;3^?(o`7#r&7H7|T2_I(jeff`H{+zUG_&V9Nf$l>H5(CtvoW zJca+~|8%lXtdPKps9knCHui%7(Ae@Wgzmq$+U8D*gaLY3C$GQJVf%jXQRsu)(4^Ym4vF&h;t= z(u@`)`^1-fCgE}p@=6l|70xlU>yoW40Gw+^4@Z(~<{7TIe91=>QlJN4mK>IP(}Lf? z^=q&6w#jViF2}41!|mykzLQG)xT--0xcpt>a!9jQnLO3ejIr#N&x2Wwiz~CsqDq_o z0Q3rOU3Ia9a_p0P2MMRMwh2srAkC2W`uii{(vMjJ-c=YpdE(`HM)Bu*|3Ngqz!D#b zMM?HTwZ`LMQ#+5Tq7h0hp_WNII1bL7$~Zb14{C%OBM}RTU5(xSIY{iH3|1@IYkZh) z=4SlZb*@o4BO|$%p&}=l5urWLP)8Y+pO&YDXbE;u z7oiW(HqO&NnC^K=&so6qim*bU+eOgAS{&r}Y^xr zM6@>fya*xaN=vywl@4|VCQ27-7UYaF+H@EF?n!l-ke{7ike$4YMW-T9B@HjkO|5I0 z?W|128czzZZ||9=BoCAF>0HwlvTBx$n(#~xIGhw@Kgx1rk0gcT^N+8M1UQpaXFD=V zKP&1`QR*qli!XQ_VeGcmQiX#bA31+lJuYS{4*B-s(=K*g3_mTzoe-qU3l90mies`z zQqH{!KFc^~7DT`t|0zi_2^}M@sI1%|OPXI^4Hc8`Sm1;c5ROY%iyTgc#DWt5xCsL| zJj_FRl_GN~;WdTazjYFvMys!CNKWzlLGmsimr@ z(kjhXOkN9iR&Jl?Ixbe!CY8W>+q!2+Ss*pIW?6eJ2c(PQh=6pF#S4lJ@wnJvQVMO< zcY0^-p(Q^*8;X{4D=P8JGRCBoMl!0!)!gV66m}C7UUJful}bv|zc_KQdNuoVQ&Bp{ z+fWuszydAgE({?Kh3BxwjMUpI%9|HCqBVdstda_GGmCIjQ`c$(C@pJ-{7p$z6c0&5 zUepyE`&hL28#LhHNk#dtEPp`tOv0ft(H8+YOEkIn^^>m(S{3Cx3$wvK#tG}8zcir` z{gVYoN)o`CW6}ROi#QF``p6 zQ7#)MB3PXyV9HvmLd9fVG^LBj74A;3G=bM;BkK$6w>2O8+^V%Z~Kt7G`2{LaXu;Q@HqD{AWTYd6`>FVdGJ9 zp(5J2)xL225Rqvp64WI=f`aTYDi!U(}xD%1(9eQf8WM+z6*aq97kM5TBY{G;W#LdW5r zf^|XpA}v0+4G@HfzX*8lH610BK=b{J0L3u`H#+u&6I+fqh?s&bSy_n1c*0WFq6kqL zQJJ*3ki1*))1jksqEuK*fu@kWgpqEdsQ-)POyW|fYL}L?bb4m8|xt9!|% z#6Z_+32XoCk8fRG)x;%XGRqz1und`f@$pfO6qz?$vy^Zo*Us;>5TFh5@ zTU2Qiv|?U#wpjkWBv~q_9~Txgkn=f&Q<`$VK8G73>4neOVgceSTRUovS=^s*3iGkT zzcr-vF3u4BRUv6&+~_A}=SKmKs-EgiHcLR;Nb4s7V2C}3h)G*?*5`_lp^qe8qx&S~jMS>hkoU_n$8G*p4xJ!W2G}SvOpo=P&@WeRJqmC)q>lbF%s!ISO0ALjr&rzX91j zawftRDD0AMMoy%fr(a*8-@nZE^|}m?DKKWkyXV8F81ut01}*@JQq$6KJS?o0*}fUE zF{Oq_GEp1y^Y~+b>-@Mra2YSQd^yT%?UbOR1WsN$F)8bROjI05t2o*c@G09B z9P#gWf(VVR5|TTy&^#EyCJhedeTnGpAl7noeQ^Z}D4WmnL=h@AR^SS?6CGce#_LD3 zeS>h7w%10LAJ^gf8BK5XL5OsZ<|L!af&$^fFEd{90@*QBnJd**Z7P0_!iKtCHU%5wPiAlV= zFoodc+`k`^%F46oX@^fF;}0>7IpABcRB8K7&?3N{3GZRkK-4{-45x0-E1xZ1 zkmpcw>jB)(xQ8`yIT&>41dAn)HRY)L1*!Qy5~n5D&BdIykh5o3UL-I1z`EV*}J16YD))t%TYp+zH*Lt`w_6~m%l}_&m4|Wa%fu| zbNH9dO*rK6I*Dj3!bmlA?Qk#W1Vt%goEvB+J z1+P_Oen@UpTXH|;>`DwKwjnsK&3911r`&f*3C(EF2!L4EOKy!DX3+U5L5nO$CSdig zk!G?V1$`$RuxKFhUT;D2tfJkvf_0Rpt3 zY6blKX({_x3#zYX#w!2gf{&RWupVN91Df~l9Xv`@IW&!C7EWZr!tY8JYDIL!BWG>_ zY=)Y7{mH7ufz|a$L3~bJvEzp`!>}h+@Mph03xxVX{?)Q6;g7IwlTj)tUZ@z1%qy7W z>&;^QO7K?%;qaJY65|S%MyXRIz@w5Uu%q+w@Ygl*7I2Y`FDUJU1#-6K3!O;H^{vor z-)gA{7Gv((sJLRK2U#bZfN@tnZ-gX}>1QSv;##)~>CYffl|Yob$Icw)pv?R-?mq}k zlOH9yLiq@q?3$IGy6INO&yumVdgL*B&e++kf)_cA=zJ9|W2QFmLL6TFCE#+}`%> z;Nc-lh%szFPB-oD!T;&lZ|-~-6F?8r-!MQxDF1fM9ME!C)yUZPuSTTXsRQ=kneaw` ze2b(?%a*oHYC%J$84YcoLcsL~LdC1c*i5(<>{$Fg%WE6QbX_mi^=KFGbxk`>1{?^5 z?J6P(O3eK^_hS6{_>QmL_LZ)YLX?K4{YO8JBi$eM@|(5tdDoK+m@>ydNlMM5pJx7}J5euCF#hn?EW;8qg zeE3C16i|Dk3$AB)6qE=~yatIR);>?qZVDMoY+x00%*v#lSNNvtxDlP0U^0u2xzfoP z)3FWi*)})0nw|VJ@ z?(y#G&||1S2<-L3qJ=pf$4?=ua@DFKx_ST!j=?YC@MKG2x5jIh2<5be1{xQu7Fw z<9#sSjXzwNKU>=S45s_?`0ZukBHrfiDNv*$swZ)oJbB}{t?p9=TJ`r-4IPgLQXlwJ zRmQ684;;Wj7-t%O9Dj?Lb$d(erMN8flB*T3{C4+WEm)I(x?tls1vLW>FnmDkY+GvR?RW zr+$B9p+vn=~ zTaRIob*WR@>BEToL_v?HI*`o>(C!mrWDtTN6IV$~tUI>oJdu85+!lm=U)^4S+Ju5b zD{;F90dn~uNFeOpv!=sqf!=Hx%1M%>%|z7T@=keC`88eEErYclR%|!%j_<`J7&Zt3 z=1ffaU7h=_Nt#(giZlUDl&(;A{%J@chd~HQT65)m-2>}E?e*ztD$B~MGLsGbR=;lT zT5Yk5a(}+HM2z+Y?a8-lQA#QvWP}Yo(RC`ud0R3mr8HHcY3JM(=aM2*JG3-cVTp$G z5?2jX?u*D0RlS@=(WYIdB@T9`IltWJy;qZcu@!}-Zs2>54+?tAx!@8J3RB^cIkSvR zW3%!?UD2{+w!0HaY&j!_X(1$`@@m>;^ENcvI;1g9K5{d8Ei5zviw~JlJIugv;&S%P z!)dan|0Wz{q1`t;K`rCh)!uI}hns10162}?`d?m;R}RPO2;OzU`k>#PP(Dt6Gk*BK zQvbSq`Rb7C(*iV})W7TZdevsor|XX-HGEl@_kMSUBXSj@d_dKGUh1g?~s1nm)T*pv7d zLzXqoc4CW@kf~ilMVUx?zjsLdX8a6va&T_=+ z%H&B%LE*zUm4npe?hcyeld(8qV1S$er^-V_IqTz9sIhMdeHtY4bmu3v0Tmz7GaE zly66_a$>k11O>IW?38oR84l&!#T?;F_&$Mj5NgyQCpPT1+72u(SYLsU{Y4D9YyxTDl1;dk zN!-(zrp1lTgr>`t1ZmSP2b75nwH36)?Lvu%Cw&T3%k87zG@xRRMUCheNr` zzOW<+<}8dnZQqWl>qd0=v4ZzN{{4dEq?!y zEU-$hX8Ors8M7`}UE7}--An1J$?8Cj>C~V=!tb{NBEKs}xzi{Q=4@q-)MT&rm<=^K zjP_ZATSumMKJC|}S3L5eVApMvWJ9LE3u{p^rCWqQBV(5v@2J{0`tv%-Z**4eyMS=8 zSFf$^w}1Bapsem5S176!_$G$!c`c~XI3ei>(Ay~-Oy?;Ud&#z`;ew0Z^bwqZQt9UN zA9=#CW)aaA_43pqp2be{A{nUpS5si>G%XS!B9z2vYt=08SV#T*L1L{qdREx%ke#|TA7TaTiUd@gmzHz11%lP^t`Mnzj)(|JaiP)kQpMG=>8WJn`aH9Z9rr4B z*uEe(t45khtd?uWaRrSz!Y&!3AtgixX{;#~85}{5m@#8$t3iiCTJr)(UaH2)61mB3 zun!GF+O5^q$n9I+gnr3kfnh!G=Y9qqv~wKSd!62||7xI`>(8@R2Kc~(0A#PIfZrx= zF0KxCns&B~R<34te|_xLL^r?;GNA$e^c9;(oG9f9M_W=xqC_r$sg-*D4w2ZMSZw^c z6W+Jy@zrtc#7^!5gpiF#zD-QZ#SzB)T3nv+=fjEM15(Ikh!A9UEs~{*g@l${y9YS2 z0w^ZU#01)*E;Gh5n0hdXg<}Q$Sxq?f`?w=kb0BKvNMMw$MyfYO3mc9E=m(g_%eeO1SNL@QjmZ@{_%Eo``;-5TT=>h1W1n468hpxZ7!~RFzU#($d z<{AL`ITFNPj{T+tb6v{PKe;XGrf5v%hqoLLyUEzs zTGyKuUOa*0V0**rc^b+E3Nk3wD&B(7?Cw5xHqvpPS{{BYaPE#E@-Y%FSNC0~v6>|a z1_ZKug5!*tyR)rsi|JNUNqbH&h~puB+=(24nSR&ZC=8ly29#tICoGC;y>1!bacI&X z7=T@+&Tnd*PMKy(!j~?K^DG-TXEN#PY<35FT6qdeE%bd($VAQZuh%{yJGDmEIzxZ~Tz1bSeCLw=4q>}vluT@(7d{~4Hpe7Rm$nO5L=CF6OGd6PuRAv5T zcQcyX_6J;8J-cOs3F5jf5lL)dY|Vv&>UuHaq%99X6j=2adE?AXTQ@S-CNs3vIRfR8 ztg@^9e3-fn{ucMu}bTsUrmbjo%`=uTv&R}Vjarkzn-{ZxkDKtY+E zZ}$_l`rQABoBNHtxd@IzQ&&c%$@87^ZvDGtMzk$&3}^V@W9otCZF1d_-E_r_1}z?` z_uR;$JN}-jM#LVow8{u;h%KZ_ResSM3kS^M{i0j8;?<}d9QG`iBl{LFWCMSuV?bV;5@QpJrJ_o^&Jvpj^g2prh?w)Q%m{ePi zK`EM=41EChRcVAjVAJ}e4zL5)lKkQPC~F)>`8VAti$sl4#bq$!q9g)uEhl8h3M(*9_#{Gsz;VI(?1Vw{I%t-EUc`jGoPm!qW-z~l;< zMq&v9aN&BSB#bHN?gcAT`u0@QYI~(T)*c6;ZF=VSZ+dQJ^+jWPZiROt2lO=bMvp?g z#TX&%bI^Id_n`I;L?E%bgTVEhUdU-T=Z~Z!k*xj^8a})D z-*`?dW8FV{Vdcc(aB=q$Ab}P2b$@#3-MO~h?+ftg(Xl4weAs&(+IG~{=bKm<)?#BU z_w%t{)j~Yqj6EZtto7ea*9*bZF%5O&toOsY*ccXILs%P%uugM_Y*2m{?0mxhbH*wh zU$y7~2LcKv0s_JW%vgZN-G5C}fRz{E`m{H)vSqM#G_$x?w{b*OL*wuA=A^cpL878Z zgBp7) z2@cfEL+G)&cgnt{){(19`U;)H73i$3V{jkH2E-C>vao5{Si94 z2L_WH58Xe=dcV`@9Eu4IQGsylvyOBIFbe`vfP0RUcHkzo0o?+B)l3FG*688vY2;u+sYoTr{(u@57&wUFJNPYnr+HdZjqa%wyl@{s%~r+Vrbhx| zIMz||3gCueo+F9cYI8fA7gbt;e5f5`jGH#b&#Q)dW+^;r*S1jfj-zb9w-eF5Ar2Gr z?xCMy*a;E%gd1X>VPCKeis>-&Xwxz)?e4g0_-#sX!ca9jC-KLd66#PzW@*?hYE__; zc~*XH?bKg|ANM~&f~KHb%Niq*m57fp{I;H4?l4V_W>m_NN%ejwe@^eE$5VVJIT3G- zM7FS#b(tssF1^Ba6o^zEGjb&1r90Bx#u`5tG!hL91|@{gzl{_;We7r<90<+~N8;7J z7Y3va_6TEn$NE(e^gF~FHyWT7YNVH$yFgA%671{dy9up|a^l27+(JPb=3TD&k* z!pjjqOB`BJOZ+r;`lY0HUagxu(JW24p=zZLT<)+cj!eBg`Stzl-~OF&>5;os`v2jV+T4KB&Hp~7|ESx?K7a3@lPyj52j?GI zE#76Yy}KpFL>9T_p8WIZ`nF^y4J$ls6$zH zS^sX{NxqkJFYDjOS$h1pRP%(lH~((9ee&%iJ9gpivtK{6d-4rfd%suRyIT5ve`ERj zE7I$yRk6L^%D~us)ZmuE!GIiz>=`L5JdPNrNEY#?wrReQwEb{z(sl23NBK{GkbM8@ zLH5dBz>BXIMy_-SvXW`Jdi~A+8#zX8PlSG(?%vk$?&%Jv^vj~JyACXwy-NGa(^sc7 z`=2kL-L%iC=GMAfrSGIe6jWADdOc^|8>?O6FW;ygRc{2|Q*30Lv3B8ytc&sQC;L{W zea;CMtXsu0+4jXe!?RDgSbVy?jXIlDI((bb*)F_aP~{R|qIKU~?X$xnHGP&Dzq#i{ zvI}o}D%fycwPDRn&S<`Qoyu`6FJ?XM>+s!ZJU?+C!-PFQD_^ZI;hyKae9^`3iny2N zOfmNadjH*(?2WtE^wFQ`4WG+zhizMb>}B8y?F3wPUw=0!U;?N%jIQXP}nZr-1&|znX6l~s7EkD z`LN{77jhEaJ3p;b_?MU((f7fs_SA$cCL(VnxO5H|>O8ENmymge`2~B@llI=zx|ew4 zpIqvXpE_}S+TmwYIH$e6t30RuobQ?S!nfO(q^0%BOtsDYG-b~2W#{%(UwhMZsCv!O zZIdn;Rach!zI~+nqw22Q!RYs&*H3xk5nO!w)wOoHx+fR6zLu-5dAw}-yt-#MpUbCy#(UT`7-rP`G{e1%G&vV7fuZ}pcoGG0C&DYA`J6LP?)sW zaLf(V?SO#>pcn%~v@>upI5n>%KBTfBwKx{kIzu<0Qq9}p2TK^X9AU61ZosS(fAxF09h>&N25BK9pyj85M#!L8z6%%z zVC@i}BO8J>6na;SS$FF*FvNwjGVr6Aq{a(1sko#vClx$hi5>>%2TH>9H!$9_LD7tM zyd=6g=<}oqbNq{7<{(X?ple5;ctL2lErV)Dn}$I*0evC@VM2a6)C81i33UDFqs9pR zOjS_*=wry}Mxgh<5k~xOz}g!}Hvqk(i!k7FBeDV5y1nRTq4ymTW}Rt5HVd^UiEavd vR|{dv<7Q~6pme;@^`o~35&G-ek+K+S>oCBZ6_|rSxk`{B5tuy+dOvFGlL_ z_GV57%x<(Xm}ApZ?!1XtYK1zz8maXpBu@+s(zWu)A&b27)^eFo&3X2uV##C|WOj&V2Vkn3 z)4kqJaf7q&RQK^4VFaCtXY2YWYCnKQ(NsihVvr05!Kn(3LWfl4P4ncmQ`oDk9u3p% zFnrz{Rd#t9_i-hEknoktd|70s*37U@LumEm{T6C`t|9%^xIV7msm5i3q0Z4l!=ZMi zrvSxm5D|d(W7oEu*>y~d;|Qj!YlBu@9vJSAevJ6VKKz;Zgxh&c3i`E z81*ZchDeQSn^<(x2nQd}o5PU=x%W+WpxzRnq@s7bq>&J15{RPU?{zvF#yn7_S z$~&3oj>0|X75`ildB!9gzT-C6Bo$^@#~je3t2><*s}z?sqPLYnDGn@&N54k=LaXKM z%`^jm0Z7X?a)lLDwCvirhTV%aevvWu6+McvM^{TxG-bo(%}0@Sz`T}_J(!9rjcG~8 zX?<){{;XGa!F(7Xp`>Q$MtKc0(T>s2Yf&#)G~K-OexHewVnWMf(%gAHK*h&?iuf06 zP4by;L-e9I+{m;Z_t`%S6!H~O%@TB)PlF1C4l0l-z(m;*VDH3Y0&q0@eUfLyjVboA zqDkF(NzE!~hF+n;Ny*ZKABBC8!SY*dx#i?iuo=tbp4iyQx7E#Na3S6h7`n0-UgK$K zf;0(=3nB@QJ@YdSL)5{3UHOEw`jja}&sUKc*n8IfICDvD!EZ9!9j=0pgixIcDVxS- zAU_|%Ptjk?#X0+Rk}RWHwJ_&UTn$}e>8qw_9BnHFGU*-`-A_M1;?Q`CxH|Nbrb1${ zboAmJ@X)0GkMfg-P&12V@BxlnHc&43mAXpXhwFN5_$!UbD_^QxA5AXVe1Jr{$brA! z4;ZWNr<>7M!>|*cxI923p@MUWs-&p8HfyqPhMhP$I&4h2KpK=GH3cJ~B)!X-J}E92 z_0NG@)pJ<~^cU0&&CYJGGC5KCihMC`=BUPeX&mFFN&W~-U&}!mauu=&hR;a2yS}hw zOG}W&DiTYFl5Lgw!Pq&Gdsyf5_Wt$VA|b;)&jl3Tkp+q&-HfZm>vQiV!9V+Qy|RLP z4C;#w6c`xV-}~~>-u{oasE^sLu%fj;F+dr73A2P1Q^AY#pBI~!Si`T5OK+MTCI1i$ z)xx$7^nM7z=KIQW6Dm+A@Kitgv>;{8!VUf-Y1M5TVY z)ZF)77eC`6Bm8SO7;knZ~tc5zMeH${QpZ=~(ZGEQk% zz;MIrkLyU)YD=_2E+bE3y0pcHviZ0mUnFQFMt)EvT73lcT%%`c`>i^}G~d>h2*jYs z-J(D}3WzU0<4DpkOTg+9#l$zJVEWXI0J z3+2xX))nAr$^yD-oozukr{8DBfR>!o3O8EkotClNbODa+hzem;i9AKLT9ev)lL8B5 zxJsEt$|Oi%)mg3BCviPpJ>)~+Htn0A`aGcoJM^wW-sMb;(}+y(Tjj( zTdAD9`a|6!KPT(x$e)$L&Ws$Z9?pbNgGq|bMU zT-R)rdWmVwyU0RD5@LZWDf*gE%^g^g+*icAI>D&vYwBBjma<*bUJ}tln{3xJnk9_7 z`%@HOd(huGpb12p&_1u2PwiIUbF&~$e6+8d`SfIHVsJ9OYx&vr$TC=p#s4i}Ztw6r zmlJ-9)FgvdwyLCSiugplKb}f|N|_Ac1E2_MrovNmVne@eD9`@yj-)}fTcBx}~_V2a_o*uJDujI|Rce z$0aFM;nAQwD|%ZV1&_JbR$8nHoc^vn{-6%|$<#QhLoQv38uq&(w&xe3vP6OP&(osI z=(pDF_Ung2qPpSKq6A4cI@5&>1?6c%w%QA`yP{-rmZ4e8(B45(egtv+JUY1BaXz_U zHX!Hp{FleYM7|I{eT#;?6W~Bz_{BWe_3<*NQNtFHUx*^v5xLlFh1>njec5?HRYmV! zvFC-!Ak;(TQ0U@EVJ2C}q=EIAzjdpdch~7@Ync4m<SFQ{D-?&0e%RmV?VN3GbdG{(4}a-VsAFl|eC)={47&wd!l$wAm)56Mk1~ zZp{Y5b590Q_?HS4mc9k#Z{g>_59&-wPwwDl0c(VA2>tsv#ePO)%K?^}E9T27nA&){ zCm3g@sb-IgUR7pC)pUtYvKC6eB5A~Mv$^pnsypf)o|MLZTKw}8xAP^yUF%El`t>yX#~$#H=ew;rXk3 zxH}dF#TBMcY7#$}AACqqct)scq3W+iplryo6K%n+jLbijR*U;u%cBdSBRL)S?PG9O z<`<7P@{5Ve=F5(9>rIihRHvRz#X3#@UUaCM#W`aG3N9++?X!dLH}|H5J}1tb$mqi@mV!TwfscM1N zLGLE4d9ALe6Z$%e1;zIe@Pp-_wT>*q5eR1i12fcs21ETno@OSkyx6^* zrim;J0bU=X-yWV8&Z3G$nvQo2?jP1J+LGtmo(^Vy-n0b=?;N?m)C#`ZzO}9gu>hAz z43mn^r}_?pllQj9R*sv>UdE0u>)lsvc#1?w%6qyyl)mzXMAW`rTh{4%KFzI+dANp& zyxD65`q1y%cCPks+}@p(4SzPe3ocsd12zZ~_gMg!GKV~M>|7Q;epURKojh?=EpjT7 z@rolX@A&>gd21**;NFO38_=M1j);ef|XY0u??L!O{ zru3oq8F)jyZJW6`J$4=2v8sE(`+yAVwiIa6k#!Q4_H>?jbLo~!#4~ms4s>Mlc;WM) zxQZ{^p>uZcbYET-kra>i31WHeT#us~`qWc3HbJ%qh5w}uzTyeQPI5Kuk5?<93b+QTnxOmg%DETev)-JWXZ$pBG5!g-G;0E zw(|k`V;SmJF)EuXNv{UUr*h$bN$(IkuaFs_vrFgo(23;$4T7QiL#Y3ZIxu&WA~B1$ zS#pmCfmj(d)Waa6QVjt8x6k;}Z}slY;C@_Y5mwkvamCpT0-wIHmGWfcrCpFwge0kI z%5{2GH%67cH@Imiez5{&&hDn~XZ416C6T$8^OmQDk5}q+ zR{bd!_W^J129@(uPbV{v_ID01L$bG5A}43U=_=9<26MCLefw8eKTrFd(m5G|S_liY zBH#M<-AakmuV^&_5SPC1-BbCTlPoBuH6@2zL46OgW(cb;mEsjej|G<`{+Q3++5OVi zeL+DGzWSzZ=H>U4RU84(ie|~MY>#OQ3tG_Tcfox+c|HGW%aBey_ygSwo9q_uhnN?U z5v^=Q0R?Zo@R@m;#_+1-vpQMy2N@NaVhq&;j=( zqwPaj^X2VqX?fr(HWyh`5zMh0~OcNrm$l=}c`G&y!j4e+aOY-qSEY8%}t_csK{yLk23$bZOKo0%} zk>Y-+Ra}Qj(cTW*!`q&>$|%Aa+w+yPkC*FNb37$#!MamO_52N!+6ocnXlsPlVmwZp zRV~Ft%WKbC?4Zgmy?UQx;_CX*iQ95le^k<4cEXQKYTm9du4n znfFPT#L%KFoLw@lb>B8Mnm=C15`RDit)FlTK3>C*BRh{XuV_}?DgEmX&T03yPfcpO z%p%X79S9!;y8g$w+0tMe(9e}wSfix_xmTh^)_-*FT z(|FcjUx@?8SN7l(-*W(!zfDsoGn7P*V$SI>&o&L*P$JI6GlDC9GOc(_XIQc@*wdGw zNFRfz?rRxxs%&RyLDF(W*B{w$jf?#Gp)se@)VVJaE2DplKQ!PcWt4CHs!Up=u*vZe zN7|Lo%6T^WLV)x)V$P$luzZhh%7b!@LnxCQ(r}wO4!)Z_%nJa0`7VdHEglN*=R(Q_ z&NC^KO58}cj?b&eERK=qqK&i&6Me}0>!;Jct~0e+ z@1otzom0Vr4Y{=eKuPJArojDAhcv7ilBSI_^0(L2*|sUy$LpcX*UP~HkG2;Fci`P? z;@kYmfbW%aPtTZLU0y1_7hJl}8j=t7qz}k|C+un* zhMPE;#t+CgWbYP_QvC?ZlH^inn7N7~O%>Z*_XEX$T^(h%3r%XVRXYo+zN;oi0dtx< ze*PKL1AU>FS2#7ITF^yK=;fN3p9|12X~;^X&K(`Q58|674jFfhEjI`>+elh5-JgSr zw^+5}MWONcXU-L9YL4&LplZUR#gSB_>}eRg!>EaWJoPEwaV_tu`O z|CBng6neDW#06MCM#TGh#I9{Q=%2k8qm=$uvxL*-reruvAy({ltYM$DRqV?}2s4kS zKT4a5$ga8j5N;(s{7AH+a4nC3ua`pfhF;L=ygf$1wNP9|kBwDfCg7XB-oF=J?1s)X zK%%bnQj03IA@cIBNn%n2aNXOY;y9OAXmHC;IC?p{WOJy{ei_&OeUwpOE&A6urhQ^A z{<2ns)?r8yT5(GF@vL36dWUM{4b-08k7@;Pslk!bLH=WrB^t(Qf+UV}IVdi735SxU zlaf;0v>M_ZFAbeYKc9?aJC6Ps6(>CM1;W}XgIonhlC1?IdM_v)v1hsjJ|~EMIc$Ke zQrfM%S>Ki89Up(;k+6`ALF+Xh(Qly|KTYUeNVTR<9=k1p9 zkMDg`8;vVmD`#hM3#l4?i3nfc?q470331EiP}5m?yB6Izt2I7y^f2I&*O%IQJBz6tv=TwjI~`k`JAa6#InZpU!PtAj z-PZJJnr(jIX3pHX2XaNqSYyn~!`(`;T;I@6P`7_pRW60P0!MLGf9}VZ-H;NhuO^2c z4-PH-zfx|>k`EKfqg#PsLB;I#J&Rz3bfm4vZh*7T>DA2Z1Yi5cvW!_eB&yAq8UrjT+7i3gv7LdeNjcmt`ewvM2=FOn3-W3Q1-8&4K z!;V~=2ldxHyI}2q|9zf_nn<}rglgx4jh_$QX~~!mN@IMjj+X04G}d_zDo1RawvY7;1y%v z$wxG|v8YSQ7b+^aO($P+T88$tYTgQ0h`||gzjH6Ej5}72>(|!i{Ism(e6U$jPSL!x ze}t!lhY;OOW`a75Rtvk^Xmj>uk)x4?DtV7QqNkD(j7ot4@lksrD*pkttuy=iv#Rys zJ4y_EX<0c{mliV5Nk-`cbu!rESeeE%*LXLB5Oz``n2+*wU|>ie(58f_!Sag0~RsaIkV^k*jeLf9S> z3^e*BOkk-kGZj9ZLs@nJ<+*s|=^3{1mld>ZHqJV{2pE+29LYB+E#noZnqJ=60*(v} z^4R&srO_Qruqq`gN)ES$edC1 zCa?yJ$~hNcZNG0 z!1ug@Z$xCv15#U zcGTGmlS}N+IcxImHn^(-^&l}Ed*1>d(WolNJF5!w)T+&p`0||k`D(_T0JG!p&gzD= z^IHa0p7p_UIFY`YY{|jP>$%q19AuFB#$=qMBAsL#;rBt|b4jOim_s&mYF*6xWu&-P zsZrm+#rm`r=yq^h7u*=B;z&lh;R(FY+e?OiG;sadLQS8FP3{x39O5RAvgfUwy%`w`niMLzmt(l|9#9U^Op zg&o>beqEQQ&gJpsbtrTK;rJb(Wb;@E>oMxD2l!*U?NtY^e@Wi~)d=9M-oPjhFx3$U z?E7MlWkD}N>kshNEgT}NfnX-EB>bM*-gfR&P0lZ&Rg*9j@se? z{>cl7bzklw#9{Jl=_IOab0l7P!HtVc0{SZ_^Q_+`%AY1U*c_4}S=}L#GS=OLU%2;n z{_GZ;UD6Xn^Fk}AaKG8L#_+36+xYok|wB%3Pb3tf7%Bewz|FB8NSSH;CU-&4p8r)3jtNCn+&dzF6yvThhA3BA`CxRU5%{%d z>QXzS-|UyC+CEHM%*uhYV4VkgSfWh#6&y)*m?CKC z-qrS|h%$50qQB!*7=&dh_ua-z==;1FwY}z9wOZRW*;y^zfWtd}yH-rQM_mr0$q@?qY`f*h z6e-}mf`~-LoW`|YZ48n@f+dV>ZeTRtqRSt;<_8^ z#OvZE)*uNN;P(bz=>Z{xPU-+ZT`Oxdfl%@Y3s1i@qxX}<$T6LzmMzgw>m?HqIn{AYi*GdHR#o=I8r(2VN{1wXM{MyL&ZW- zhnhWqePVlOiQ~1513uys*BDPX+}wE>hR0n2i-tn5ox*12xl-UNTCMgrEOp; z$DeE3_-pRebbts?;EO*BD)TC%EB8H}4VmWaoLlNaQLe}?D;AQPJk*h{gr0EQKb96s ziC#u(mSheJYndpCUh)ZfRYs9#Gblr~69VO>L<7l5i42(jZ4QB`K|!iJ3Rh@6(#{TD zIr&_(%mXfn1{-{Z?*FVN?J!j4nOnf|@K67Uw3h#+d8}c+B9&R(02Y$WWTh=4oM;%~ zF0bVFN_*yWvoo&5H#@2gvFo%Zm)pbhui*xa{ zFshO!`46iOUM(5-2$f@4Z~Myl$rGXR`Hn!6!}M$JLZch~L@>%3wxMA^_6KV*@vDQC zzDsF|$s^c2>^H_2c{1QZ$y*A&)2;os-E%C611SQ`(3U47VD`W88n>*s&QTykqsxw; z1al;Pp9S9E9c7=4Bgt6E!1$HCE@Qa7Dkg<*fz@-{EK3K8uN6E>kx_aBGM?araVpVL z8C5u4CgGR~+xeAA=m1vj)~X>Rb-JP-_c9hlEJTVpsUw&goFr1nz%U{?&I~q=MC_8H z={z)qBP@qm^sgh1aI*J2-P551ho0LeYK+oV9Iy?hYy){`Zj3NMFyfkT;@s&l@k{Ay zGY;Pi(L%7k`^AIt#bDBce-dSsHbkrWR#}Y~Hts@R$BY&uphNDtFY`Bz6lJNpDuoL< zvcG*V3H|on6Ra)o;C*7sc24NRP57s8sSyw)=)hL(&Gy4TWZ+BCfU;>LW=g|J_(fazk{D@3Q znL@PXwX~6>%mrd~aN&k;ZpU4`PyU0r!r5K|Rj9RMRiQ1vR|&i~2NreZ2YKpF@7?+Z z6BT4;cGs#H>vU86_`aEnm9R?5BX+=!+)y{sCOgQcdR7WA;<9+%Qp}&$iKp&1TwYS# zNnh?nEfF=}XfseRr-jAftRD|dJ*S=q$ZE=TVSs;kzJB)wC3ofJbRJz_mH(oU<6K