2.0.644 • Published 7 months ago

cdk-lambda-subminute v2.0.644

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
7 months ago

cdk-lambda-subminute

License Release npm downloads pypi downloads NuGet downloads repo languages

npm (JS/TS)PyPI (Python)Maven (Java)GoNuGet
LinkLinkLinkLinkLink

This construct creates a state machine that can invoke a Lambda function per time unit which can be less than one minute, such as invoking every 10 seconds. You only need to craft a Lambda function and then assign it as an argument into the construct. An example is included.

Serverless Architecture

Introduction

This construct library is reffered to thie AWS Architecture blog post, A serverless solution for invoking AWS Lambda at a sub-minute frequency, written by Emanuele Menga. I made it as a constrcut library where you only need to care about a target Lambda function, how frequent and how long you want to execute.

Example

Typescript

You could also refer to here.

$ cdk --init language typescript
$ yarn add cdk-lambda-subminute
class TypescriptStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const targetLabmda = new Function(this, 'targetFunction', {
      code: Code.fromInline('exports.handler = function(event, ctx, cb) { return cb(null, "hi"); })'), // It's just a simple function for demonstration purpose only.
      functionName: 'testTargetFunction',
      runtime: Runtime.NODEJS_18_X,
      handler: 'index.handler',
    });
    const cronJobExample = 'cron(50/1 15-17 ? * SUN-SAT *)';
    const subminuteMaster = new LambdaSubminute(this, 'LambdaSubminute', { targetFunction: targetLabmda, cronjobExpression: cronJobExample });

    new cdk.CfnOutput(this, 'OStateMachineArn', { value: subminuteMaster.stateMachineArn });
    new cdk.CfnOutput(this, 'OIteratorFunctionArn', { value: subminuteMaster.iteratorFunction.functionArn });
  }
}

const app = new cdk.App();
new TypescriptStack(app, 'TypescriptStack', {
});

Python

You could also refer to here.

# upgrading related Python packages
$ python -m ensurepip --upgrade
$ python -m pip install --upgrade pip
$ python -m pip install --upgrade virtualenv
# initialize a CDK Python project
$ cdk init --language python
# make packages installed locally instead of globally
$ source .venv/bin/activate
$ cat <<EOL > requirements.txt
aws-cdk.core
aws-cdk.aws-lambda
cdk-lambda-subminute
EOL
$ python -m pip install -r requirements.txt
from aws_cdk import core as cdk
from aws_cdk.aws_lambda import Code, Function, Runtime
from cdk_lambda_subminute import LambdaSubminute

class PythonStack(cdk.Stack):
    def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        target_lambda = Function(
            self, "targetFunction",
            code=Code.from_inline(
                "exports.handler = function(event, ctx, cb) { return cb(null, \"hi\"); })"),
            function_name="testTargetFunction",
            runtime=Runtime.NODEJS_18_X,
            handler="index.handler"
        )
        cron_job_example = "cron(10/1 4-5 ? * SUN-SAT *)"
        subminute_master = LambdaSubminute(
            self, "LambdaSubminute",
            target_function=target_lambda,
            cronjob_expression=cron_job_example,
            frequency=7,
            interval_time=8)

        cdk.CfnOutput(self, "OStateMachineArn",
                      value=subminute_master.state_machine_arn)
        cdk.CfnOutput(self, "OIteratorFunctionArn",
                      value=subminute_master.iterator_function.function_arn)
$ deactivate

Java

You could also refer to here.

$ cdk init --language java
$ mvn package
.
.
<properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <cdk.version>2.149.0</cdk.version>
      <constrcut.verion>2.0.442</constrcut.verion>
      <junit.version>5.7.1</junit.version>
</properties>
 .
 .
 <dependencies>
     <!-- AWS Cloud Development Kit -->
      <dependency>
            <groupId>software.amazon.awscdk</groupId>
            <artifactId>core</artifactId>
            <version>${cdk.version}</version>
      </dependency>
      <dependency>
            <groupId>software.amazon.awscdk</groupId>
            <artifactId>lambda</artifactId>
            <version>${cdk.version}</version>
      </dependency>
      <dependency>
            <groupId>io.github.hsiehshujeng</groupId>
            <artifactId>cdk-lambda-subminute</artifactId>
            <version>${constrcut.verion}</version>
      </dependency>
     .
     .
     .
 </dependencies>
