TP-0000 | code refactoring (#1)
This commit is contained in:
committed by
GitHub Enterprise
parent
8fcb4f139d
commit
25aa651515
20
Dockerfile
Normal file
20
Dockerfile
Normal file
@@ -0,0 +1,20 @@
|
||||
#ARG GOLANG_TAG=193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/golang:1.19
|
||||
|
||||
# To run locally, use
|
||||
ARG GOLANG_TAG=registry.cmd.navi-tech.in/common/golang:1.19
|
||||
|
||||
FROM ${GOLANG_TAG} as builder
|
||||
RUN mkdir -p /build
|
||||
WORKDIR /build
|
||||
COPY . /build
|
||||
RUN /bin/bash -c "make build"
|
||||
|
||||
FROM ${GOLANG_TAG}
|
||||
RUN mkdir -p /usr/local
|
||||
WORKDIR /usr/local
|
||||
RUN mkdir -p houstonTmp
|
||||
COPY --from=0 /build/houston /usr/local/
|
||||
COPY --from=0 /build/config/application.properties /usr/local/config/
|
||||
RUN adduser --system --uid 4000 --disabled-password app-user && chown -R 4000:4000 /usr/local && chmod -R g+w /usr/local/
|
||||
USER 4000
|
||||
CMD /bin/bash -c "./houston"
|
||||
@@ -1,22 +0,0 @@
|
||||
ARG GOLANG_TAG=193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/golang:1.19
|
||||
|
||||
# To run locally, use
|
||||
#ARG GOLANG_TAG=registry.cmd.navi-tech.in/common/golang:1.19
|
||||
|
||||
FROM ${GOLANG_TAG} as builder
|
||||
RUN mkdir -p /build/core
|
||||
WORKDIR /build/core/
|
||||
COPY . /build/core/
|
||||
RUN /bin/bash -c "make build-core"
|
||||
|
||||
FROM ${GOLANG_TAG}
|
||||
RUN mkdir -p /usr/local
|
||||
RUN apt-get -y update
|
||||
RUN apt-get install -y ffmpeg
|
||||
WORKDIR /usr/local
|
||||
RUN mkdir -p houstonTmp
|
||||
COPY --from=0 /build/core/houston /usr/local/
|
||||
COPY --from=0 /build/core/config/application-houston.properties /usr/local/config/
|
||||
RUN adduser --system --uid 4000 --disabled-password app-user && chown -R 4000:4000 /usr/local && chmod -R g+w /usr/local/
|
||||
USER 4000
|
||||
CMD /bin/bash -c "./houston"
|
||||
11
Makefile
11
Makefile
@@ -0,0 +1,11 @@
|
||||
.PHONY: build
|
||||
build:
|
||||
go mod tidy && CGO_ENABLED=0 go build -ldflags="-s -w" -o houston cmd/main.go
|
||||
|
||||
.PHONY: docker-build
|
||||
docker-build:
|
||||
docker build -t houston -f Dockerfile .
|
||||
|
||||
.PHONY: docker-run
|
||||
docker-run: docker-build
|
||||
docker run houston
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
BLAZELESS_SLACK_APP_TOKEN=xapp-1-A0444DP8XU5-4136817231606-8e441610b1696fd4f5fa81e9507a3d6f625504ac07588c63543972ff3b147321
|
||||
BLAZELESS_SLACK_BOT_TOKEN=
|
||||
BOOTSTRAP_SERVERS=localhost:9092
|
||||
GROUP_ID=blaze-group
|
||||
AUTO_OFFSET_RESET=newest
|
||||
ENABLE=true
|
||||
ACKS=0
|
||||
SECURITY_PROTOCOL=
|
||||
SASL_MECHANISMS=
|
||||
SASL_USERNAME=
|
||||
SASL_PASSWORD=
|
||||
ENVIRONMENT=local
|
||||
SHOW_INCIDENTS_LIMIT=10
|
||||
@@ -1,13 +0,0 @@
|
||||
HOUSTON_SLACK_APP_TOKEN=xapp-1-A0444DP8XU5-4136817231606-8e441610b1696fd4f5fa81e9507a3d6f625504ac07588c63543972ff3b147321
|
||||
HOUSTON_SLACK_BOT_TOKEN=j22
|
||||
BOOTSTRAP_SERVERS=localhost:9092
|
||||
GROUP_ID=blaze-group
|
||||
AUTO_OFFSET_RESET=newest
|
||||
ENABLE=true
|
||||
ACKS=0
|
||||
SECURITY_PROTOCOL=
|
||||
SASL_MECHANISMS=
|
||||
SASL_USERNAME=
|
||||
SASL_PASSWORD=
|
||||
ENVIRONMENT=local
|
||||
SHOW_INCIDENTS_LIMIT=10
|
||||
6
config/application.properties
Normal file
6
config/application.properties
Normal file
@@ -0,0 +1,6 @@
|
||||
HOUSTON_SLACK_APP_TOKEN=xapp-1-A0444DP8XU5-4136817231606-8e441610b1696fd4f5fa81e9507a3d6f625504ac07588c63543972ff3b147321
|
||||
HOUSTON_SLACK_BOT_TOKEN=j22
|
||||
ENVIRONMENT=local
|
||||
SHOW_INCIDENTS_LIMIT=10
|
||||
PORT=8080
|
||||
METRIC_PORT=9090
|
||||
@@ -1,20 +1,16 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
"go.uber.org/zap"
|
||||
"os"
|
||||
)
|
||||
|
||||
|
||||
func LoadHoustonConfig(logger *zap.Logger) {
|
||||
viper.AutomaticEnv()
|
||||
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
||||
viper.SetConfigName("blazeless-config")
|
||||
viper.SetConfigName("houston-config")
|
||||
viper.SetConfigType("properties")
|
||||
viper.SetConfigFile("./config/application-blazeless.properties")
|
||||
viper.SetConfigFile("./config/application.properties")
|
||||
|
||||
err := viper.ReadInConfig()
|
||||
if err != nil {
|
||||
|
||||
BIN
pkg/kafka/.DS_Store
vendored
BIN
pkg/kafka/.DS_Store
vendored
Binary file not shown.
@@ -1,80 +0,0 @@
|
||||
package kafka
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/Shopify/sarama"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
func SaramaSyncProducer() (sarama.AsyncProducer, error) {
|
||||
return sarama.NewAsyncProducer(strings.Split(viper.GetString("kafka.brokers"), ","), kafkaProducerConfig())
|
||||
}
|
||||
|
||||
func SaramaKafkaConsumer(groupID string) (sarama.ConsumerGroup, error) {
|
||||
consumerGroup, err := sarama.NewConsumerGroup(strings.Split(viper.GetString("kafka.brokers"), ","), groupID, kafkaConsumerConfig(groupID))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return consumerGroup, nil
|
||||
}
|
||||
|
||||
func kafkaProducerConfig() *sarama.Config {
|
||||
config := kafkaConfig()
|
||||
|
||||
config.Producer.Retry.Max = 3
|
||||
config.Producer.RequiredAcks = sarama.WaitForLocal
|
||||
config.Producer.Compression = sarama.CompressionSnappy
|
||||
config.Producer.Return.Successes = true
|
||||
config.Producer.Flush.Bytes = 100
|
||||
config.Producer.Flush.Frequency = 100
|
||||
config.Producer.Flush.Messages = 100
|
||||
config.Producer.Flush.MaxMessages = 100
|
||||
|
||||
config.Metadata.RefreshFrequency = 1 * time.Minute
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
func kafkaConsumerConfig(groupId string) *sarama.Config {
|
||||
config := kafkaConfig()
|
||||
|
||||
config.Version = sarama.V3_3_1_0
|
||||
config.Consumer.Offsets.Initial = sarama.OffsetNewest
|
||||
config.Consumer.Return.Errors = true
|
||||
config.ClientID = groupId
|
||||
config.Consumer.Group.Rebalance.Strategy = sarama.BalanceStrategyRoundRobin
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
func kafkaConfig() *sarama.Config {
|
||||
config := sarama.NewConfig()
|
||||
env := viper.GetString("env")
|
||||
|
||||
if env == "local" {
|
||||
return config
|
||||
}
|
||||
|
||||
if env == "prod" {
|
||||
config.Net.SASL.Mechanism = sarama.SASLTypePlaintext
|
||||
} else {
|
||||
config.Net.SASL.Mechanism = sarama.SASLTypeSCRAMSHA512
|
||||
config.Net.SASL.SCRAMClientGeneratorFunc = func() sarama.SCRAMClient {
|
||||
return &XDGSCRAMClient{HashGeneratorFcn: SHA512}
|
||||
}
|
||||
}
|
||||
|
||||
config.Net.SASL.User = viper.GetString("kafka.username")
|
||||
config.Net.SASL.Password = viper.GetString("kafka.password")
|
||||
config.Net.SASL.Enable = viper.GetBool("kafka.sasl.enabled")
|
||||
config.Net.TLS.Enable = viper.GetBool("kafka.tls.enabled")
|
||||
config.Net.TLS.Config = &tls.Config{
|
||||
InsecureSkipVerify: viper.GetBool("kafka.tls.insecureSkipVerify"),
|
||||
}
|
||||
|
||||
return config
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
package kafka
|
||||
|
||||
import (
|
||||
"blaze/pkg/kafka"
|
||||
"os"
|
||||
|
||||
"github.com/Shopify/sarama"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type KProducer struct {
|
||||
sarama.AsyncProducer
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
func NewKProducer(logger *zap.Logger) *KProducer {
|
||||
producer, err := kafka.SaramaSyncProducer()
|
||||
if err != nil {
|
||||
logger.Error("sarama kafka producer failed", zap.Error(err))
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
kProducer := &KProducer{
|
||||
AsyncProducer: producer,
|
||||
logger: logger,
|
||||
}
|
||||
|
||||
kProducer.Errors()
|
||||
kProducer.Successes()
|
||||
|
||||
return kProducer
|
||||
}
|
||||
|
||||
// Errors keep the track of failed messages.
|
||||
func (kp *KProducer) Errors() {
|
||||
go func() {
|
||||
for err := range kp.AsyncProducer.Errors() {
|
||||
keyBytes, errEncode := err.Msg.Key.Encode()
|
||||
if errEncode != nil {
|
||||
kp.logger.Error("key encoding failed for failed message", zap.String("topic", err.Msg.Topic))
|
||||
}
|
||||
|
||||
// metrics.KafkaEventIngestionEventFailureCounter.WithLabelValues(err.Msg.Topic).Inc()
|
||||
kp.logger.Error("failed to emit event to kafka", zap.String("topic", err.Msg.Topic),
|
||||
zap.String("key", string(keyBytes)), zap.Any("value", string(keyBytes)), zap.String("error", err.Error()))
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
// Successes is to check if message successfully delivered to kafka
|
||||
func (kp *KProducer) Successes() {
|
||||
go func() {
|
||||
for msg := range kp.AsyncProducer.Successes() {
|
||||
keyBytes, errEncode := msg.Key.Encode()
|
||||
if errEncode != nil {
|
||||
kp.logger.Error("key encoding failed for failed message", zap.String("topic", msg.Topic))
|
||||
}
|
||||
|
||||
// metrics.KafkaEventIngestionEventSuccessCounter.WithLabelValues(msg.Topic).Inc()
|
||||
kp.logger.Info("successfully ingested event to kafka", zap.String("topic", msg.Topic), zap.String("key", string(keyBytes)))
|
||||
}
|
||||
}()
|
||||
}
|
||||
@@ -1,599 +0,0 @@
|
||||
020003558014
|
||||
020003900893
|
||||
020003333489
|
||||
027620996
|
||||
020003445139
|
||||
021702862
|
||||
027409590
|
||||
020004267232
|
||||
025883146
|
||||
020000040077
|
||||
027259677
|
||||
020003732743
|
||||
020003341765
|
||||
020004269102
|
||||
020003447657
|
||||
020003300976
|
||||
020003524585
|
||||
020003454356
|
||||
020004506061
|
||||
021583078
|
||||
020003576779
|
||||
022465360
|
||||
020003341738
|
||||
026592869
|
||||
020004408853
|
||||
020003680059
|
||||
020003521018
|
||||
020004464121
|
||||
020004295982
|
||||
020004699471
|
||||
020003492076
|
||||
020004421882
|
||||
020003620905
|
||||
021844073
|
||||
020003905104
|
||||
020004835161
|
||||
021830531
|
||||
020003530514
|
||||
020003331307
|
||||
020003424364
|
||||
020004395272
|
||||
025911471
|
||||
020003830373
|
||||
020003509994
|
||||
020004066362
|
||||
020004205112
|
||||
020162216
|
||||
020004010831
|
||||
026504309
|
||||
020003765224
|
||||
020003565794
|
||||
024415636
|
||||
024086936
|
||||
020003423080
|
||||
020003841894
|
||||
021628510
|
||||
020003422987
|
||||
026117018
|
||||
020004575492
|
||||
020004259951
|
||||
020003718823
|
||||
027599428
|
||||
020003181757
|
||||
028267509
|
||||
029988750
|
||||
020003502316
|
||||
020004649161
|
||||
022524458
|
||||
022408293
|
||||
020004653651
|
||||
020003318189
|
||||
020004017401
|
||||
020003446105
|
||||
020003734153
|
||||
020003404739
|
||||
022535780
|
||||
020003020055
|
||||
020003305629
|
||||
020003641184
|
||||
020003309586
|
||||
021866406
|
||||
025109686
|
||||
020663707
|
||||
028204765
|
||||
020003519985
|
||||
020003719493
|
||||
020003509334
|
||||
020003984191
|
||||
020004263641
|
||||
020003654445
|
||||
020006116642
|
||||
020007731381
|
||||
020005767123
|
||||
020004848105
|
||||
020005929313
|
||||
020006498112
|
||||
020004477507
|
||||
020005393927
|
||||
020004781476
|
||||
020006272862
|
||||
|
||||
|
||||
020005322935
|
||||
020005236375
|
||||
020005303595
|
||||
020005488425
|
||||
020004654559
|
||||
020006051913
|
||||
020005488175
|
||||
020004608600
|
||||
020005492575
|
||||
020005312368
|
||||
020005304248
|
||||
020005315735
|
||||
020007508881
|
||||
020004823974
|
||||
020006194523
|
||||
020005246918
|
||||
020006404662
|
||||
020007650991
|
||||
020005356386
|
||||
020005786724
|
||||
020005968223
|
||||
020005821414
|
||||
020006612462
|
||||
020007973331
|
||||
020008056531
|
||||
020007582001
|
||||
020004823859
|
||||
020006077182
|
||||
020008088441
|
||||
020007926721
|
||||
020003841686
|
||||
020005397835
|
||||
020006364113
|
||||
020004593200
|
||||
020005882723
|
||||
020005439094
|
||||
020008022001
|
||||
020006649852
|
||||
020007854771
|
||||
020005859074
|
||||
020005151627
|
||||
020005354737
|
||||
020007799021
|
||||
020004753940
|
||||
020005431224
|
||||
020005414436
|
||||
020005428978
|
||||
020006698082
|
||||
020005613886
|
||||
020005283297
|
||||
020007780281
|
||||
|
||||
|
||||
|
||||
020007091041
|
||||
020006582162
|
||||
020008101671
|
||||
020006309823
|
||||
020008344001
|
||||
020008364981
|
||||
020005674135
|
||||
020005019339
|
||||
020006693612
|
||||
020005633437
|
||||
020004730030
|
||||
020005927584
|
||||
020005447816
|
||||
020005660997
|
||||
020006171863
|
||||
020005667075
|
||||
020005314367
|
||||
020006163912
|
||||
020004791270
|
||||
020008274491
|
||||
020007904631
|
||||
020004441634
|
||||
020004442564
|
||||
020003977800
|
||||
020005083822
|
||||
020003883850
|
||||
020003901247
|
||||
020003800026
|
||||
020005794061
|
||||
020005262551
|
||||
020004367433
|
||||
020004474784
|
||||
020005925561
|
||||
020006074041
|
||||
020004749644
|
||||
020004862063
|
||||
020004767843
|
||||
020004060670
|
||||
020004066814
|
||||
025221920
|
||||
020003707965
|
||||
020003605755
|
||||
020005994721
|
||||
020005172043
|
||||
020004949973
|
||||
020004225623
|
||||
020004185030
|
||||
020003851584
|
||||
020004266845
|
||||
020004048067
|
||||
|
||||
|
||||
|
||||
020004523853
|
||||
020004529807
|
||||
020003750367
|
||||
020004016159
|
||||
020004291054
|
||||
020004687113
|
||||
020004518973
|
||||
020006395481
|
||||
020004622625
|
||||
020004051316
|
||||
020003562855
|
||||
020004031785
|
||||
020004391227
|
||||
020005664332
|
||||
020004105055
|
||||
020004280939
|
||||
020004105319
|
||||
020004351819
|
||||
020004845424
|
||||
020004359819
|
||||
020006265381
|
||||
020005322412
|
||||
020004719983
|
||||
020005631321
|
||||
020003895569
|
||||
020003912236
|
||||
020006657611
|
||||
020004048521
|
||||
020003843318
|
||||
020004308010
|
||||
020003956458
|
||||
020004516044
|
||||
020004028898
|
||||
020006388711
|
||||
020005244533
|
||||
020004855953
|
||||
020004317519
|
||||
020005589062
|
||||
020004403309
|
||||
020005639722
|
||||
020006468191
|
||||
020004475026
|
||||
020006503751
|
||||
020004094780
|
||||
020005344703
|
||||
020004962484
|
||||
020004085627
|
||||
020003857609
|
||||
020006681381
|
||||
020004603504
|
||||
020006700661
|
||||
020003756527
|
||||
020004029457
|
||||
020004579728
|
||||
020005137302
|
||||
020004580898
|
||||
020004640226
|
||||
020005324463
|
||||
020004611985
|
||||
020004589018
|
||||
020004701175
|
||||
020005067154
|
||||
020006844231
|
||||
020004378755
|
||||
020004705107
|
||||
020004728556
|
||||
020005225482
|
||||
020004324990
|
||||
020005703772
|
||||
020003958907
|
||||
020005829962
|
||||
020004812545
|
||||
020005599603
|
||||
020004553915
|
||||
020005909552
|
||||
020004592108
|
||||
020004373517
|
||||
020004236989
|
||||
020004740387
|
||||
020004953424
|
||||
020005419151
|
||||
020006204921
|
||||
020004432370
|
||||
020005246083
|
||||
020004809305
|
||||
020004921568
|
||||
020006414051
|
||||
020004699517
|
||||
020004686966
|
||||
020004507368
|
||||
020004845566
|
||||
020006843091
|
||||
020005607562
|
||||
020005928102
|
||||
020005490352
|
||||
020004696605
|
||||
020004865257
|
||||
020005575043
|
||||
020004987926
|
||||
020003414947
|
||||
028026488
|
||||
020003597024
|
||||
020004738471
|
||||
020003564164
|
||||
020004553411
|
||||
020003461578
|
||||
022691120
|
||||
020003182638
|
||||
020004777461
|
||||
020004064332
|
||||
020744216
|
||||
027498632
|
||||
020003506595
|
||||
023032271
|
||||
020005744212
|
||||
020004885505
|
||||
020005900452
|
||||
020004693747
|
||||
020005074815
|
||||
020005468072
|
||||
020003764580
|
||||
020004965517
|
||||
020007176641
|
||||
020005283484
|
||||
020005713413
|
||||
020005236293
|
||||
020005720442
|
||||
020004330539
|
||||
020005531753
|
||||
020007034831
|
||||
020007305511
|
||||
020005861982
|
||||
020005775983
|
||||
020003788957
|
||||
020005975172
|
||||
020004663899
|
||||
020005386144
|
||||
020006609581
|
||||
020004133039
|
||||
020005035375
|
||||
020004884588
|
||||
020005099556
|
||||
020007390911
|
||||
020005760873
|
||||
020005021048
|
||||
020006199092
|
||||
020005190004
|
||||
020004722715
|
||||
020005527164
|
||||
020007537971
|
||||
020004980066
|
||||
020004704249
|
||||
020005892283
|
||||
020004732207
|
||||
020006232942
|
||||
020004918868
|
||||
020005192896
|
||||
020007667311
|
||||
020004989398
|
||||
020007634441
|
||||
020005155257
|
||||
020006957991
|
||||
020007106211
|
||||
020005268715
|
||||
020007660811
|
||||
020004970205
|
||||
020004627675
|
||||
020004703536
|
||||
020007729571
|
||||
020007634671
|
||||
020005573314
|
||||
020004676109
|
||||
020004638768
|
||||
020005226084
|
||||
020005117416
|
||||
020005688292
|
||||
020005659304
|
||||
020004749349
|
||||
020006235552
|
||||
020004527110
|
||||
020007661711
|
||||
020005982203
|
||||
020005295306
|
||||
020007188841
|
||||
020007780811
|
||||
020004480188
|
||||
020007569521
|
||||
020006321722
|
||||
020004855608
|
||||
020005397565
|
||||
020005542684
|
||||
020007799701
|
||||
020005576724
|
||||
020005320687
|
||||
020006260652
|
||||
020005651084
|
||||
021699853
|
||||
020003211467
|
||||
020004212672
|
||||
020003311478
|
||||
023115669
|
||||
022053955
|
||||
020004028623
|
||||
020003854803
|
||||
022269713
|
||||
020004367491
|
||||
020003489234
|
||||
020003968141
|
||||
020004088703
|
||||
020004781631
|
||||
020003590698
|
||||
020003608224
|
||||
021764301
|
||||
024569436
|
||||
028897136
|
||||
020003347254
|
||||
027004176
|
||||
020003804756
|
||||
020003269885
|
||||
020004230903
|
||||
020909972
|
||||
020003690530
|
||||
020003226696
|
||||
020004083264
|
||||
020003742206
|
||||
025347015
|
||||
020004291153
|
||||
020004498423
|
||||
020003794844
|
||||
020003834190
|
||||
020003756936
|
||||
020003511559
|
||||
020003877095
|
||||
020003487918
|
||||
020004685822
|
||||
020003885889
|
||||
020003859649
|
||||
020003564235
|
||||
020004316152
|
||||
020003844290
|
||||
020003810679
|
||||
020004611121
|
||||
020004261744
|
||||
020003281276
|
||||
020003797567
|
||||
020004515253
|
||||
020004924352
|
||||
020003741998
|
||||
020004576931
|
||||
020003953776
|
||||
020004879391
|
||||
020003606930
|
||||
020003836000
|
||||
020003820747
|
||||
020004514243
|
||||
020004065301
|
||||
020004002255
|
||||
020003701809
|
||||
020003967615
|
||||
020004673341
|
||||
023079283
|
||||
020004371223
|
||||
020003834269
|
||||
020003998142
|
||||
020005491341
|
||||
020004762351
|
||||
020005058981
|
||||
020004007182
|
||||
020004365432
|
||||
020004243373
|
||||
020004081526
|
||||
020004109482
|
||||
020003898056
|
||||
020005321451
|
||||
020004066579
|
||||
020004152485
|
||||
020004386274
|
||||
020003626450
|
||||
020004306653
|
||||
020003746067
|
||||
020004007525
|
||||
020004174104
|
||||
020004034759
|
||||
020004118316
|
||||
020005108101
|
||||
020003575255
|
||||
020005378251
|
||||
020004803142
|
||||
020004605093
|
||||
020003578367
|
||||
020004499083
|
||||
020003684524
|
||||
020003956310
|
||||
020004024798
|
||||
020004911582
|
||||
020004676942
|
||||
020005315441
|
||||
020005450321
|
||||
020004520313
|
||||
020005014731
|
||||
020003667279
|
||||
020005111272
|
||||
020005045472
|
||||
020003872436
|
||||
020004030080
|
||||
020005636231
|
||||
020003800375
|
||||
020004406494
|
||||
020004175355
|
||||
020004066941
|
||||
020005318352
|
||||
020005022482
|
||||
020003932950
|
||||
020003842090
|
||||
020003950158
|
||||
020004532024
|
||||
023848787
|
||||
020004698222
|
||||
020003320654
|
||||
020004430581
|
||||
020003317020
|
||||
020003697824
|
||||
020003997801
|
||||
025731975
|
||||
020003413630
|
||||
020003374006
|
||||
020003980663
|
||||
027051673
|
||||
027208549
|
||||
029903465
|
||||
027792784
|
||||
020003311545
|
||||
020003356864
|
||||
022120906
|
||||
023757053
|
||||
020004074581
|
||||
020003527228
|
||||
020003297107
|
||||
020002220051
|
||||
020003526434
|
||||
020003740864
|
||||
020003438775
|
||||
020003958341
|
||||
025944636
|
||||
027254319
|
||||
028068077
|
||||
026641741
|
||||
020004125482
|
||||
020003629339
|
||||
020004398392
|
||||
022283492
|
||||
020003444186
|
||||
022260920
|
||||
020003506690
|
||||
021615995
|
||||
020003505914
|
||||
023691708
|
||||
020004385372
|
||||
020004292781
|
||||
020003413417
|
||||
026580479
|
||||
020004034222
|
||||
028432029
|
||||
020003384586
|
||||
020003438709
|
||||
020004034062
|
||||
020003506854
|
||||
020003373047
|
||||
022850287
|
||||
020003844314
|
||||
020004087263
|
||||
020004657911
|
||||
020003376667
|
||||
020004576882
|
||||
020003421694
|
||||
020003333266
|
||||
024739738
|
||||
020003609754
|
||||
022630719
|
||||
020003403645
|
||||
020003483055
|
||||
020004141901
|
||||
023640399
|
||||
020004177831
|
||||
020003979512
|
||||
024127386
|
||||
024093227
|
||||
027507965
|
||||
020004251691
|
||||
020003269657
|
||||
@@ -1 +0,0 @@
|
||||
["020007091041","020006582162","020008101671","020006309823","020008344001","020008364981","020005674135","020005019339","020006693612","020005633437","020004730030","020005927584","020005447816","020005660997","020006171863","020005667075","020005314367","020006163912","020004791270","020008274491","020007904631","020004441634","020004442564","020003977800","020005083822","020003883850","020003901247","020003800026","020005794061","020005262551","020004367433","020004474784","020005925561","020006074041","020004749644","020004862063","020004767843","020004060670","020004066814","025221920","020003707965","020003605755","020005994721","020005172043","020004949973","020004225623","020004185030","020003851584","020004266845","020004048067"]
|
||||
Reference in New Issue
Block a user