NJsonSchema 11.6.1

NJsonSchema for .NET

NSwag | NJsonSchema | Apimundo | Namotion.Reflection

Azure DevOps Nuget Discord StackOverflow Wiki Apimundo

NJsonSchema is a .NET library to read, generate and validate JSON Schema draft v4+ schemas. The library can read a schema from a file or string and validate JSON data against it. A schema can also be generated from an existing .NET class. With the code generation APIs you can generate C# and TypeScript classes or interfaces from a schema.

The library uses Json.NET to read and write JSON data and Namotion.Reflection for additional .NET reflection APIs.

NuGet packages:

Preview NuGet Feed: https://www.myget.org/F/njsonschema/api/v3/index.json

Features:

NJsonSchema is heavily used in NSwag, a Swagger API toolchain for .NET which generates client code for Web API services. NSwag also provides command line tools to use the NJsonSchema's JSON Schema generator (command types2swagger).

The project is developed and maintained by Rico Suter and other contributors.

Some code generators can directly be used via the Apimundo service.

NJsonSchema usage

The JsonSchema class can be used as follows:

var schema = JsonSchema.FromType<Person>();
var schemaData = schema.ToJson();
var errors = schema.Validate("{...}");

foreach (var error in errors)
    Console.WriteLine(error.Path + ": " + error.Kind);

schema = await JsonSchema.FromJsonAsync(schemaData);

The Person class:

public class Person
{
    [Required]
    public string FirstName { get; set; }

    public string MiddleName { get; set; }

    [Required]
    public string LastName { get; set; }

    public Gender Gender { get; set; }

    [Range(2, 5)]
    public int NumberWithRange { get; set; }

    public DateTime Birthday { get; set; }

    public Company Company { get; set; }

    public Collection<Car> Cars { get; set; }
}

public enum Gender
{
    Male,
    Female
}

public class Car
{
    public string Name { get; set; }

    public Company Manufacturer { get; set; }
}

public class Company
{
    public string Name { get; set; }
}

The generated JSON schema data stored in the schemaData variable:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Person",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "FirstName",
    "LastName"
  ],
  "properties": {
    "FirstName": {
      "type": "string",
      "minLength": 1
    },
    "MiddleName": {
      "type": [
        "null",
        "string"
      ]
    },
    "LastName": {
      "type": "string",
      "minLength": 1
    },
    "Gender": {
      "$ref": "#/definitions/Gender"
    },
    "NumberWithRange": {
      "type": "integer",
      "format": "int32",
      "maximum": 5.0,
      "minimum": 2.0
    },
    "Birthday": {
      "type": "string",
      "format": "date-time"
    },
    "Company": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/Company"
        }
      ]
    },
    "Cars": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/Car"
      }
    }
  },
  "definitions": {
    "Gender": {
      "type": "integer",
      "description": "",
      "x-enumNames": [
        "Male",
        "Female"
      ],
      "enum": [
        0,
        1
      ]
    },
    "Company": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    },
    "Car": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        },
        "Manufacturer": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/Company"
            }
          ]
        }
      }
    }
  }
}

NJsonSchema.CodeGeneration usage

The NJsonSchema.CodeGeneration can be used to generate C# or TypeScript code from a JSON schema:

var generator = new CSharpGenerator(schema);
var file = generator.GenerateFile();

The file variable now contains the C# code for all the classes defined in the JSON schema.

TypeScript

The previously generated JSON Schema would generate the following TypeScript interfaces.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export interface Company {
    Name: string | undefined;
}

export interface Car {
    Name: string | undefined;
    Manufacturer: Company | undefined;
}

export interface Person {
    FirstName: string;
    MiddleName: string | undefined;
    LastName: string;
    Gender: Gender;
    NumberWithRange: number;
    Birthday: Date;
    Company: Company | undefined;
    Cars: Car[] | undefined;
}

... and the following TypeScript classes.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export class Company implements ICompany {
    name: string | undefined;

    constructor(data?: ICompany) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
        }
    }

    static fromJS(data: any): Company {
        let result = new Company();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        return data; 
    }
}

export interface ICompany {
    name: string | undefined;
}

export class Car implements ICar {
    name: string | undefined;
    manufacturer: Company | undefined;

    constructor(data?: ICar) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
            this.manufacturer = data["Manufacturer"] ? Company.fromJS(data["Manufacturer"]) : <any>undefined;
        }
    }

    static fromJS(data: any): Car {
        let result = new Car();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        data["Manufacturer"] = this.manufacturer ? this.manufacturer.toJSON() : <any>undefined;
        return data; 
    }
}

export interface ICar {
    name: string | undefined;
    manufacturer: Company | undefined;
}

export class Person implements IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;

    constructor(data?: IPerson) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.firstName = data["FirstName"];
            this.middleName = data["MiddleName"];
            this.lastName = data["LastName"];
            this.gender = data["Gender"];
            this.numberWithRange = data["NumberWithRange"];
            this.birthday = data["Birthday"] ? new Date(data["Birthday"].toString()) : <any>undefined;
            this.company = data["Company"] ? Company.fromJS(data["Company"]) : <any>undefined;
            if (data["Cars"] && data["Cars"].constructor === Array) {
                this.cars = [];
                for (let item of data["Cars"])
                    this.cars.push(Car.fromJS(item));
            }
        }
    }

    static fromJS(data: any): Person {
        let result = new Person();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["FirstName"] = this.firstName;
        data["MiddleName"] = this.middleName;
        data["LastName"] = this.lastName;
        data["Gender"] = this.gender;
        data["NumberWithRange"] = this.numberWithRange;
        data["Birthday"] = this.birthday ? this.birthday.toISOString() : <any>undefined;
        data["Company"] = this.company ? this.company.toJSON() : <any>undefined;
        if (this.cars && this.cars.constructor === Array) {
            data["Cars"] = [];
            for (let item of this.cars)
                data["Cars"].push(item.toJSON());
        }
        return data; 
    }
}

export interface IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;
}

NJsonSchema.SampleJsonSchemaGenerator usage

The NJsonSchema.SampleJsonSchemaGenerator can be used to generate a JSON Schema from sample JSON data:

JSON Schema Specification

By default, the NJsonSchema.SampleJsonSchemaGenerator generates a JSON Schema based on the JSON Schema specification. See: JSON Schema Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings());

var schema = generator.Generate("{...}");

Input:

{
  "int": 1,
  "float": 340282346638528859811704183484516925440.0,
  "str": "abc",
  "bool": true,
  "date": "2012-07-19",
  "datetime": "2012-07-19 10:11:11",
  "timespan": "10:11:11"
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer"
    },
    "float": {
      "type": "number"
    },
    "str": {
      "type": "string"
    },
    "bool": {
      "type": "boolean"
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "datetime": {
      "type": "string",
      "format": "date-time"
    },
    "timespan": {
      "type": "string",
      "format": "duration"
    }
  }
}

OpenApi Specification

To generate a JSON Schema for OpenApi, provide the SchemaType.OpenApi3 in the settings. See: OpenApi Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings { SchemaType = SchemaType.OpenApi3 });

var schema = generator.Generate("{...}");

Input:

{
  "int": 12345,
  "long": 1736347656630,
  "float": 340282346638528859811704183484516925440.0,
  "double": 340282346638528859811704183484516925440123456.0,
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer",
      "format": "int32"
    },
    "long": {
      "type": "integer",
      "format": "int64"
    },
    "float": {
      "type": "number",
      "format": "float"
    },
    "double": {
      "type": "number",
      "format": "double"
    }
  }
}

Final notes

Applications which use the library:

Showing the top 20 packages that depend on NJsonSchema.

Packages Downloads
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
12
NSwag.SwaggerGeneration.AspNetCore
NSwag: The Swagger API toolchain for .NET and TypeScript
12
NSwag.Generation.WebApi
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
12
NSwag.SwaggerGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
12
NSwag.AssemblyLoader
NSwag: The Swagger API toolchain for .NET and TypeScript
12
NSwag.Commands
NSwag: The Swagger API toolchain for .NET and TypeScript
12

.NET Framework 4.6.2

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
11.6.1 9 04/27/2026
11.6.0 10 04/08/2026
11.5.2 10 03/26/2026
11.5.1 10 03/26/2026
11.5.0 10 03/26/2026
11.4.0 10 03/26/2026
11.3.2 10 03/26/2026
11.3.1 11 03/26/2026
11.3.0 10 03/26/2026
11.2.0 10 03/26/2026
11.1.0 10 03/26/2026
11.0.2 10 03/26/2026
11.0.1 10 03/26/2026
11.0.0 10 03/26/2026
11.0.0-preview008 0 12/08/2023
11.0.0-preview007 0 12/08/2023
11.0.0-preview006 0 10/31/2023
11.0.0-preview005 0 10/30/2023
11.0.0-preview004 0 10/16/2023
11.0.0-preview003 1 09/01/2026
11.0.0-preview002 0 09/26/2023
11.0.0-preview001 1 09/01/2026
10.9.0 10 03/26/2026
10.8.0 10 03/26/2026
10.7.2 10 03/26/2026
10.7.1 10 03/26/2026
10.7.0 10 03/26/2026
10.6.10 11 03/26/2026
10.6.9 11 03/26/2026
10.6.8 10 03/26/2026
10.6.7 10 03/26/2026
10.6.6 10 03/26/2026
10.6.5 10 03/26/2026
10.6.4 10 03/26/2026
10.6.3 10 03/26/2026
10.6.2 10 03/26/2026
10.6.1 10 03/26/2026
10.6.0 10 03/26/2026
10.5.2 10 03/26/2026
10.5.1 11 03/26/2026
10.5.0 10 03/26/2026
10.4.6 10 03/26/2026
10.4.5 10 03/26/2026
10.4.4 10 03/26/2026
10.4.3 10 03/26/2026
10.4.2 10 03/26/2026
10.4.1 10 03/26/2026
10.4.0 10 03/26/2026
10.3.11 11 03/26/2026
10.3.10 11 03/26/2026
10.3.9 10 03/26/2026
10.3.8 10 03/26/2026
10.3.7 10 03/26/2026
10.3.6 10 03/26/2026
10.3.5 10 03/26/2026
10.3.4 10 03/26/2026
10.3.3 10 03/26/2026
10.3.2 10 03/26/2026
10.3.1 10 03/26/2026
10.3.0 10 03/26/2026
10.2.2 10 03/26/2026
10.2.1 10 03/26/2026
10.2.0 10 03/26/2026
10.1.26 10 03/26/2026
10.1.25 11 03/26/2026
10.1.24 11 03/26/2026
10.1.23 10 03/26/2026
10.1.22 11 03/26/2026
10.1.21 11 03/26/2026
10.1.20 11 03/26/2026
10.1.19 11 03/26/2026
10.1.18 11 03/26/2026
10.1.17 11 03/26/2026
10.1.16 11 03/26/2026
10.1.15 11 03/26/2026
10.1.14 11 03/26/2026
10.1.13 11 03/26/2026
10.1.12 11 03/26/2026
10.1.11 11 03/26/2026
10.1.10 11 03/26/2026
10.1.9 10 03/26/2026
10.1.8 10 03/26/2026
10.1.7 10 03/26/2026
10.1.6 10 03/26/2026
10.1.5 10 03/26/2026
10.1.4 10 03/26/2026
10.1.3 10 03/26/2026
10.1.2 10 03/26/2026
10.1.1 10 03/26/2026
10.1.0 10 03/26/2026
10.0.28 10 03/26/2026
10.0.27 9 03/26/2026
10.0.26 10 03/26/2026
10.0.25 10 03/26/2026
10.0.24 10 03/26/2026
10.0.23 10 03/26/2026
10.0.22 11 03/26/2026
10.0.21 11 03/26/2026
10.0.20 11 03/26/2026
10.0.19 11 03/26/2026
10.0.18 11 03/26/2026
10.0.17 11 03/26/2026
10.0.16 11 03/26/2026
10.0.15 11 03/26/2026
10.0.14 11 03/26/2026
10.0.13 11 03/26/2026
10.0.12 11 03/26/2026
10.0.11 11 03/26/2026
10.0.10 11 03/26/2026
10.0.9 10 03/26/2026
10.0.8 10 03/26/2026
10.0.7 10 03/26/2026
10.0.6 10 03/26/2026
10.0.5 10 03/26/2026
10.0.4 10 03/26/2026
10.0.3 10 03/26/2026
10.0.1 10 03/26/2026
10.0.0 11 03/26/2026
9.14.1 10 03/26/2026
9.14.0 10 03/26/2026
9.13.37 10 03/26/2026
9.13.36 10 03/26/2026
9.13.35 10 03/26/2026
9.13.34 10 03/26/2026
9.13.33 11 03/26/2026
9.13.32 10 03/26/2026
9.13.31 11 03/26/2026
9.13.30 10 03/26/2026
9.13.29 10 03/26/2026
9.13.28 9 03/26/2026
9.13.27 10 03/26/2026
9.13.26 10 03/26/2026
9.13.25 10 03/26/2026
9.13.24 10 03/26/2026
9.13.23 10 03/26/2026
9.13.22 10 03/26/2026
9.13.19 11 03/26/2026
9.13.18 10 03/26/2026
9.13.17 10 03/26/2026
9.13.16 10 03/26/2026
9.13.15 10 03/26/2026
9.13.14 10 03/26/2026
9.13.13 10 03/26/2026
9.13.12 10 03/26/2026
9.13.11 11 03/26/2026
9.13.10 10 03/26/2026
9.13.9 10 03/26/2026
9.13.8 10 03/26/2026
9.13.7 10 03/26/2026
9.13.5 10 03/26/2026
9.13.4 10 03/26/2026
9.13.3 10 03/26/2026
9.13.2 10 03/26/2026
9.13.1 10 03/26/2026
9.13.0 10 03/26/2026
9.12.7 10 03/26/2026
9.12.6 10 03/26/2026
9.12.5 10 03/26/2026
9.12.4 10 03/26/2026
9.12.3 10 03/26/2026
9.12.2 10 03/26/2026
9.12.1 10 03/26/2026
9.12.0 10 03/26/2026
9.11.1 10 03/26/2026
9.11.0 10 03/26/2026
9.10.75 11 03/26/2026
9.10.74 11 03/26/2026
9.10.73 10 03/26/2026
9.10.72 11 03/26/2026
9.10.71 10 03/26/2026
9.10.70 10 03/26/2026
9.10.69 10 03/26/2026
9.10.68 11 03/26/2026
9.10.67 11 03/26/2026
9.10.66 10 03/26/2026
9.10.65 12 03/26/2026
9.10.64 11 03/26/2026
9.10.63 10 03/26/2026
9.10.62 11 03/26/2026
9.10.61 10 03/26/2026
9.10.60 10 03/26/2026
9.10.59 10 03/26/2026
9.10.58 11 03/26/2026
9.10.57 11 03/26/2026
9.10.56 11 03/26/2026
9.10.55 10 03/26/2026
9.10.54 11 03/26/2026
9.10.53 10 03/26/2026
9.10.52 11 03/26/2026
9.10.51 10 03/26/2026
9.10.50 10 03/26/2026
9.10.49 10 03/26/2026
9.10.48 11 03/26/2026
9.10.47 11 03/26/2026
9.10.46 11 03/26/2026
9.10.45 11 03/26/2026
9.10.44 10 03/26/2026
9.10.43 10 03/26/2026
9.10.42 11 03/26/2026
9.10.41 10 03/26/2026
9.10.40 10 03/26/2026
9.10.39 10 03/26/2026
9.10.38 10 03/26/2026
9.10.37 10 03/26/2026
9.10.36 10 03/26/2026
9.10.35 10 03/26/2026
9.10.34 10 03/26/2026
9.10.33 10 03/26/2026
9.10.32 10 03/26/2026
9.10.31 10 03/26/2026
9.10.30 10 03/26/2026
9.10.29 10 03/26/2026
9.10.28 11 03/26/2026
9.10.27 11 03/26/2026
9.10.26 11 03/26/2026
9.10.25 11 03/26/2026
9.10.24 11 03/26/2026
9.10.23 10 03/26/2026
9.10.22 10 03/26/2026
9.10.21 10 03/26/2026
9.10.20 10 03/26/2026
9.10.19 11 03/26/2026
9.10.18 10 03/26/2026
9.10.17 10 03/26/2026
9.10.16 10 03/26/2026
9.10.15 10 03/26/2026
9.10.14 10 03/26/2026
9.10.13 10 03/26/2026
9.10.12 10 03/26/2026
9.10.11 11 03/26/2026
9.10.10 10 03/26/2026
9.10.9 10 03/26/2026
9.10.8 10 03/26/2026
9.10.7 10 03/26/2026
9.10.6 10 03/26/2026
9.10.5 10 03/26/2026
9.10.4 10 03/26/2026
9.10.3 10 03/26/2026
9.10.2 10 03/26/2026
9.10.1 10 03/26/2026
9.10.0 9 03/26/2026
9.9.17 10 03/26/2026
9.9.16 10 03/26/2026
9.9.15 10 03/26/2026
9.9.14 10 03/26/2026
9.9.13 10 03/26/2026
9.9.12 10 03/26/2026
9.9.11 10 03/26/2026
9.9.10 10 03/26/2026
9.9.9 10 03/26/2026
9.9.8 11 03/26/2026
9.9.7 11 03/26/2026
9.9.6 11 03/26/2026
9.9.5 11 03/26/2026
9.9.4 11 03/26/2026
9.9.3 10 03/26/2026
9.9.2 11 03/26/2026
9.9.1 11 03/26/2026
9.9.0 11 03/26/2026
9.8.3 11 03/26/2026
9.8.2 11 03/26/2026
9.8.1 11 03/26/2026
9.8.0 11 03/26/2026
9.7.7 11 03/26/2026
9.7.6 11 03/26/2026
9.7.5 11 03/26/2026
9.7.3 11 03/26/2026
9.7.2 11 03/26/2026
9.7.1 11 03/26/2026
9.7.0 11 03/26/2026
9.6.5 11 03/26/2026
9.6.4 11 03/26/2026
9.6.3 11 03/26/2026
9.6.2 11 03/26/2026
9.6.1 11 03/26/2026
9.6.0 11 03/26/2026
9.5.4 11 03/26/2026
9.5.3 11 03/26/2026
9.5.2 11 03/26/2026
9.5.1 11 03/26/2026
9.5.0 11 03/26/2026
9.4.10 10 03/26/2026
9.4.9 11 03/26/2026
9.4.8 11 03/26/2026
9.4.7 11 03/26/2026
9.4.6 11 03/26/2026
9.4.5 11 03/26/2026
9.4.4 11 03/26/2026
9.4.3 11 03/26/2026
9.4.2 11 03/26/2026
9.4.1 11 03/26/2026
9.4.0 11 03/26/2026
9.3.2 11 03/26/2026
9.3.1 11 03/26/2026
9.3.0 11 03/26/2026
9.2.5 11 03/26/2026
9.2.4 11 03/26/2026
9.2.3 11 03/26/2026
9.2.2 11 03/26/2026
9.2.1 11 03/26/2026
9.2.0 11 03/26/2026
9.1.13 10 03/26/2026
9.1.12 10 03/26/2026
9.1.11 10 03/26/2026
9.1.10 11 03/26/2026
9.1.9 11 03/26/2026
9.1.8 11 03/26/2026
9.1.7 11 03/26/2026
9.1.6 11 03/26/2026
9.1.5 11 03/26/2026
9.1.4 11 03/26/2026
9.1.3 11 03/26/2026
9.1.2 11 03/26/2026
9.1.1 11 03/26/2026
9.1.0 11 03/26/2026
9.0.0 11 03/26/2026
8.34.6331.29178 9 03/26/2026
8.33.6323.36213 11 03/26/2026
8.32.6319.16936 9 03/26/2026
8.31.6318.20479 11 03/26/2026
8.30.6304.31883 11 03/26/2026
8.29.6304.29574 11 03/26/2026
8.28.6304.29303 10 03/26/2026
8.27.6302.16041 9 03/26/2026
8.26.6300.23786 10 03/26/2026
8.25.6298.25721 11 03/26/2026
8.24.6298.12169 10 03/26/2026
8.23.6298.10815 10 03/26/2026
8.22.6296.25100 10 03/26/2026
8.21.6296.23959 10 03/26/2026
8.20.6296.23138 9 03/26/2026
8.19.6295.40470 11 03/26/2026
8.18.6295.39644 10 03/26/2026
8.17.6295.16496 10 03/26/2026
8.16.6295.13527 9 03/26/2026
8.15.6294.28815 9 03/26/2026
8.14.6289.34345 9 03/26/2026
8.13.6288.31182 11 03/26/2026
8.12.6288.29353 10 03/26/2026
8.11.6284.26855 10 03/26/2026
8.10.6282.29572 9 03/26/2026
8.9.6275.22295 10 03/26/2026
8.8.6270.12833 11 03/26/2026
8.7.6267.38130 11 03/26/2026
8.6.6263.34621 11 03/26/2026
8.5.6255.20253 11 03/26/2026
8.4.6254.24648 11 03/26/2026
8.3.6252.27806 11 03/26/2026
8.2.6249.40688 11 03/26/2026
8.1.6249.15627 11 03/26/2026
8.0.6242.20238 11 03/26/2026
7.10.6235.25398 11 03/26/2026
7.9.6234.40167 11 03/26/2026
7.8.6234.39143 10 03/26/2026
7.7.6231.35489 9 03/26/2026
7.6.6221.22528 11 03/26/2026
7.5.6218.39574 9 03/26/2026
7.4.6218.34172 11 03/26/2026
7.3.6214.20986 10 03/26/2026
7.2.6206.27034 11 03/26/2026
7.1.6203.28289 11 03/26/2026
7.0.6201.32793 11 03/26/2026
6.8.6197.43075 9 03/26/2026
6.7.6197.28471 11 03/26/2026
6.6.6192.39835 11 03/26/2026
6.5.6190.16910 11 03/26/2026
6.4.6189.32875 10 03/26/2026
6.3.6185.19861 11 03/26/2026
6.2.6179.20107 11 03/26/2026
6.1.6179.17509 11 03/26/2026
6.0.6178.42031 11 03/26/2026
5.20.6175.31167 10 03/26/2026
5.19.6171.28316 10 03/26/2026
5.18.6170.22062 10 03/26/2026
5.17.6169.42629 10 03/26/2026
5.16.6156.29215 11 03/26/2026
5.15.6154.34583 10 03/26/2026
5.14.6153.20987 11 03/26/2026
5.13.6150.21322 9 03/26/2026
5.12.6149.949 10 03/26/2026
5.11.6148.42451 11 03/26/2026
5.10.6148.26188 9 03/26/2026
5.9.6144.17989 11 03/26/2026
5.8.6143.37541 11 03/26/2026
5.7.6142.39228 11 03/26/2026
5.6.6142.18206 10 03/26/2026
5.5.6138.25614 11 03/26/2026
5.5.6138.25231 11 03/26/2026
5.4.6138.25088 11 03/26/2026
5.4.6138.24413 11 03/26/2026
5.3.6137.40406 11 03/26/2026
5.2.6135.25892 11 03/26/2026
5.1.6130.30069 11 03/26/2026
5.0.6130.17623 11 03/26/2026
4.28.6128.27588 11 03/26/2026
4.27.6128.21479 10 03/26/2026
4.26.6123.28532 10 03/26/2026
4.25.6122.24179 10 03/26/2026
4.24.6122.15983 9 03/26/2026
4.23.6120.19206 9 03/26/2026
4.22.6120.18407 10 03/26/2026
4.21.6119.18328 10 03/26/2026
4.20.6119.18035 10 03/26/2026
4.19.6118.22551 10 03/26/2026
4.18.6117.31903 9 03/26/2026
4.17.6115.27875 9 03/26/2026
4.16.6115.26709 9 03/26/2026
4.15.6113.36675 9 03/26/2026
4.14.6108.28115 10 03/26/2026
4.13.6107.31015 10 03/26/2026
4.12.6103.41721 9 03/26/2026
4.11.6103.32935 10 03/26/2026
4.10.6103.22760 9 03/26/2026
4.9.6102.40549 11 03/26/2026
4.8.6094.34027 11 03/26/2026
4.7.6093.32380 10 03/26/2026
4.6.6093.13919 12 03/26/2026
4.5.6091.37159 11 03/26/2026
4.4.6091.25564 11 03/26/2026
4.3.6089.14049 11 03/26/2026
4.2.6085.38782 11 03/26/2026
4.1.6075.30950 11 03/26/2026
4.0.6074.30968 11 03/26/2026
3.4.6065.33501 11 03/26/2026
3.3.6061.16591 11 03/26/2026
3.2.6060.41150 11 03/26/2026
3.1.6058.33392 11 03/26/2026
3.0.6058.19297 9 03/26/2026
2.65.6055.39156 9 03/26/2026
2.64.6055.38772 11 03/26/2026
2.62.6049.40362 11 03/26/2026
2.61.6047.40644 10 03/26/2026
2.60.6043.38307 11 03/26/2026
2.59.6040.32732 9 03/26/2026
2.58.6038.30299 9 03/26/2026
2.57.6037.28393 10 03/26/2026
2.56.6036.39820 9 03/26/2026
2.55.6036.31332 9 03/26/2026
2.54.6032.25763 9 03/26/2026
2.53.6030.34284 9 03/26/2026
2.52.6030.13790 9 03/26/2026
2.51.6022.22786 10 03/26/2026
2.50.6019.27727 9 03/26/2026
2.49.6019.25463 10 03/26/2026
2.48.6012.40848 11 03/26/2026
2.47.6012.36609 9 03/26/2026
2.46.6012.18623 9 03/26/2026
2.45.6011.39984 11 03/26/2026
2.44.6011.37467 10 03/26/2026
2.43.6010.35600 10 03/26/2026
2.41.6006.20160 11 03/26/2026
2.40.6005.16496 9 03/26/2026
2.39.6004.37509 9 03/26/2026
2.38.6002.31137 11 03/26/2026
2.37.6002.13677 10 03/26/2026
2.36.6001.31066 11 03/26/2026
2.35.6000.32415 11 03/26/2026
2.34.6000.31959 11 03/26/2026
2.33.6000.30327 9 03/26/2026
2.32.6000.24907 11 03/26/2026
2.31.5998.34796 9 03/26/2026
2.30.5998.28512 10 03/26/2026
2.29.5997.39527 11 03/26/2026
2.28.5997.37671 9 03/26/2026
2.27.5995.31644 10 03/26/2026
2.26.5992.40823 10 03/26/2026
2.25.5989.40403 10 03/26/2026
2.24.5988.28092 11 03/26/2026
2.23.5984.32960 10 03/26/2026
2.22.5984.16716 9 03/26/2026
2.21.5981.35957 10 03/26/2026
2.20.5981.32981 11 03/26/2026
2.19.5978.21534 9 03/26/2026
2.18.5976.28450 11 03/26/2026
2.17.5976.27663 9 03/26/2026
2.16.5975.38441 11 03/26/2026
2.15.5970.28125 10 03/26/2026
2.14.5967.31319 11 03/26/2026
2.13.5966.35759 10 03/26/2026
2.12.5965.33914 10 03/26/2026
2.11.5963.474 11 03/26/2026
2.10.5958.25556 11 03/26/2026
2.9.5956.34078 9 03/26/2026
2.8.5956.13680 11 03/26/2026
2.7.5954.13235 11 03/26/2026
2.6.5946.13963 11 03/26/2026
2.5.5941.14558 11 03/26/2026
2.4.5940.38662 11 03/26/2026
2.3.5940.24969 11 03/26/2026
2.2.5940.22487 11 03/26/2026
2.1.5940.20329 11 03/26/2026
2.0.5928.2914 9 03/26/2026
1.39.5923.31343 11 03/26/2026
1.38.5920.30379 9 03/26/2026
1.37.5912.16399 9 03/26/2026
1.36.5908.3838 11 03/26/2026
1.35.5908.509 9 03/26/2026
1.34.5905.41329 9 03/26/2026
1.32.5904.40563 9 03/26/2026
1.31.5892.26482 10 03/26/2026
1.30.5878.31384 9 03/26/2026
1.29.5875.38535 9 03/26/2026
1.29.5875.38248 10 03/26/2026
1.29.5875.36302 11 03/26/2026
1.28.5872.19133 10 03/26/2026
1.27.5865.35296 10 03/26/2026
1.26.5864.35160 9 03/26/2026
1.25.5861.38102 10 03/26/2026
1.24.5858.29180 10 03/26/2026
1.23.5856.30577 10 03/26/2026
1.22.5836.1197 10 03/26/2026
1.21.5834.30412 9 03/26/2026
1.21.5831.34290 9 03/26/2026
1.21.5830.29524 10 03/26/2026
1.20.5829.20854 11 03/26/2026
1.20.5829.15818 9 03/26/2026
1.19.5828.20063 10 03/26/2026
1.19.5827.22433 9 03/26/2026
1.19.5824.3255 11 03/26/2026
1.18.5822.14857 10 03/26/2026
1.18.5821.36806 10 03/26/2026
1.17.5820.28487 10 03/26/2026
1.16.5820.27108 10 03/26/2026
1.15.5812.25745 10 03/26/2026
1.14.5811.24407 10 03/26/2026
1.13.5811.23634 9 03/26/2026
1.12.5801.29458 10 03/26/2026
1.11.5799.31777 9 03/26/2026
1.10.5779.31942 9 03/26/2026
1.9.5778.39697 11 03/26/2026
1.9.5778.38903 11 03/26/2026
1.9.5778.31077 11 03/26/2026
1.8.5777.37128 10 03/26/2026
1.8.5775.25809 10 03/26/2026
1.7.5770.30722 11 03/26/2026
1.6.5769.33301 11 03/26/2026
1.6.5765.33542 11 03/26/2026
1.6.5763.16697 11 03/26/2026
1.6.5760.32685 10 03/26/2026
1.6.5759.33134 11 03/26/2026
1.6.5758.30931 11 03/26/2026
1.6.5757.40238 9 03/26/2026
1.6.5751.15394 11 03/26/2026
1.5.5750.33915 11 03/26/2026
1.5.5750.33435 11 03/26/2026
1.4.5737.33581 11 03/26/2026
1.4.5732.34143 11 03/26/2026
1.4.5731.36729 10 03/26/2026
1.3.5731.34877 11 03/26/2026
1.2.5730.33570 11 03/26/2026
1.1.5729.33707 11 03/26/2026
1.0.5725.35303 11 03/26/2026
0.2.5707.34168 9 03/26/2026
0.2.5707.33649 10 03/26/2026
0.1.5585.25897 11 03/26/2026
0.1.5582.28800 11 03/26/2026
0.1.5524.6071 10 03/26/2026
0.1.5504.31964 11 03/26/2026
0.1.5494.16128 9 03/26/2026
0.1.5492.33014 11 03/26/2026
0.1.5479.38772 11 03/26/2026
0.1.5477.39622 10 03/26/2026
0.1.5477.36883 11 03/26/2026
0.1.5471.22558 11 03/26/2026
0.1.5470.42846 11 03/26/2026
0.1.5470.35375 11 03/26/2026
0.1.5470.35079 11 03/26/2026