package com.myorg;

import software.amazon.awscdk.core.CfnOutput;
import software.amazon.awscdk.core.CfnOutputProps;
import software.amazon.awscdk.core.Construct;
import software.amazon.awscdk.core.Stack;
import software.amazon.awscdk.core.StackProps;
import software.amazon.awscdk.services.lambda.Code;
import software.amazon.awscdk.services.lambda.Function;
import software.amazon.awscdk.services.lambda.FunctionProps;
import software.amazon.awscdk.services.lambda.Runtime;
import io.github.hsiehshujeng.cdk.lambda.subminute.LambdaSubminute;
import io.github.hsiehshujeng.cdk.lambda.subminute.LambdaSubminuteProps;

public class JavaStack extends Stack {
    public JavaStack(final Construct scope, final String id) {
        this(scope, id, null);
    }

    public JavaStack(final Construct scope, final String id, final StackProps props) {
        super(scope, id, props);

        Function targetLambda = new Function(this, "targetFunction", 
          FunctionProps.builder()
              .code(Code.fromInline("exports.handler = function(event, ctx, cb) { return cb(null, \"hi\"); })"))
              .functionName("estTargetFunction")
              .runtime(Runtime.NODEJS_18_X)
              .handler("index.handler")
              .build());
        String cronJobExample = "cron(50/1 4-5 ? * SUN-SAT *)";
        LambdaSubminute subminuteMaster = new LambdaSubminute(this, "LambdaSubminute", LambdaSubminuteProps.builder()
              .targetFunction(targetLambda)
              .cronjobExpression(cronJobExample)
              .frequency(6)
              .intervalTime(9)
              .build());

        new CfnOutput(this, "OStateMachineArn",
                CfnOutputProps.builder()
                  .value(subminuteMaster.getStateMachineArn())
                  .build());
        new CfnOutput(this, "OIteratorFunctionArn",
                CfnOutputProps.builder()
                  .value(subminuteMaster.getIteratorFunction().getFunctionName())
                  .build());
    }
}

C

You could also refer to here.

$ cdk init --language csharp
$ dotnet add src/Csharp package Amazon.CDK.AWS.Lambda
$ dotnet add src/Csharp package Lambda.Subminute --version 2.0.442
using Amazon.CDK;
using Amazon.CDK.AWS.Lambda;
using ScottHsieh.Cdk;

namespace Csharp
{
    public class CsharpStack : Stack
    {
        internal CsharpStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)
        {
            var targetLambda = new Function(this, "targetFunction", new FunctionProps
            {
                Code = Code.FromInline("exports.handler = function(event, ctx, cb) { return cb(null, \"hi\"); })"),
                FunctionName = "testTargetFunction",
                Runtime = Runtime.NODEJS_18_X,
                Handler = "index.handler"
            });
            string cronJobExample = "cron(50/1 6-7 ? * SUN-SAT *)";
            var subminuteMaster = new LambdaSubminute(this, "LambdaSubminute", new LambdaSubminuteProps
            {
                TargetFunction = targetLambda,
                CronjobExpression = cronJobExample,
                Frequency = 10,
                IntervalTime = 6,
            });
        
            new CfnOutput(this, "OStateMachineArn", new CfnOutputProps
            {
                Value = subminuteMaster.StateMachineArn
            });
            new CfnOutput(this, "OIteratorFunctionArn", new CfnOutputProps
            {
                Value = subminuteMaster.IteratorFunction.FunctionArn
            });
        }
    }
}

GO

# Initialize a new AWS CDK application in the current directory with the Go programming language
cdk init app -l go
# Add this custom CDK construct to your project
go get github.com/HsiehShuJeng/cdk-lambda-subminute-go/cdklambdasubminute/v2@v2.0.442
# Ensure all dependencies are properly listed in the go.mod file and remove any unused ones
go mod tidy
# Upgrade all Go modules in your project to their latest minor or patch versions
go get -u ./...

Statemachine Diagram

image

Known issue

Originally, I utilized PythonFuncion in the module of @aws-cdk/aws-lambda-python to build the iterator Lambda function. Every thing works fine, including test, on my local machine (MacBook Pro M1), until it comes to the CI in Github Actions, it awlays gave me the following message:

## cdk version: 1.105.0 (build 4813992)
Bundling did not produce any output. Check that content is written to /asset-output.

      64 |     }));
      65 |
    > 66 |     this.function = new PythonFunction(this, 'Iterator', {
         |                     ^
      67 |       functionName: 'lambda-subminute-iterator',
      68 |       description: 'A function for breaking the limit of 1 minute with the CloudWatch Rules.',
      69 |       logRetention: RetentionDays.THREE_MONTHS,

      at AssetStaging.bundle (node_modules/@aws-cdk/core/lib/asset-staging.ts:484:13)
      at AssetStaging.stageByBundling (node_modules/@aws-cdk/core/lib/asset-staging.ts:328:10)
      at stageThisAsset (node_modules/@aws-cdk/core/lib/asset-staging.ts:194:35)
      at Cache.obtain (node_modules/@aws-cdk/core/lib/private/cache.ts:24:13)
      at new AssetStaging (node_modules/@aws-cdk/core/lib/asset-staging.ts:219:44)
      at new Asset (node_modules/@aws-cdk/aws-s3-assets/lib/asset.ts:127:21)
      at AssetCode.bind (node_modules/@aws-cdk/aws-lambda/lib/code.ts:277:20)
      at new Function (node_modules/@aws-cdk/aws-lambda/lib/function.ts:583:29)
      at new PythonFunction (node_modules/@aws-cdk/aws-lambda-python/lib/function.ts:106:5)
      at new IteratorLambda (src/cdk-lambda-subminute.ts:66:21)
      at new LambdaSubminute (src/cdk-lambda-subminute.ts:25:22)
      at Object.<anonymous>.test (test/integ.test.ts:23:3)

I actually have tried many different methods according to the following threads but to no avail. I'll attempt to test some thoughts or just post the issue onto the CDK Github repo.

2.0.639

8 months ago

2.0.638

8 months ago

2.0.644

7 months ago

2.0.643

7 months ago

2.0.642

7 months ago

2.0.641

8 months ago

2.0.640

8 months ago

2.0.636

8 months ago

2.0.635

8 months ago

2.0.634

8 months ago

2.0.633

8 months ago

2.0.632

8 months ago

2.0.631

8 months ago

2.0.637

8 months ago

2.0.629

8 months ago

2.0.628

8 months ago

2.0.627

8 months ago

2.0.626

8 months ago

2.0.630

8 months ago

2.0.625

8 months ago

2.0.624

8 months ago

2.0.623

8 months ago

2.0.619

8 months ago

2.0.618

8 months ago

2.0.622

8 months ago

2.0.621

8 months ago

2.0.620

8 months ago

2.0.614

8 months ago

2.0.613

8 months ago

2.0.612

8 months ago

2.0.611

9 months ago

2.0.610

9 months ago

2.0.617

8 months ago

2.0.616

8 months ago

2.0.615

8 months ago

2.0.609

9 months ago

2.0.608

9 months ago

2.0.607

9 months ago

2.0.606

9 months ago

2.0.605

9 months ago

2.0.604

9 months ago

2.0.603

9 months ago

2.0.602

9 months ago

2.0.601

9 months ago

2.0.600

9 months ago

2.0.599

9 months ago

2.0.598

9 months ago

2.0.597

9 months ago

2.0.596

9 months ago

2.0.595

9 months ago

2.0.594

9 months ago

2.0.593

9 months ago

2.0.592

9 months ago

2.0.591

9 months ago

2.0.590

9 months ago

2.0.589

9 months ago

2.0.588

9 months ago

2.0.587

9 months ago

2.0.586

9 months ago

2.0.585

9 months ago

2.0.584

9 months ago

2.0.583

9 months ago

2.0.579

10 months ago

2.0.582

10 months ago

2.0.581

10 months ago

2.0.580

10 months ago

2.0.578

10 months ago

2.0.577

10 months ago

2.0.576

10 months ago

2.0.575

10 months ago

2.0.574

10 months ago

2.0.573

10 months ago

2.0.572

10 months ago

2.0.571

10 months ago

2.0.570

10 months ago

2.0.569

10 months ago

2.0.568

10 months ago

2.0.567

10 months ago

2.0.566

10 months ago

2.0.565

10 months ago

2.0.564

10 months ago

2.0.563

10 months ago

2.0.562

10 months ago

2.0.561

10 months ago

2.0.560

10 months ago

2.0.559

10 months ago

2.0.558

10 months ago

2.0.557

11 months ago

2.0.556

11 months ago

2.0.555

11 months ago

2.0.554

11 months ago

2.0.553

11 months ago

2.0.552

11 months ago

2.0.551

11 months ago

2.0.550

11 months ago

2.0.548

11 months ago

2.0.547

11 months ago

2.0.549

11 months ago

2.0.546

11 months ago

2.0.545

11 months ago

2.0.544

11 months ago

2.0.543

11 months ago

2.0.542

11 months ago

2.0.541

11 months ago

2.0.537

11 months ago

2.0.536

11 months ago

2.0.535

11 months ago

2.0.539

11 months ago

2.0.538

11 months ago

2.0.540

11 months ago

2.0.529

11 months ago

2.0.528

12 months ago

2.0.534

11 months ago

2.0.533

11 months ago

2.0.532

11 months ago

2.0.531

11 months ago

2.0.530

11 months ago

2.0.527

12 months ago

2.0.526

12 months ago

2.0.525

12 months ago

2.0.524

12 months ago

2.0.523

12 months ago

2.0.522

12 months ago

2.0.521

12 months ago

2.0.519

12 months ago

2.0.520

12 months ago

2.0.518

12 months ago

2.0.515

12 months ago

2.0.514

12 months ago

2.0.513

12 months ago

2.0.512

12 months ago

2.0.517

12 months ago

2.0.516

12 months ago

2.0.511

12 months ago

2.0.509

1 year ago

2.0.510

12 months ago

2.0.508

1 year ago

2.0.507

1 year ago

2.0.506

1 year ago

2.0.505

1 year ago

2.0.504

1 year ago

2.0.503

1 year ago

2.0.502

1 year ago

2.0.501

1 year ago

2.0.500

1 year ago

2.0.499

1 year ago

2.0.498

1 year ago

2.0.497

1 year ago

2.0.496

1 year ago

2.0.495

1 year ago

2.0.494

1 year ago

2.0.493

1 year ago

2.0.492

1 year ago

2.0.491

1 year ago

2.0.490

1 year ago

2.0.489

1 year ago

2.0.488

1 year ago

2.0.487

1 year ago

2.0.486

1 year ago

2.0.485

1 year ago

2.0.484

1 year ago

2.0.483

1 year ago

2.0.482

1 year ago

2.0.479

1 year ago

2.0.481

1 year ago

2.0.480

1 year ago

2.0.478

1 year ago

2.0.477

1 year ago

2.0.476

1 year ago

2.0.475

1 year ago

2.0.474

1 year ago

2.0.473

1 year ago

2.0.472

1 year ago

2.0.471

1 year ago

2.0.470

1 year ago

2.0.469

1 year ago

2.0.468

1 year ago

2.0.467

1 year ago

2.0.466

1 year ago

2.0.465

1 year ago

2.0.464

1 year ago

2.0.463

1 year ago

2.0.462

1 year ago

2.0.461

1 year ago

2.0.459

1 year ago

2.0.458

1 year ago

2.0.460

1 year ago

2.0.457

1 year ago

2.0.456

1 year ago

2.0.455

1 year ago

2.0.454

1 year ago

2.0.453

1 year ago

2.0.452

1 year ago

2.0.451

1 year ago

2.0.450

1 year ago

2.0.449

1 year ago

2.0.448

1 year ago

2.0.447

1 year ago

2.0.446

1 year ago

2.0.445

1 year ago

2.0.444

1 year ago

2.0.443

1 year ago

2.0.442

1 year ago

2.0.441

1 year ago

2.0.440

1 year ago

2.0.439

2 years ago

2.0.438

2 years ago

2.0.437

2 years ago

2.0.436

2 years ago

2.0.435

2 years ago

2.0.434

2 years ago

2.0.433

2 years ago

2.0.432

2 years ago

2.0.431

2 years ago

2.0.430

2 years ago

2.0.429

2 years ago

2.0.427

2 years ago

2.0.426

2 years ago

2.0.428

2 years ago

2.0.425

2 years ago

2.0.424

2 years ago

2.0.423

2 years ago

2.0.422

2 years ago

2.0.421

2 years ago

2.0.420

2 years ago

2.0.419

2 years ago

2.0.418

2 years ago

2.0.417

2 years ago

2.0.416

2 years ago

2.0.415

2 years ago

2.0.414

2 years ago

2.0.413

2 years ago

2.0.412

2 years ago

2.0.411

2 years ago

2.0.410

2 years ago

2.0.409

2 years ago

2.0.408

2 years ago

2.0.407

2 years ago

2.0.406

2 years ago

2.0.405

2 years ago

2.0.404

2 years ago

2.0.403

2 years ago

2.0.402

2 years ago

2.0.401

2 years ago

2.0.400

2 years ago

2.0.399

2 years ago

2.0.398

2 years ago

2.0.397

2 years ago

2.0.396

2 years ago

2.0.395

2 years ago

2.0.394

2 years ago

2.0.393

2 years ago

2.0.392

2 years ago

2.0.391

2 years ago

2.0.390

2 years ago

2.0.389

2 years ago

2.0.388

2 years ago

2.0.387

2 years ago

2.0.386

2 years ago

2.0.385

2 years ago

2.0.384

2 years ago

2.0.383

2 years ago

2.0.382

2 years ago

2.0.381

2 years ago

2.0.380

2 years ago

2.0.379

2 years ago

2.0.378

2 years ago

2.0.377

2 years ago

2.0.376

2 years ago

2.0.375

2 years ago

2.0.374

2 years ago

2.0.373

2 years ago

2.0.372

2 years ago

2.0.371

2 years ago

2.0.370

2 years ago

2.0.369

2 years ago

2.0.368

2 years ago

2.0.367

2 years ago

2.0.366

2 years ago

2.0.365

2 years ago

2.0.364

2 years ago

2.0.363

2 years ago

2.0.362

2 years ago

2.0.361

2 years ago

2.0.359

2 years ago

2.0.360

2 years ago

2.0.358

2 years ago

2.0.357

2 years ago

2.0.356

2 years ago

2.0.355

2 years ago

2.0.354

2 years ago

2.0.353

2 years ago

2.0.352

2 years ago

2.0.351

2 years ago

2.0.350

2 years ago

2.0.349

2 years ago

2.0.348

2 years ago

2.0.347

2 years ago

2.0.346

2 years ago

2.0.345

2 years ago

2.0.344

2 years ago

2.0.343

2 years ago

2.0.342

2 years ago

2.0.341

2 years ago

2.0.340

2 years ago

2.0.339

2 years ago

2.0.338

2 years ago

2.0.337

2 years ago

2.0.336

2 years ago

2.0.335

2 years ago

2.0.334

2 years ago

2.0.333

2 years ago

2.0.332

2 years ago

2.0.331

2 years ago

2.0.330

2 years ago

2.0.329

2 years ago

2.0.328

2 years ago

2.0.327

2 years ago

2.0.326

2 years ago

2.0.325

2 years ago

2.0.324

2 years ago

2.0.323

2 years ago

2.0.322

2 years ago

2.0.321

2 years ago

2.0.320

2 years ago

2.0.319

2 years ago

2.0.318

2 years ago

2.0.306

2 years ago

2.0.305

2 years ago

2.0.304

2 years ago

2.0.303

2 years ago

2.0.302

2 years ago

2.0.301

2 years ago

2.0.300

2 years ago

2.0.290

2 years ago

2.0.299

2 years ago

2.0.298

2 years ago

2.0.297

2 years ago

2.0.296

2 years ago

2.0.295

2 years ago

2.0.294

2 years ago

2.0.293

2 years ago

2.0.292

2 years ago

2.0.291

2 years ago

2.0.279

2 years ago

2.0.278

2 years ago

2.0.277

2 years ago

2.0.276

2 years ago

2.0.275

2 years ago

2.0.274

2 years ago

2.0.273

2 years ago

2.0.272

2 years ago

2.0.271

2 years ago

2.0.270

2 years ago

2.0.289

2 years ago

2.0.288

2 years ago

2.0.287

2 years ago

2.0.286

2 years ago

2.0.285

2 years ago

2.0.284

2 years ago

2.0.283

2 years ago

2.0.282

2 years ago

2.0.281

2 years ago

2.0.280

2 years ago

2.0.259

2 years ago

2.0.258

2 years ago

2.0.257

2 years ago

2.0.256

2 years ago

2.0.255

2 years ago

2.0.254

2 years ago

2.0.253

2 years ago

2.0.251

2 years ago

2.0.250

2 years ago

2.0.269

2 years ago

2.0.268

2 years ago

2.0.267

2 years ago

2.0.266

2 years ago

2.0.265

2 years ago

2.0.264

2 years ago

2.0.263

2 years ago

2.0.262

2 years ago

2.0.261

2 years ago

2.0.260

2 years ago

2.0.239

2 years ago

2.0.238

2 years ago

2.0.237

2 years ago

2.0.236

2 years ago

2.0.235

2 years ago

2.0.234

2 years ago

2.0.233

2 years ago

2.0.232

2 years ago

2.0.231

2 years ago

2.0.230

2 years ago

2.0.249

2 years ago

2.0.248

2 years ago

2.0.247

2 years ago

2.0.246

2 years ago

2.0.245

2 years ago

2.0.244

2 years ago

2.0.243

2 years ago

2.0.242

2 years ago

2.0.241

2 years ago

2.0.240

2 years ago

2.0.209

2 years ago

2.0.208

2 years ago

2.0.218

2 years ago

2.0.217

2 years ago

2.0.216

2 years ago

2.0.215

2 years ago

2.0.214

2 years ago

2.0.213

2 years ago

2.0.212

2 years ago

2.0.211

2 years ago

2.0.210

2 years ago

2.0.219

2 years ago

2.0.229

2 years ago

2.0.228

2 years ago

2.0.227

2 years ago

2.0.226

2 years ago

2.0.225

2 years ago

2.0.224

2 years ago

2.0.223

2 years ago

2.0.222

2 years ago

2.0.221

2 years ago

2.0.220

2 years ago

2.0.309

2 years ago

2.0.308

2 years ago

2.0.307

2 years ago

2.0.317

2 years ago

2.0.316

2 years ago

2.0.315

2 years ago

2.0.314

2 years ago

2.0.313

2 years ago

2.0.312

2 years ago

2.0.311

2 years ago

2.0.310

2 years ago

2.0.207

2 years ago

2.0.206

2 years ago

2.0.205

2 years ago

2.0.204

2 years ago

2.0.203

2 years ago

2.0.202

2 years ago

2.0.201

2 years ago

2.0.200

2 years ago

2.0.199

2 years ago

2.0.198

2 years ago

2.0.197

2 years ago

2.0.196

2 years ago

2.0.195

2 years ago

2.0.194

2 years ago

2.0.193

2 years ago

2.0.192

2 years ago

2.0.191

2 years ago

2.0.190

2 years ago

2.0.179

2 years ago

2.0.178

2 years ago

2.0.180

2 years ago

2.0.189

2 years ago

2.0.188

2 years ago

2.0.187

2 years ago

2.0.186

2 years ago

2.0.185

2 years ago

2.0.184

2 years ago

2.0.183

2 years ago

2.0.182

2 years ago

2.0.181

2 years ago

2.0.177

2 years ago

2.0.176

2 years ago

2.0.175

2 years ago

2.0.174

2 years ago

2.0.173

2 years ago

2.0.172

2 years ago

2.0.171

2 years ago

2.0.170

2 years ago

2.0.159

2 years ago

2.0.158

2 years ago

2.0.157

2 years ago

2.0.156

2 years ago

2.0.155

2 years ago

2.0.154

2 years ago

2.0.153

2 years ago

2.0.152

2 years ago

2.0.169

2 years ago

2.0.168

2 years ago

2.0.167

2 years ago

2.0.166

2 years ago

2.0.165

2 years ago

2.0.164

2 years ago

2.0.163

2 years ago

2.0.162

2 years ago

2.0.161

2 years ago

2.0.160

2 years ago

2.0.139

2 years ago

2.0.138

2 years ago

2.0.137

2 years ago

2.0.136

2 years ago

2.0.135

2 years ago

2.0.134

3 years ago

2.0.133

3 years ago

2.0.132

3 years ago

2.0.131

3 years ago

2.0.130

3 years ago

2.0.149

2 years ago

2.0.148

2 years ago

2.0.147

2 years ago

2.0.146

2 years ago

2.0.145

2 years ago

2.0.144

2 years ago

2.0.143

2 years ago

2.0.142

2 years ago

2.0.141

2 years ago

2.0.140

2 years ago

2.0.129

3 years ago

2.0.128

3 years ago

2.0.127

3 years ago

2.0.126

3 years ago

2.0.125

3 years ago

2.0.124

3 years ago

2.0.151

2 years ago

2.0.150

2 years ago

2.0.119

3 years ago

2.0.118

3 years ago

2.0.117

3 years ago

2.0.116

3 years ago

2.0.115

3 years ago

2.0.114

3 years ago

2.0.113

3 years ago

2.0.112

3 years ago

2.0.111

3 years ago

2.0.110

3 years ago

2.0.123

3 years ago

2.0.122

3 years ago

2.0.121

3 years ago

2.0.120

3 years ago

2.0.109

3 years ago

2.0.108

3 years ago

2.0.107

3 years ago

2.0.106

3 years ago

2.0.105

3 years ago

2.0.104

3 years ago

2.0.88

3 years ago

2.0.103

3 years ago

2.0.89

3 years ago

2.0.102

3 years ago

2.0.86

3 years ago

2.0.101

3 years ago

2.0.87

3 years ago

2.0.100

3 years ago

2.0.99

3 years ago

2.0.97

3 years ago

2.0.98

3 years ago

2.0.95

3 years ago

2.0.96

3 years ago

2.0.93

3 years ago

2.0.94

3 years ago

2.0.91

3 years ago

2.0.92

3 years ago

2.0.90

3 years ago

2.0.28

3 years ago

2.0.29

3 years ago

2.0.37

3 years ago

2.0.38

3 years ago

2.0.35

3 years ago

2.0.36

3 years ago

2.0.33

3 years ago

2.0.7

3 years ago

2.0.34

3 years ago

2.0.6

3 years ago

2.0.31

3 years ago

2.0.9

3 years ago

2.0.32

3 years ago

2.0.8

3 years ago

2.0.30

3 years ago

2.0.39

3 years ago

2.0.48

3 years ago

2.0.49

3 years ago

2.0.46

3 years ago

2.0.47

3 years ago

2.0.44

3 years ago

2.0.45

3 years ago

2.0.42

3 years ago

2.0.43

3 years ago

2.0.40

3 years ago

2.0.41

3 years ago

2.0.59

3 years ago

2.0.57

3 years ago

2.0.58

3 years ago

2.0.55

3 years ago

2.0.56

3 years ago

2.0.53

3 years ago

2.0.54

3 years ago

2.0.51

3 years ago

2.0.52

3 years ago

2.0.50

3 years ago

2.0.68

3 years ago

2.0.69

3 years ago

2.0.66

3 years ago

2.0.67

3 years ago

2.0.64

3 years ago

2.0.65

3 years ago

2.0.62

3 years ago

2.0.63

3 years ago

2.0.60

3 years ago

2.0.61

3 years ago

2.0.79

3 years ago

2.0.77

3 years ago

2.0.78

3 years ago

2.0.75

3 years ago

2.0.76

3 years ago

2.0.73

3 years ago

2.0.74

3 years ago

2.0.71

3 years ago

2.0.72

3 years ago

2.0.70

3 years ago

2.0.84

3 years ago

2.0.85

3 years ago

2.0.82

3 years ago

2.0.83

3 years ago

2.0.80

3 years ago

2.0.81

3 years ago

2.0.15

3 years ago

2.0.16

3 years ago

2.0.13

3 years ago

2.0.14

3 years ago

2.0.11

3 years ago

2.0.12

3 years ago

2.0.10

3 years ago

2.0.19

3 years ago

2.0.17

3 years ago

2.0.18

3 years ago

2.0.26

3 years ago

2.0.27

3 years ago

2.0.24

3 years ago

2.0.25

3 years ago

2.0.22

3 years ago

2.0.23

3 years ago

2.0.20

3 years ago

2.0.21

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

0.1.37

4 years ago

0.1.38

4 years ago

0.1.36

4 years ago

0.1.35

4 years ago

0.1.34

4 years ago

0.1.32

4 years ago

0.1.33

4 years ago

0.1.31

4 years ago

0.1.30

4 years ago

0.1.29

4 years ago

0.1.27

4 years ago

0.1.28

4 years ago

0.1.26

4 years ago

0.1.23

4 years ago

0.1.24

4 years ago

0.1.25

4 years ago

0.1.21

4 years ago

0.1.22

4 years ago

0.1.20

4 years ago

0.1.17

4 years ago

0.1.18

4 years ago

0.1.19

4 years ago

0.1.10

4 years ago

0.1.11

4 years ago

0.1.12

4 years ago

0.1.13

4 years ago

0.1.14

4 years ago

0.1.15

4 years ago

0.1.16

4 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago