Repository: in28minutes/deploy-spring-boot-aws-eb Branch: master Commit: 715e85d06fdc Files: 190 Total size: 194.5 MB Directory structure: gitextract_8cnmw1ty/ ├── 01-spring-boot-hello-world-rest-api/ │ ├── build-artifacts-backup/ │ │ └── 01-spring-boot-hello-world-rest-api-0.0.1-SNAPSHOT.jar │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── rest/ │ │ │ └── webservices/ │ │ │ └── restfulwebservices/ │ │ │ ├── HelloWorldBean.java │ │ │ ├── HelloWorldController.java │ │ │ └── RestfulWebServicesApplication.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── in28minutes/ │ └── rest/ │ └── webservices/ │ └── restfulwebservices/ │ └── RestfulWebServicesApplicationTests.java ├── 02-spring-boot-todo-rest-api-h2/ │ ├── build-artifacts-backup/ │ │ └── 02-todo-rest-api-h2-0.0.1-SNAPSHOT.jar │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── rest/ │ │ │ └── webservices/ │ │ │ └── restfulwebservices/ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ ├── helloworld/ │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ └── todo/ │ │ │ ├── Todo.java │ │ │ ├── TodoJpaRepository.java │ │ │ └── TodoJpaResource.java │ │ └── resources/ │ │ ├── application.properties │ │ └── data.sql │ └── test/ │ └── java/ │ └── com/ │ └── in28minutes/ │ └── rest/ │ └── webservices/ │ └── restfulwebservices/ │ └── RestfulWebServicesApplicationTests.java ├── 03-spring-boot-web-application-h2/ │ ├── build-artifacts-backup/ │ │ └── 03-spring-boot-web-application-h2-0.0.1-SNAPSHOT.war │ ├── log/ │ │ ├── cron │ │ ├── httpd/ │ │ │ ├── access_log │ │ │ ├── elasticbeanstalk-access_log │ │ │ ├── elasticbeanstalk-error_log │ │ │ └── error_log │ │ ├── messages │ │ ├── monit │ │ └── tomcat8/ │ │ ├── catalina.out │ │ └── localhost_access_log.txt │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── springboot/ │ │ │ └── web/ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ ├── controller/ │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ ├── model/ │ │ │ │ └── Todo.java │ │ │ ├── security/ │ │ │ │ └── SecurityConfiguration.java │ │ │ └── service/ │ │ │ ├── TodoRepository.java │ │ │ └── TodoService.java │ │ ├── resources/ │ │ │ ├── application.properties │ │ │ └── data.sql │ │ └── webapp/ │ │ └── WEB-INF/ │ │ └── jsp/ │ │ ├── common/ │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ ├── error.jsp │ │ ├── list-todos.jsp │ │ ├── todo.jsp │ │ └── welcome.jsp │ └── test/ │ └── java/ │ └── com/ │ └── in28minutes/ │ └── springboot/ │ └── web/ │ └── SpringBootFirstWebApplicationTests.java ├── 04-spring-boot-web-application-mysql/ │ ├── build-artifacts-backup/ │ │ └── 04-spring-boot-web-application-mysql-0.0.1-SNAPSHOT.war │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── springboot/ │ │ │ └── web/ │ │ │ ├── EnvironmentConfigurationLogger.java │ │ │ ├── SpringBootFirstWebApplication.java │ │ │ ├── controller/ │ │ │ │ ├── ErrorController.java │ │ │ │ ├── LogoutController.java │ │ │ │ ├── TodoController.java │ │ │ │ └── WelcomeController.java │ │ │ ├── model/ │ │ │ │ └── Todo.java │ │ │ ├── security/ │ │ │ │ └── SecurityConfiguration.java │ │ │ └── service/ │ │ │ ├── TodoRepository.java │ │ │ └── TodoService.java │ │ ├── resources/ │ │ │ └── application.properties │ │ └── webapp/ │ │ └── WEB-INF/ │ │ └── jsp/ │ │ ├── common/ │ │ │ ├── footer.jspf │ │ │ ├── header.jspf │ │ │ └── navigation.jspf │ │ ├── error.jsp │ │ ├── list-todos.jsp │ │ ├── todo.jsp │ │ └── welcome.jsp │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── in28minutes/ │ │ └── springboot/ │ │ └── web/ │ │ └── SpringBootFirstWebApplicationTests.java │ └── resources/ │ └── application.properties ├── 05-spring-boot-react-full-stack-h2/ │ ├── build-artifacts-backup/ │ │ ├── 05-restful-web-services-full-stack-bankend-0.0.1-SNAPSHOT.jar │ │ └── build/ │ │ ├── asset-manifest.json │ │ ├── index.html │ │ ├── manifest.json │ │ ├── precache-manifest.fffdf22a71e2cab7bfcc691bf8ce04a4.js │ │ ├── service-worker.js │ │ └── static/ │ │ ├── css/ │ │ │ └── main.566e00ae.chunk.css │ │ └── js/ │ │ ├── 2.3f64e426.chunk.js │ │ ├── main.85126504.chunk.js │ │ └── runtime~main.c5541365.js │ ├── frontend/ │ │ └── todo-app/ │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ └── manifest.json │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── Constants.js │ │ ├── api/ │ │ │ └── todo/ │ │ │ ├── HelloWorldService.js │ │ │ └── TodoDataService.js │ │ ├── bootstrap.css │ │ ├── components/ │ │ │ ├── counter/ │ │ │ │ ├── Counter.css │ │ │ │ └── Counter.jsx │ │ │ ├── learning-examples/ │ │ │ │ ├── FirstComponent.jsx │ │ │ │ ├── SecondComponent.jsx │ │ │ │ └── ThirdComponent.jsx │ │ │ └── todo/ │ │ │ ├── AuthenticatedRoute.jsx │ │ │ ├── AuthenticationService.js │ │ │ ├── ErrorComponent.jsx │ │ │ ├── FooterComponent.jsx │ │ │ ├── HeaderComponent.jsx │ │ │ ├── ListTodosComponent.jsx │ │ │ ├── LoginComponent.jsx │ │ │ ├── LogoutComponent.jsx │ │ │ ├── TodoApp.jsx │ │ │ ├── TodoComponent.jsx │ │ │ └── WelcomeComponent.jsx │ │ ├── index.css │ │ ├── index.js │ │ └── serviceWorker.js │ ├── readme.md │ └── restful-web-services/ │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── rest/ │ │ │ ├── basic/ │ │ │ │ └── auth/ │ │ │ │ ├── AuthenticationBean.java │ │ │ │ ├── BasicAuthenticationController.java │ │ │ │ └── SpringSecurityConfigurationBasicAuth.java │ │ │ └── webservices/ │ │ │ └── restfulwebservices/ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ ├── helloworld/ │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ ├── jwt/ │ │ │ │ ├── JWTWebSecurityConfig.java │ │ │ │ ├── JwtInMemoryUserDetailsService.java │ │ │ │ ├── JwtTokenAuthorizationOncePerRequestFilter.java │ │ │ │ ├── JwtTokenUtil.java │ │ │ │ ├── JwtUnAuthorizedResponseAuthenticationEntryPoint.java │ │ │ │ ├── JwtUserDetails.java │ │ │ │ ├── JwtUserDetailsService.java │ │ │ │ ├── User.java │ │ │ │ ├── UserRepository.java │ │ │ │ └── resource/ │ │ │ │ ├── AuthenticationException.java │ │ │ │ ├── JwtAuthenticationRestController.java │ │ │ │ ├── JwtTokenRequest.java │ │ │ │ └── JwtTokenResponse.java │ │ │ └── todo/ │ │ │ ├── Todo.java │ │ │ ├── TodoJpaRepository.java │ │ │ └── TodoJpaResource.java │ │ └── resources/ │ │ ├── application.properties │ │ └── data.sql │ └── test/ │ └── java/ │ └── com/ │ └── in28minutes/ │ └── rest/ │ └── webservices/ │ └── restfulwebservices/ │ └── RestfulWebServicesApplicationTests.java ├── 06-todo-rest-api-h2-containerized/ │ ├── Dockerfile │ ├── Dockerrun.aws.json │ ├── buildx-commands.md │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── rest/ │ │ │ └── webservices/ │ │ │ └── restfulwebservices/ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ ├── helloworld/ │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ └── todo/ │ │ │ ├── Todo.java │ │ │ ├── TodoJpaRepository.java │ │ │ └── TodoJpaResource.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── in28minutes/ │ └── rest/ │ └── webservices/ │ └── restfulwebservices/ │ └── RestfulWebServicesApplicationTests.java ├── 07-todo-rest-api-mysql-containerized/ │ ├── .ebextensions/ │ │ └── sg-extensions.config │ ├── Dockerfile │ ├── Dockerrun.aws.json │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── rest/ │ │ │ └── webservices/ │ │ │ └── restfulwebservices/ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ ├── helloworld/ │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ └── todo/ │ │ │ ├── Todo.java │ │ │ ├── TodoJpaRepository.java │ │ │ └── TodoJpaResource.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── in28minutes/ │ │ └── rest/ │ │ └── webservices/ │ │ └── restfulwebservices/ │ │ └── RestfulWebServicesApplicationTests.java │ └── resources/ │ └── application.properties ├── 08-spring-boot-todo-rest-api-eb-cli/ │ ├── .gitignore │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── rest/ │ │ │ └── webservices/ │ │ │ └── restfulwebservices/ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ ├── helloworld/ │ │ │ │ ├── HelloWorldBean.java │ │ │ │ └── HelloWorldController.java │ │ │ └── todo/ │ │ │ ├── Todo.java │ │ │ ├── TodoJpaRepository.java │ │ │ └── TodoJpaResource.java │ │ └── resources/ │ │ ├── application.properties │ │ └── data.sql │ └── test/ │ └── java/ │ └── com/ │ └── in28minutes/ │ └── rest/ │ └── webservices/ │ └── restfulwebservices/ │ └── RestfulWebServicesApplicationTests.java ├── 09-spring-boot-worker-rest-api/ │ ├── build-artifacts-backup/ │ │ └── 09-spring-boot-worker-rest-api-20-percent-failure.jar │ ├── pom.xml │ ├── readme.md │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── in28minutes/ │ │ │ └── rest/ │ │ │ └── webservices/ │ │ │ └── restfulwebservices/ │ │ │ ├── RestfulWebServicesApplication.java │ │ │ └── task/ │ │ │ ├── TaskController.java │ │ │ └── TaskDetails.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── in28minutes/ │ └── rest/ │ └── webservices/ │ └── restfulwebservices/ │ └── RestfulWebServicesApplicationTests.java └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: 01-spring-boot-hello-world-rest-api/build-artifacts-backup/01-spring-boot-hello-world-rest-api-0.0.1-SNAPSHOT.jar ================================================ [File too large to display: 20.3 MB] ================================================ FILE: 01-spring-boot-hello-world-rest-api/pom.xml ================================================ 4.0.0 com.in28minutes.rest.webservices 01-spring-boot-hello-world-rest-api 0.0.1-SNAPSHOT jar Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.1.0.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools runtime com.h2database h2 runtime javax.xml.bind jaxb-api 2.3.0 com.sun.xml.bind jaxb-impl 2.3.0 org.glassfish.jaxb jaxb-runtime 2.3.0 javax.activation activation 1.1.1 org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false ================================================ FILE: 01-spring-boot-hello-world-rest-api/readme.md ================================================ # Hello World Rest API running on port 5000 Run com.in28minutes.rest.webservices.restfulwebservices.RestfulWebServicesApplication as a Java Application. - http://localhost:5000/hello-world ```txt Hello World ``` - http://localhost:5000/hello-world-bean ```json {"message":"Hello World - Changed"} ``` - http://localhost:5000/hello-world/path-variable/in28minutes ```json {"message":"Hello World, in28minutes"} ``` ================================================ FILE: 01-spring-boot-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldBean.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices; public class HelloWorldBean { private String message; public HelloWorldBean(String message) { this.message = message; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } @Override public String toString() { return String.format("HelloWorldBean [message=%s]", message); } } ================================================ FILE: 01-spring-boot-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/HelloWorldController.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @GetMapping(path = "/hello-world") public String helloWorld() { return "Hello World"; } @GetMapping(path = "/hello-world-bean") public HelloWorldBean helloWorldBean() { //throw new RuntimeException("Some Error has Happened! Contact Support at ***-***"); return new HelloWorldBean("Hello World - Changed"); } ///hello-world/path-variable/in28minutes @GetMapping(path = "/hello-world/path-variable/{name}") public HelloWorldBean helloWorldPathVariable(@PathVariable String name) { return new HelloWorldBean(String.format("Hello World, %s", name)); } } ================================================ FILE: 01-spring-boot-hello-world-rest-api/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class RestfulWebServicesApplication { public static void main(String[] args) { SpringApplication.run(RestfulWebServicesApplication.class, args); } } ================================================ FILE: 01-spring-boot-hello-world-rest-api/src/main/resources/application.properties ================================================ logging.level.org.springframework = debug #AWS Elastic Beanstalk assumes that the application will listen on port 5000. server.port=5000 ================================================ FILE: 01-spring-boot-hello-world-rest-api/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class RestfulWebServicesApplicationTests { @Test public void contextLoads() { } } ================================================ FILE: 02-spring-boot-todo-rest-api-h2/build-artifacts-backup/02-todo-rest-api-h2-0.0.1-SNAPSHOT.jar ================================================ [File too large to display: 36.4 MB] ================================================ FILE: 02-spring-boot-todo-rest-api-h2/pom.xml ================================================ 4.0.0 com.in28minutes.rest.webservices 02-todo-rest-api-h2 0.0.1-SNAPSHOT jar Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.1.0.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools runtime com.h2database h2 runtime javax.xml.bind jaxb-api 2.3.0 com.sun.xml.bind jaxb-impl 2.3.0 org.glassfish.jaxb jaxb-runtime 2.3.0 javax.activation activation 1.1.1 org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false ================================================ FILE: 02-spring-boot-todo-rest-api-h2/readme.md ================================================ # Todo and Hello World Rest APIs Connecting to H2 In memory database running on port 5000 Run com.in28minutes.rest.webservices.restfulwebservices.RestfulWebServicesApplication as a Java Application. ## Hello World Resource - http://localhost:5000/hello-world ```txt Hello World ``` - http://localhost:5000/hello-world-bean ```json {"message":"Hello World - Changed"} ``` - http://localhost:5000/hello-world/path-variable/in28minutes ```json {"message":"Hello World, in28minutes"} ``` ## Todo Resource - GET - http://localhost:5000/jpa/users/in28minutes/todos ``` [ { "id": 10001, "username": "in28minutes", "description": "Learn JPA", "targetDate": "2019-06-27T06:30:30.696+0000", "done": false }, { "id": 10002, "username": "in28minutes", "description": "Learn Data JPA", "targetDate": "2019-06-27T06:30:30.700+0000", "done": false }, { "id": 10003, "username": "in28minutes", "description": "Learn Microservices", "targetDate": "2019-06-27T06:30:30.701+0000", "done": false } ] ``` #### Retrieve a specific todo - GET - http://localhost:5000/jpa/users/in28minutes/todos/10001 ``` { "id": 10001, "username": "in28minutes", "description": "Learn JPA", "targetDate": "2019-06-27T06:30:30.696+0000", "done": false } ``` #### Creating a new todo - POST to http://localhost:5000/jpa/users/in28minutes/todos with BODY of Request given below ``` { "username": "in28minutes", "description": "Learn to Drive a Car", "targetDate": "2030-11-09T10:49:23.566+0000", "done": false } ``` #### Updating an existing todo - PUT Request to http://localhost:5000/jpa/users/in28minutes/todos/10001 with BODY of Request given below ``` { "id": 10001, "username": "in28minutes", "description": "Learn to Drive a Car", "targetDate": "2045-11-09T10:49:23.566+0000", "done": false } ``` #### Delete todo - DELETE to http://localhost:5000/jpa/users/in28minutes/todos/10001 ## H2 Console - http://localhost:5000/h2-console - Use `jdbc:h2:mem:testdb` as JDBC URL ## Build Spec for AWS Code Pipeline ``` version: 0.2 phases: install: runtime-versions: java: openjdk8 commands: - echo install pre_build: commands: - echo pre_build build: commands: - mvn package - echo build post_build: commands: - echo post_build artifacts: files: - target/spring-boot-todo-rest-api-h2-aws-codepipeline-0.0.1-SNAPSHOT.jar ``` ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplication.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class RestfulWebServicesApplication { public static void main(String[] args) { SpringApplication.run(RestfulWebServicesApplication.class, args); } } ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldBean.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices.helloworld; public class HelloWorldBean { private String message; public HelloWorldBean(String message) { this.message = message; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } @Override public String toString() { return String.format("HelloWorldBean [message=%s]", message); } } ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/helloworld/HelloWorldController.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices.helloworld; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; //Controller @RestController public class HelloWorldController { @GetMapping(path = "/") public String successResponse() { return "successResponse"; } @GetMapping(path = "/hello-world") public String helloWorld() { return "Hello World"; } @GetMapping(path = "/hello-world-bean") public HelloWorldBean helloWorldBean() { return new HelloWorldBean("Hello World"); } ///hello-world/path-variable/in28minutes @GetMapping(path = "/hello-world/path-variable/{name}") public HelloWorldBean helloWorldPathVariable(@PathVariable String name) { //throw new RuntimeException("Something went wrong"); return new HelloWorldBean(String.format("Hello World, %s", name)); } } ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/Todo.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices.todo; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Todo { @Id @GeneratedValue private Long id; private String username; private String description; private Date targetDate; private boolean isDone; public Todo() { } public Todo(long id, String username, String description, Date targetDate, boolean isDone) { super(); this.id = id; this.username = username; this.description = description; this.targetDate = targetDate; this.isDone = isDone; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Date getTargetDate() { return targetDate; } public void setTargetDate(Date targetDate) { this.targetDate = targetDate; } public boolean isDone() { return isDone; } public void setDone(boolean isDone) { this.isDone = isDone; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (id ^ (id >>> 32)); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Todo other = (Todo) obj; if (id != other.id) return false; return true; } } ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaRepository.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices.todo; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface TodoJpaRepository extends JpaRepository{ List findByUsername(String username); } ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/java/com/in28minutes/rest/webservices/restfulwebservices/todo/TodoJpaResource.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices.todo; import java.net.URI; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; @RestController public class TodoJpaResource { @Autowired private TodoJpaRepository todoJpaRepository; @GetMapping("/jpa/users/{username}/todos") public List getAllTodos(@PathVariable String username){ return todoJpaRepository.findByUsername(username); } @GetMapping("/jpa/users/{username}/todos/{id}") public Todo getTodo(@PathVariable String username, @PathVariable long id){ return todoJpaRepository.findById(id).get(); } @DeleteMapping("/jpa/users/{username}/todos/{id}") public ResponseEntity deleteTodo( @PathVariable String username, @PathVariable long id) { todoJpaRepository.deleteById(id); return ResponseEntity.noContent().build(); } @PutMapping("/jpa/users/{username}/todos/{id}") public ResponseEntity updateTodo( @PathVariable String username, @PathVariable long id, @RequestBody Todo todo){ todo.setUsername(username); Todo todoUpdated = todoJpaRepository.save(todo); return new ResponseEntity(todoUpdated, HttpStatus.OK); } @PostMapping("/jpa/users/{username}/todos") public ResponseEntity createTodo( @PathVariable String username, @RequestBody Todo todo){ todo.setId(-1L); Todo createdTodo = todoJpaRepository.save(todo); //Location //Get current resource url ///{id} URI uri = ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}").buildAndExpand(createdTodo.getId()).toUri(); return ResponseEntity.created(uri).build(); } } ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/resources/application.properties ================================================ spring.jpa.show-sql=true spring.h2.console.enabled=true spring.h2.console.settings.web-allow-others=true logging.level.org.springframework = info server.port=5000 ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/main/resources/data.sql ================================================ insert into todo(id, username,description,target_date,is_done) values(10001, 'in28minutes', 'Learn JPA', sysdate(), false); insert into todo(id, username,description,target_date,is_done) values(10002, 'in28minutes', 'Learn Data JPA', sysdate(), false); insert into todo(id, username,description,target_date,is_done) values(10003, 'in28minutes', 'Learn Microservices', sysdate(), false); ================================================ FILE: 02-spring-boot-todo-rest-api-h2/src/test/java/com/in28minutes/rest/webservices/restfulwebservices/RestfulWebServicesApplicationTests.java ================================================ package com.in28minutes.rest.webservices.restfulwebservices; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class RestfulWebServicesApplicationTests { @Test public void contextLoads() { } } ================================================ FILE: 03-spring-boot-web-application-h2/build-artifacts-backup/03-spring-boot-web-application-h2-0.0.1-SNAPSHOT.war ================================================ [File too large to display: 40.2 MB] ================================================ FILE: 03-spring-boot-web-application-h2/log/cron ================================================ Jul 4 05:29:43 ip-172-31-17-226 crond[2616]: (CRON) STARTUP (1.4.4) Jul 4 05:29:43 ip-172-31-17-226 crond[2616]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 2% if used.) Jul 4 05:29:43 ip-172-31-17-226 crond[2616]: (CRON) INFO (running with inotify support) Jul 4 05:30:02 ip-172-31-17-226 CROND[3106]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:30:02 ip-172-31-17-226 CROND[3107]: (root) CMD (publishLogs.py --de-dupe --conf-path '/opt/elasticbeanstalk/tasks/publishlogs.d/*' --location-prefix resources/environments/logs/publish/ --num-concurrent 2) Jul 4 05:31:01 ip-172-31-17-226 CROND[3709]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:32:01 ip-172-31-17-226 CROND[3737]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:33:01 ip-172-31-17-226 CROND[3765]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:34:01 ip-172-31-17-226 CROND[3793]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:35:01 ip-172-31-17-226 CROND[3821]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:36:01 ip-172-31-17-226 CROND[3851]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:37:01 ip-172-31-17-226 CROND[3879]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:38:01 ip-172-31-17-226 CROND[3907]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:39:01 ip-172-31-17-226 CROND[3935]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:40:01 ip-172-31-17-226 CROND[3963]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:41:01 ip-172-31-17-226 CROND[3993]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:42:01 ip-172-31-17-226 CROND[4021]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:43:01 ip-172-31-17-226 CROND[4049]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:44:01 ip-172-31-17-226 CROND[4077]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:45:01 ip-172-31-17-226 CROND[4106]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:45:01 ip-172-31-17-226 CROND[4107]: (root) CMD (clearStaleLogPublishingRecords.py) Jul 4 05:46:01 ip-172-31-17-226 CROND[4136]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:47:01 ip-172-31-17-226 CROND[4166]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:48:01 ip-172-31-17-226 CROND[4194]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:49:01 ip-172-31-17-226 CROND[4222]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:50:01 ip-172-31-17-226 CROND[4280]: (root) CMD (publishLogs.py --de-dupe --conf-path '/opt/elasticbeanstalk/tasks/publishlogs.d/*' --location-prefix resources/environments/logs/publish/ --num-concurrent 2) Jul 4 05:50:01 ip-172-31-17-226 CROND[4281]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:51:01 ip-172-31-17-226 CROND[4312]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:52:01 ip-172-31-17-226 CROND[4342]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:53:01 ip-172-31-17-226 CROND[4370]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:54:01 ip-172-31-17-226 CROND[4398]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:55:01 ip-172-31-17-226 CROND[4461]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:56:01 ip-172-31-17-226 CROND[5171]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:57:01 ip-172-31-17-226 CROND[5199]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:58:01 ip-172-31-17-226 CROND[5243]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 05:59:01 ip-172-31-17-226 CROND[5271]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 06:00:01 ip-172-31-17-226 CROND[5299]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 06:01:01 ip-172-31-17-226 CROND[5330]: (root) CMD (run-parts /etc/cron.hourly) Jul 4 06:01:01 ip-172-31-17-226 CROND[5331]: (root) CMD (/usr/sbin/awslogs-nanny > /dev/null 2>&1) Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5330]: starting 0anacron Jul 4 06:01:01 ip-172-31-17-226 anacron[5350]: Anacron started on 2019-07-04 Jul 4 06:01:01 ip-172-31-17-226 anacron[5350]: Will run job `cron.daily' in 11 min. Jul 4 06:01:01 ip-172-31-17-226 anacron[5350]: Will run job `cron.weekly' in 31 min. Jul 4 06:01:01 ip-172-31-17-226 anacron[5350]: Will run job `cron.monthly' in 51 min. Jul 4 06:01:01 ip-172-31-17-226 anacron[5350]: Jobs will be executed sequentially Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5353]: finished 0anacron Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5330]: starting cron.logcleanup.elasticbeanstalk.healthd.httpd.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5368]: finished cron.logcleanup.elasticbeanstalk.healthd.httpd.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5330]: starting cron.logcleanup.elasticbeanstalk.healthd.nginx.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5379]: finished cron.logcleanup.elasticbeanstalk.healthd.nginx.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5330]: starting cron.logrotate.elasticbeanstalk.awslogs.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5386]: finished cron.logrotate.elasticbeanstalk.awslogs.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5330]: starting cron.logrotate.elasticbeanstalk.healthd.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5393]: finished cron.logrotate.elasticbeanstalk.healthd.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5330]: starting cron.logrotate.elasticbeanstalk.httpd.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5400]: finished cron.logrotate.elasticbeanstalk.httpd.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5330]: starting cron.logrotate.elasticbeanstalk.tomcat8.conf Jul 4 06:01:01 ip-172-31-17-226 run-parts(/etc/cron.hourly)[5407]: finished cron.logrotate.elasticbeanstalk.tomcat8.conf ================================================ FILE: 03-spring-boot-web-application-h2/log/httpd/access_log ================================================ 117.98.145.230 - - [04/Jul/2019:05:49:19 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:20 +0000] "GET /login HTTP/1.1" 200 622 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:21 +0000] "GET /favicon.ico HTTP/1.1" 200 946 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:31 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:33 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:32 +0000] "GET / HTTP/1.1" 200 478 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:33 +0000] "GET / HTTP/1.1" 200 478 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19799 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 33029 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:38 +0000] "GET /list-todos HTTP/1.1" 200 717 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19779 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 32884 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:52 +0000] "GET /h2-console HTTP/1.1" 302 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:49:53 +0000] "GET /h2-console/ HTTP/1.1" 200 408 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 148.163.128.145 - - [04/Jul/2019:05:51:33 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0" 148.163.128.145 - - [04/Jul/2019:05:51:33 +0000] "GET /login HTTP/1.1" 200 622 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0" 117.98.145.230 - - [04/Jul/2019:05:55:46 +0000] "GET /h2-console/ HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:55:47 +0000] "GET /h2-console/stylesheet.css HTTP/1.1" 200 1222 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:55:47 +0000] "GET /h2-console/login.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 2538 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:55:47 +0000] "GET /h2-console/background.gif HTTP/1.1" 200 169 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/stylesheet.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:55:48 +0000] "GET /favicon.ico HTTP/1.1" 200 946 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:07 +0000] "POST /h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 591 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:09 +0000] "GET /h2-console/stylesheet.css HTTP/1.1" 200 1222 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:09 +0000] "GET /h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 1343 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/query.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 4414 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/help.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 2148 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_line.gif HTTP/1.1" 200 818 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_disconnect.gif HTTP/1.1" 200 114 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_refresh.gif HTTP/1.1" 200 327 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_run_selected.gif HTTP/1.1" 200 312 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_help.gif HTTP/1.1" 200 373 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_history.gif HTTP/1.1" 200 216 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_stop.gif HTTP/1.1" 200 215 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_rollback.gif HTTP/1.1" 200 331 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_commit.gif HTTP/1.1" 200 323 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_run.gif HTTP/1.1" 200 379 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:09 +0000] "GET /h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 1371 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree.js HTTP/1.1" 200 1043 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_table.gif HTTP/1.1" 200 343 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_plus.gif HTTP/1.1" 200 870 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_column.gif HTTP/1.1" 200 317 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_empty.gif HTTP/1.1" 200 62 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_database.gif HTTP/1.1" 200 545 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_minus.gif HTTP/1.1" 200 861 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_sequences.gif HTTP/1.1" 200 114 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_info.gif HTTP/1.1" 200 267 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_index_az.gif HTTP/1.1" 200 157 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_folder.gif HTTP/1.1" 200 372 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_type.gif HTTP/1.1" 200 197 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_users.gif HTTP/1.1" 200 601 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:12 +0000] "GET /h2-console/tree_index.gif HTTP/1.1" 200 152 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:12 +0000] "GET /h2-console/tree_user.gif HTTP/1.1" 200 500 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:12 +0000] "GET /h2-console/tree_sequence.gif HTTP/1.1" 200 91 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:13 +0000] "POST /h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 776 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:13 +0000] "GET /h2-console/table.js HTTP/1.1" 200 2587 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:19 +0000] "GET /delete-todo?id=10001 HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:19 +0000] "GET /login HTTP/1.1" 200 622 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:26 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:27 +0000] "GET /delete-todo?id=10001 HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:27 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:28 +0000] "GET / HTTP/1.1" 200 478 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:27 +0000] "GET /list-todos HTTP/1.1" 200 695 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19871 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 32930 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:33 +0000] "GET /list-todos HTTP/1.1" 200 695 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19871 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 32812 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:41 +0000] "POST /h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 757 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:42 +0000] "GET /h2-console/table.js HTTP/1.1" 200 2560 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:57:42 +0000] "GET /h2-console/stylesheet.css HTTP/1.1" 200 1222 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:58:26 +0000] "GET /logout HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 - - [04/Jul/2019:05:58:26 +0000] "GET /login?logout HTTP/1.1" 200 662 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" ================================================ FILE: 03-spring-boot-web-application-h2/log/httpd/elasticbeanstalk-access_log ================================================ 117.98.145.230 (-) - - [04/Jul/2019:05:49:19 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:20 +0000] "GET /login HTTP/1.1" 200 622 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:21 +0000] "GET /favicon.ico HTTP/1.1" 200 946 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:31 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:33 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:32 +0000] "GET / HTTP/1.1" 200 478 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:33 +0000] "GET / HTTP/1.1" 200 478 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19799 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 33029 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:34 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:38 +0000] "GET /list-todos HTTP/1.1" 200 717 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 32884 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:39 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19779 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:52 +0000] "GET /h2-console HTTP/1.1" 302 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:49:53 +0000] "GET /h2-console/ HTTP/1.1" 200 408 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 148.163.128.145 (-) - - [04/Jul/2019:05:51:33 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0" 148.163.128.145 (-) - - [04/Jul/2019:05:51:33 +0000] "GET /login HTTP/1.1" 200 622 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0" 117.98.145.230 (-) - - [04/Jul/2019:05:55:46 +0000] "GET /h2-console/ HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:55:47 +0000] "GET /h2-console/stylesheet.css HTTP/1.1" 200 1222 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:55:47 +0000] "GET /h2-console/login.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 2538 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:55:47 +0000] "GET /h2-console/background.gif HTTP/1.1" 200 169 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/stylesheet.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:55:48 +0000] "GET /favicon.ico HTTP/1.1" 200 946 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:07 +0000] "POST /h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 591 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:09 +0000] "GET /h2-console/stylesheet.css HTTP/1.1" 200 1222 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:09 +0000] "GET /h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 1343 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/query.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 4414 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/help.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 2148 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_line.gif HTTP/1.1" 200 818 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_disconnect.gif HTTP/1.1" 200 114 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_refresh.gif HTTP/1.1" 200 327 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_run_selected.gif HTTP/1.1" 200 312 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_help.gif HTTP/1.1" 200 373 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_history.gif HTTP/1.1" 200 216 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_stop.gif HTTP/1.1" 200 215 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_rollback.gif HTTP/1.1" 200 331 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_commit.gif HTTP/1.1" 200 323 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:10 +0000] "GET /h2-console/icon_run.gif HTTP/1.1" 200 379 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/header.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:09 +0000] "GET /h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 1371 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/login.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree.js HTTP/1.1" 200 1043 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_table.gif HTTP/1.1" 200 343 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_plus.gif HTTP/1.1" 200 870 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_column.gif HTTP/1.1" 200 317 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_empty.gif HTTP/1.1" 200 62 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_database.gif HTTP/1.1" 200 545 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_minus.gif HTTP/1.1" 200 861 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_sequences.gif HTTP/1.1" 200 114 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_info.gif HTTP/1.1" 200 267 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_index_az.gif HTTP/1.1" 200 157 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_folder.gif HTTP/1.1" 200 372 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_type.gif HTTP/1.1" 200 197 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:11 +0000] "GET /h2-console/tree_users.gif HTTP/1.1" 200 601 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:12 +0000] "GET /h2-console/tree_index.gif HTTP/1.1" 200 152 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:12 +0000] "GET /h2-console/tree_user.gif HTTP/1.1" 200 500 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:12 +0000] "GET /h2-console/tree_sequence.gif HTTP/1.1" 200 91 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/tables.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:13 +0000] "POST /h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 776 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:13 +0000] "GET /h2-console/table.js HTTP/1.1" 200 2587 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:19 +0000] "GET /delete-todo?id=10001 HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:19 +0000] "GET /login HTTP/1.1" 200 622 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:26 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:27 +0000] "GET /delete-todo?id=10001 HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:27 +0000] "POST /login HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:28 +0000] "GET / HTTP/1.1" 200 478 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:27 +0000] "GET /list-todos HTTP/1.1" 200 695 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/login" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19871 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:29 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 32930 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:33 +0000] "GET /list-todos HTTP/1.1" 200 695 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js HTTP/1.1" 200 8446 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/bootstrap/3.3.6/js/bootstrap.min.js HTTP/1.1" 200 9863 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/bootstrap/3.3.6/css/bootstrap.min.css HTTP/1.1" 200 19871 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:33 +0000] "GET /webjars/jquery/1.9.1/jquery.min.js HTTP/1.1" 200 32812 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:41 +0000] "POST /h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967 HTTP/1.1" 200 757 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.jsp?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:42 +0000] "GET /h2-console/table.js HTTP/1.1" 200 2560 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:57:42 +0000] "GET /h2-console/stylesheet.css HTTP/1.1" 200 1222 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/h2-console/query.do?jsessionid=a03a95bb03374ed3c500540ad5d01967" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:58:26 +0000] "GET /logout HTTP/1.1" 302 - "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" 117.98.145.230 (-) - - [04/Jul/2019:05:58:26 +0000] "GET /login?logout HTTP/1.1" 200 662 "http://web-application-in28minutes-dev.sdfez6dmr4.us-east-1.elasticbeanstalk.com/list-todos" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" ================================================ FILE: 03-spring-boot-web-application-h2/log/httpd/elasticbeanstalk-error_log ================================================ ================================================ FILE: 03-spring-boot-web-application-h2/log/httpd/error_log ================================================ [Thu Jul 04 05:30:23.959963 2019] [ssl:warn] [pid 3513:tid 140069899278400] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache] [Thu Jul 04 05:30:23.967147 2019] [mpm_worker:notice] [pid 3513:tid 140069899278400] AH00292: Apache/2.4.39 (Amazon) OpenSSL/1.0.2k-fips configured -- resuming normal operations [Thu Jul 04 05:30:23.967169 2019] [core:notice] [pid 3513:tid 140069899278400] AH00094: Command line: '/usr/sbin/httpd' [Thu Jul 04 05:55:22.551397 2019] [mpm_worker:notice] [pid 3513:tid 140069899278400] AH00295: caught SIGTERM, shutting down [Thu Jul 04 05:55:24.092778 2019] [ssl:warn] [pid 4953:tid 140106423265344] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache] [Thu Jul 04 05:55:24.093788 2019] [mpm_worker:notice] [pid 4953:tid 140106423265344] AH00292: Apache/2.4.39 (Amazon) OpenSSL/1.0.2k-fips configured -- resuming normal operations [Thu Jul 04 05:55:24.093808 2019] [core:notice] [pid 4953:tid 140106423265344] AH00094: Command line: '/usr/sbin/httpd' ================================================ FILE: 03-spring-boot-web-application-h2/log/messages ================================================ Jul 4 05:29:41 ip-172-31-17-226 kernel: imklog 5.8.10, log source = /proc/kmsg started. Jul 4 05:29:41 ip-172-31-17-226 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="2279" x-info="http://www.rsyslog.com"] start Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Linux version 4.14.123-86.109.amzn1.x86_64 (mockbuild@koji-pdx-corp-builder-64004) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC)) #1 SMP Mon Jun 10 19:44:53 UTC 2019 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Command line: root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 LANG=en_US.UTF-8 KEYTABLE=us Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] e820: BIOS-provided physical RAM map: Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dfff] usable Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000003fffffff] usable Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] BIOS-e820: [mem 0x00000000fc000000-0x00000000ffffffff] reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] NX (Execute Disable) protection: active Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] SMBIOS 2.7 present. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] DMI: Xen HVM domU, BIOS 4.2.amazon 08/24/2006 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Hypervisor detected: Xen HVM Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Xen version 4.2. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Netfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated NICs. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] You might have to change the root device Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] from /dev/hd[a-d] to /dev/xvd[a-d] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] in your root= kernel command line option Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] tsc: Fast TSC calibration using PIT Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] e820: last_pfn = 0x40000 max_arch_pfn = 0x400000000 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] found SMP MP-table at [mem 0x000fbc50-0x000fbc5f] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] RAMDISK: [mem 0x3707c000-0x37feffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: Early table checksum verification disabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: RSDP 0x00000000000EA020 000024 (v02 Xen ) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: XSDT 0x00000000FC00E2A0 000054 (v01 Xen HVM 00000000 HVML 00000000) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: FACP 0x00000000FC00DF60 0000F4 (v04 Xen HVM 00000000 HVML 00000000) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: DSDT 0x00000000FC0021C0 00BD19 (v02 Xen HVM 00000000 INTL 20090123) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: FACS 0x00000000FC002180 000040 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: FACS 0x00000000FC002180 000040 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: APIC 0x00000000FC00E060 0000D8 (v02 Xen HVM 00000000 HVML 00000000) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: HPET 0x00000000FC00E1B0 000038 (v01 Xen HVM 00000000 HVML 00000000) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: WAET 0x00000000FC00E1F0 000028 (v01 Xen HVM 00000000 HVML 00000000) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: SSDT 0x00000000FC00E220 000031 (v02 Xen HVM 00000000 INTL 20090123) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: SSDT 0x00000000FC00E260 000033 (v02 Xen HVM 00000000 INTL 20090123) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] No NUMA configuration found Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Faking a node at [mem 0x0000000000000000-0x000000003fffffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] NODE_DATA(0) allocated [mem 0x3ffde000-0x3fffffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Zone ranges: Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] DMA [mem 0x0000000000001000-0x0000000000ffffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] DMA32 [mem 0x0000000001000000-0x000000003fffffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Normal empty Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Movable zone start for each node Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Early memory node ranges Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] node 0: [mem 0x0000000000001000-0x000000000009dfff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] node 0: [mem 0x0000000000100000-0x000000003fffffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000003fffffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: PM-Timer IO Port: 0xb008 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-47 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 low level) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 low level) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Using ACPI (MADT) for SMP configuration information Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] smpboot: Allowing 15 CPUs, 14 hotplug CPUs Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] e820: [mem 0x40000000-0xfbffffff] available for PCI devices Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Booting paravirtualized kernel on Xen HVM Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:15 nr_cpu_ids:15 nr_node_ids:1 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] percpu: Embedded 44 pages/cpu s140120 r8192 d31912 u262144 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 257928 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Policy zone: DMA32 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Kernel command line: root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 LANG=en_US.UTF-8 KEYTABLE=us Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Memory: 988204K/1048180K available (8204K kernel code, 1922K rwdata, 2696K rodata, 2052K init, 3876K bss, 59976K reserved, 0K cma-reserved) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=15, Nodes=1 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] Kernel/User page tables isolation: enabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.000000] ftrace: allocating 25812 entries in 101 pages Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] Hierarchical RCU implementation. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=15. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=15 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] NR_IRQS: 524544, nr_irqs: 952, preallocated irqs: 16 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] xen:events: Using 2-level ABI Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] xen:events: Xen HVM callback vector for event delivery is enabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] Console: colour VGA+ 80x25 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] console [tty1] enabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] Cannot get hvm parameter CONSOLE_EVTCHN (18): -22! Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] console [ttyS0] enabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.004000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 30580167144 ns Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.008000] tsc: Fast TSC calibration using PIT Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.020004] tsc: Detected 2400.065 MHz processor Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.024009] Calibrating delay loop (skipped), value calculated using timer frequency.. 4800.19 BogoMIPS (lpj=9600392) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.032004] pid_max: default: 32768 minimum: 301 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.036019] ACPI: Core revision 20170728 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.043601] ACPI: 3 ACPI AML tables successfully acquired and loaded Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.044029] Security Framework initialized Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.048186] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.052094] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.056019] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.060006] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.068232] mce: CPU supports 2 MCE banks Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.071562] Last level iTLB entries: 4KB 1024, 2MB 1024, 4MB 1024 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.072006] Last level dTLB entries: 4KB 1024, 2MB 1024, 4MB 1024, 1GB 4 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.076005] Spectre V2 : Mitigation: Full generic retpoline Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.080004] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.088005] Speculative Store Bypass: Vulnerable Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.092031] MDS: Vulnerable: Clear CPU buffers attempted, no microcode Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.104267] smpboot: Max logical packages: 15 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.108861] x2apic: IRQ remapping doesn't support X2APIC mode Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.116003] Switched APIC routing to physical flat. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.122818] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=0 pin2=0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.167088] clocksource: xen: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.172019] installing Xen timer for CPU 0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.176081] smpboot: CPU0: Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz (family: 0x6, model: 0x3f, stepping: 0x2) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.180034] cpu 0 spinlock event irq 53 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.183302] Performance Events: unsupported p6 CPU model 63 no PMU driver, software events only. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.184052] Hierarchical SRCU implementation. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.187377] NMI watchdog: Perf event create on CPU 0 failed with -2 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.188005] NMI watchdog: Perf NMI watchdog permanently disabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.192204] smp: Bringing up secondary CPUs ... Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.195880] smp: Brought up 1 node, 1 CPU Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.196006] smpboot: Total of 1 processors activated (4800.19 BogoMIPS) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.200481] devtmpfs: initialized Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.203640] x86/mm: Memory block size: 128MB Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.204182] random: get_random_bytes called from setup_net+0x3c/0x140 with crng_init=0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.208068] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.212017] futex hash table entries: 4096 (order: 6, 262144 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.216255] NET: Registered protocol family 16 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.220254] cpuidle: using governor ladder Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.224007] cpuidle: using governor menu Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.227427] ACPI: bus type PCI registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.228009] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.232336] PCI: Using configuration type 1 for base access Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.238755] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.240210] ACPI: Added _OSI(Module Device) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.243158] ACPI: Added _OSI(Processor Device) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.244012] ACPI: Added _OSI(3.0 _SCP Extensions) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.247570] ACPI: Added _OSI(Processor Aggregator Device) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.251079] ACPI: Interpreter enabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.252019] ACPI: (supports S0 S4 S5) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.254720] ACPI: Using IOAPIC for interrupt routing Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.256037] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.260361] ACPI: Enabled 2 GPEs in block 00 to 0F Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.306588] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.308012] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.312016] acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.316020] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.321111] acpiphp: Slot [0] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.324832] acpiphp: Slot [3] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.328113] acpiphp: Slot [4] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.332362] acpiphp: Slot [5] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.335606] acpiphp: Slot [6] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.336401] acpiphp: Slot [7] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.339679] acpiphp: Slot [8] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.340365] acpiphp: Slot [9] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.343601] acpiphp: Slot [10] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.344362] acpiphp: Slot [11] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.347611] acpiphp: Slot [12] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.348473] acpiphp: Slot [13] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.351633] acpiphp: Slot [14] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.352423] acpiphp: Slot [15] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.355645] acpiphp: Slot [16] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.356848] acpiphp: Slot [17] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.360122] acpiphp: Slot [18] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.363385] acpiphp: Slot [19] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.364405] acpiphp: Slot [20] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.368000] acpiphp: Slot [21] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.368386] acpiphp: Slot [22] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.372010] acpiphp: Slot [23] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.375627] acpiphp: Slot [24] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.376504] acpiphp: Slot [25] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.380052] acpiphp: Slot [26] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.383804] acpiphp: Slot [27] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.384409] acpiphp: Slot [28] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.388163] acpiphp: Slot [29] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.391814] acpiphp: Slot [30] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.392478] acpiphp: Slot [31] registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.396220] PCI host bridge to bus 0000:00 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.399621] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.400007] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.404008] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.408005] pci_bus 0000:00: root bus resource [mem 0xf0000000-0xfbffffff window] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.412006] pci_bus 0000:00: root bus resource [bus 00-ff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.423413] pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.424006] pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io 0x03f6] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.428004] pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.432005] pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io 0x0376] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.436808] * Found PM-Timer Bug on the chipset. Due to workarounds for a bug, Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.436808] * this clock source is slow. Consider trying other clock sources Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.441819] pci 0000:00:01.3: quirk: [io 0xb000-0xb03f] claimed by PIIX4 ACPI Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.451854] ACPI: PCI Interrupt Link [LNKA] (IRQs *5 10 11) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.452231] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.456256] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.460244] ACPI: PCI Interrupt Link [LNKD] (IRQs *5 10 11) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.484060] xen:balloon: Initialising balloon driver Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.500426] pci 0000:00:02.0: vgaarb: setting as boot VGA device Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.504000] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.504023] pci 0000:00:02.0: vgaarb: bridge control possible Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.508006] vgaarb: loaded Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.511108] EDAC MC: Ver: 3.0.0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.512528] PCI: Using ACPI for IRQ routing Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.516524] NetLabel: Initializing Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.519633] NetLabel: domain hash size = 128 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.520006] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.524021] NetLabel: unlabeled traffic allowed by default Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.528066] HPET: 3 timers in total, 0 timers will be used for per-cpu timer Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.532022] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.536000] hpet0: 3 comparators, 64-bit 62.500000 MHz counter Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.539195] clocksource: Switched to clocksource xen Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.547615] VFS: Disk quotas dquot_6.6.0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.551138] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.556592] pnp: PnP ACPI init Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.559497] system 00:00: [mem 0x00000000-0x0009ffff] could not be reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.564894] system 00:01: [io 0x08a0-0x08a3] has been reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.569578] system 00:01: [io 0x0cc0-0x0ccf] has been reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.574315] system 00:01: [io 0x04d0-0x04d1] has been reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.579343] system 00:07: [io 0x10c0-0x1141] has been reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.584916] system 00:07: [io 0xb044-0xb047] has been reserved Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.609646] pnp: PnP ACPI: found 8 devices Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.619705] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.627285] NET: Registered protocol family 2 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.631127] TCP established hash table entries: 8192 (order: 4, 65536 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.636589] TCP bind hash table entries: 8192 (order: 5, 131072 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.641582] TCP: Hash tables configured (established 8192 bind 8192) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.646589] UDP hash table entries: 512 (order: 2, 16384 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.651569] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.656402] NET: Registered protocol family 1 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.659874] pci 0000:00:00.0: Limiting direct PCI/PCI transfers Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.664323] pci 0000:00:01.0: PIIX3: Enabling Passive Release Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.668711] pci 0000:00:01.0: Activating ISA DMA hang workarounds Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.673343] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.680468] Unpacking initramfs... Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.808062] random: fast init done Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.924737] Freeing initrd memory: 15824K Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.928480] audit: initializing netlink subsys (disabled) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.933819] Initialise system trusted keyrings Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.937392] Key type blacklist registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.940803] audit: type=2000 audit(1562218176.830:1): state=initialized audit_enabled=0 res=1 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.947640] workingset: timestamp_bits=36 max_order=18 bucket_order=0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 0.953843] zbud: loaded Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.229452] Key type asymmetric registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.233297] Asymmetric key parser 'x509' registered Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.237366] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.243354] io scheduler noop registered (default) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.247789] xen:grant_table: Grant tables using version 1 layout Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.252438] Grant table initialized Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.255811] Cannot get hvm parameter CONSOLE_EVTCHN (18): -22! Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.260444] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.294166] 00:06: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.301027] xen_netfront: Initialising Xen virtual ethernet driver Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.307579] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.316114] serio: i8042 KBD port at 0x60,0x64 irq 1 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.320035] serio: i8042 AUX port at 0x60,0x64 irq 12 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.325384] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.333799] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.338941] rtc_cmos 00:02: alarms up to one day, 114 bytes nvram, hpet irqs Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.344630] hidraw: raw HID events driver (C) Jiri Kosina Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.349033] NET: Registered protocol family 17 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.353208] sched_clock: Marking stable (1352950103, 0)->(2070469841, -717519738) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.359869] registered taskstats version 1 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.363600] Loading compiled-in X.509 certificates Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.367715] zswap: loaded using pool lzo/zbud Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.472096] xenbus_probe_frontend: Device with no driver: device/vbd/51712 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.477874] rtc_cmos 00:02: setting system clock to 2019-07-04 05:29:37 UTC (1562218177) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.486636] Freeing unused kernel memory: 2052K Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.496082] Write protecting the kernel read-only data: 14336k Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.501211] Freeing unused kernel memory: 2016K Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.507678] Freeing unused kernel memory: 1400K Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.529215] device-mapper: uevent: version 1.0.3 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.533508] device-mapper: ioctl: 4.37.0-ioctl (2017-09-20) initialised: dm-devel@redhat.com Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.600239] SCSI subsystem initialized Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.655484] scsi host0: ata_piix Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.692117] scsi host1: ata_piix Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.695296] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc100 irq 14 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.700801] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc108 irq 15 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.730315] Invalid max_queues (4), will use default max: 1. Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.761243] blkfront: xvda: barrier or flush: disabled; persistent grants: disabled; indirect descriptors: enabled; Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.774089] xvda: xvda1 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.936545] EXT4-fs (xvda1): mounted filesystem with ordered data mode. Opts: (null) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.952820] tsc: Refined TSC clocksource calibration: 2400.002 MHz Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.957681] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x22983938a92, max_idle_ns: 440795216168 ns Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 1.968659] EXT4-fs (xvda1): mounted filesystem with ordered data mode. Opts: (null) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 2.049130] random: init: uninitialized urandom read (12 bytes read) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 2.216852] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 2.238931] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input4 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 2.298572] ACPI: Power Button [PWRF] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 2.301772] input: Sleep Button as /devices/LNXSYSTM:00/LNXSLPBN:00/input/input5 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 2.361282] ACPI: Sleep Button [SLPF] Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 2.410084] mousedev: PS/2 mouse device common for all mice Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 3.405708] random: lvm: uninitialized urandom read (4 bytes read) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 3.461469] EXT4-fs (xvda1): re-mounted. Opts: (null) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 3.490166] random: dd: uninitialized urandom read (4096 bytes read) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 3.598729] random: vgs: uninitialized urandom read (4 bytes read) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 3.684477] NET: Registered protocol family 10 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 3.694069] Segment Routing with IPv6 Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 3.869422] netlink: 12 bytes leftover after parsing attributes in process `ip'. Jul 4 05:29:41 ip-172-31-17-226 irqbalance: Balancing is ineffective on systems with a single cpu. Shutting down Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 5.480973] urandom_read: 1 callbacks suppressed Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 5.480974] random: rngd: uninitialized urandom read (16 bytes read) Jul 4 05:29:41 ip-172-31-17-226 kernel: [ 5.521865] random: crng init done Jul 4 05:29:41 ip-172-31-17-226 dhclient[2213]: XMT: Solicit on eth0, interval 1090ms. Jul 4 05:29:41 ip-172-31-17-226 rpc.statd[2346]: Version 1.3.0 starting Jul 4 05:29:41 ip-172-31-17-226 sm-notify[2347]: Version 1.3.0 starting Jul 4 05:29:41 ip-172-31-17-226 acpid: starting up with netlink and the input layer Jul 4 05:29:41 ip-172-31-17-226 acpid: skipping incomplete file /etc/acpi/events/videoconf Jul 4 05:29:41 ip-172-31-17-226 acpid: 2 rules loaded Jul 4 05:29:41 ip-172-31-17-226 acpid: waiting for events: event logging is off Jul 4 05:29:41 ip-172-31-17-226 udevadm[2419]: --type=failed is deprecated and will be removed from a future udev release. Jul 4 05:29:41 ip-172-31-17-226 ec2net: [ec2ifscan] Scanning for unconfigured interfaces Jul 4 05:29:42 ip-172-31-17-226 dhclient[2213]: XMT: Solicit on eth0, interval 2080ms. Jul 4 05:29:43 ip-172-31-17-226 hibinit-agent: Instance Launch has not enabled Hibernation Configured Flag. hibinit-agent exiting!! Jul 4 05:29:43 ip-172-31-17-226 acpid: exiting Jul 4 05:29:43 ip-172-31-17-226 acpid: starting up with netlink and the input layer Jul 4 05:29:43 ip-172-31-17-226 acpid: skipping incomplete file /etc/acpi/events/videoconf Jul 4 05:29:43 ip-172-31-17-226 acpid: 2 rules loaded Jul 4 05:29:43 ip-172-31-17-226 acpid: waiting for events: event logging is off Jul 4 05:29:43 ip-172-31-17-226 ntpd[2572]: ntpd 4.2.8p12@1.3728-o Fri May 3 15:36:34 UTC 2019 (1): Starting Jul 4 05:29:43 ip-172-31-17-226 ntpd[2572]: Command line: ntpd -u ntp:ntp -p /var/run/ntpd.pid -g Jul 4 05:29:43 ip-172-31-17-226 ntpd[2574]: proto: precision = 0.625 usec (-21) Jul 4 05:29:43 ip-172-31-17-226 ntpd[2574]: Listen and drop on 0 v4wildcard 0.0.0.0:123 Jul 4 05:29:43 ip-172-31-17-226 ntpd[2574]: Listen normally on 1 lo 127.0.0.1:123 Jul 4 05:29:43 ip-172-31-17-226 ntpd[2574]: Listen normally on 2 eth0 172.31.17.226:123 Jul 4 05:29:43 ip-172-31-17-226 ntpd[2574]: Listening on routing socket on fd #19 for interface updates Jul 4 05:29:43 ip-172-31-17-226 ntpd[2574]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized Jul 4 05:29:43 ip-172-31-17-226 ntpd[2574]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44Z] Started EB User Data Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: + SLEEP_TIME=10 Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: + SLEEP_TIME_MAX=3600 Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: + true Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: + curl https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/UserDataScript.sh Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: % Total % Received % Xferd Average Speed Time Time Time Current Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: Dload Upload Total Spent Left Speed Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: #015 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0#015100 12536 100 12536 0 0 322k 0 --:--:-- --:--:-- --:--:-- 330k Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: + RESULT=0 Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: + [[ 0 -ne 0 ]] Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.266Z] Started EB Bootstrapping Script. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.309Z] Received parameters: Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: RPMS = https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/aws-elasticbeanstalk-tools-1.20-1.noarch.rpm Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: TARBALLS = https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/awseb-ruby-2.2.4-x86_64-20160503_1008.tar.gz https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/basehooks.tar.gz Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: + /bin/bash /tmp/ebbootstrap.sh https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/aws-elasticbeanstalk-tools-1.20-1.noarch.rpm 'https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/awseb-ruby-2.2.4-x86_64-20160503_1008.tar.gz https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/basehooks.tar.gz' 'https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-2.12.gem https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-healthd-1.1.gem https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/executor-1.2.gem' 'https://c Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: EB_GEMS = https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-2.12.gem https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-healthd-1.1.gem https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/executor-1.2.gem Jul 4 05:29:44 ip-172-31-17-226 ntpd[2574]: ntpd exiting on signal 15 (Terminated) Jul 4 05:29:44 ip-172-31-17-226 ntpd[2574]: 169.254.169.123 local addr 172.31.17.226 -> Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: loudformation-waitcondition-us-east-1.s3.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A825148403966%3Astack/awseb-e-nrncavevhv-stack/9312b360-9e1c-11e9-8002-0a62acea77ae/AWSEBInstanceLaunchWaitHandle?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190704T052841Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86399&X-Amz-Credential=AKIAIIT3CWAIMJYUTISA%2F20190704%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=4546508d0e071fe06e86df149605ad3694ab89388e4c1478679060db5ccb8d6d' arn:aws:cloudformation:us-east-1:825148403966:stack/awseb-e-nrncavevhv-stack/9312b360-9e1c-11e9-8002-0a62acea77ae us-east-1 dbc9b135b190 1b9ec7da-82c8-4767-a4e7-aad9513ad158 '' apache '' Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: SIGNAL_URL = https://cloudformation-waitcondition-us-east-1.s3.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A825148403966%3Astack/awseb-e-nrncavevhv-stack/9312b360-9e1c-11e9-8002-0a62acea77ae/AWSEBInstanceLaunchWaitHandle?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190704T052841Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86399&X-Amz-Credential=AKIAIIT3CWAIMJYUTISA%2F20190704%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=4546508d0e071fe06e86df149605ad3694ab89388e4c1478679060db5ccb8d6d Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: STACK_ID = arn:aws:cloudformation:us-east-1:825148403966:stack/awseb-e-nrncavevhv-stack/9312b360-9e1c-11e9-8002-0a62acea77ae Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: REGION = us-east-1 Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: GUID = dbc9b135b190 Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: HEALTHD_GROUP_ID = 1b9ec7da-82c8-4767-a4e7-aad9513ad158 Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: HEALTHD_ENDPOINT = Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: PROXY_SERVER = apache Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: HEALTHD_PROXY_LOG_LOCATION = Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.324Z] Synchronizing network time in background. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.359Z] yum repo has already been locked to dbc9b135b190. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.363Z] yum update has already been done. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: Shutting down ntpd: [2019-07-04T05:29:44.432Z] Completed creating AWS EB users and groups. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.440Z] Started executing install_rpms https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/aws-elasticbeanstalk-tools-1.20-1.noarch.rpm. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.445Z] Installing RPM: https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/aws-elasticbeanstalk-tools-1.20-1.noarch.rpm. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [ OK ]#015 Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.552Z] aws-elasticbeanstalk-tools-1.20-1.noarch has already been installed. Skip installing. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.559Z] Command Returned: Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.563Z] Completed executing install_rpms. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.568Z] Started executing install_tarballs https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/awseb-ruby-2.2.4-x86_64-20160503_1008.tar.gz https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/basehooks.tar.gz. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.585Z] Installing tarball: https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/awseb-ruby-2.2.4-x86_64-20160503_1008.tar.gz. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.587Z] awseb-ruby-2.2.4-x86_64-20160503_1008.tar.gz has already been installed. Skip installing. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.589Z] Installing tarball: https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/basehooks.tar.gz. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.654Z] Command Returned: Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: 2019-07-04 05:29:44 URL:https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/basehooks.tar.gz [5896/5896] -> "/tmp/basehooks.tar.gz" [1] Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.668Z] Completed executing install_tarballs. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.670Z] Started executing install_eb_gems https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-2.12.gem https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-healthd-1.1.gem https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/executor-1.2.gem. Jul 4 05:29:44 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:44.709Z] Installing EB Gem: https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-2.12.gem. Jul 4 05:29:44 ip-172-31-17-226 dhclient[2213]: XMT: Solicit on eth0, interval 4260ms. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.004Z] beanstalk-core-2.12 has already been installed. Skip installing. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.011Z] Installing EB Gem: https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/beanstalk-core-healthd-1.1.gem. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.186Z] beanstalk-core-healthd-1.1 has already been installed. Skip installing. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.193Z] Installing EB Gem: https://s3.dualstack.us-east-1.amazonaws.com/elasticbeanstalk-env-resources-us-east-1/stalks/eb_tomcat_4.0.1.202048.0_1560646799/lib/executor-1.2.gem. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.367Z] executor-1.2 has already been installed. Skip installing. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.373Z] Command Returned: Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.378Z] Completed executing install_eb_gems. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.383Z] Starting healthd Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: initctl: Unknown instance: Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: healthd start/running, process 2759 Jul 4 05:29:45 ip-172-31-17-226 su: (to healthd) root on none Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.606Z] First init of instance. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.614Z] Started executing cfn_init _OnInstanceBoot first_init. Jul 4 05:29:45 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:45.626Z] Running cfn-init ConfigSet: _OnInstanceBoot. Jul 4 05:29:46 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:46.449Z] Command Returned: Jul 4 05:29:46 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:46.453Z] Completed executing cfn_init. Jul 4 05:29:46 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:46.535Z] Check whether controlled by launch workflow... Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.039Z] Worflow running. Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.043Z] Workflow controlled instance. Running container provisioning... Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.052Z] Started executing start_cfn_hup. Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.061Z] Starting cfn-hup. Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.074Z] Command Returned: cfn-hup start/running, process 2837 Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.082Z] Completed executing start_cfn_hup. Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.094Z] Started executing run_eb_command { "api_version" : "1.0", "request_id": "0", "command_name": "CMD-PreInit" } . Jul 4 05:29:47 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.106Z] Running EB Command: { "api_version" : "1.0", "request_id": "0", "command_name": "CMD-PreInit" } . Jul 4 05:29:48 ip-172-31-17-226 yum[2861]: Installed: aws-cli-plugin-cloudwatch-logs-1.4.4-1.16.amzn1.noarch Jul 4 05:29:49 ip-172-31-17-226 dhclient[2213]: XMT: Solicit on eth0, interval 8470ms. Jul 4 05:29:49 ip-172-31-17-226 yum[2861]: Installed: awslogs-1.1.4-1.12.amzn1.noarch Jul 4 05:29:52 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:52.502Z] Command Returned: {"status":"SUCCESS","api_version":"1.0","results":[{"status":"SUCCESS","msg":"","returncode":0,"events":[]}]} Jul 4 05:29:52 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:52.514Z] Completed executing run_eb_command. Jul 4 05:29:52 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:52.516Z] Successfully bootstrapped instance. Jul 4 05:29:52 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:52.622Z] Sending signal 0 to CFN wait condition https://cloudformation-waitcondition-us-east-1.s3.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A825148403966%3Astack/awseb-e-nrncavevhv-stack/9312b360-9e1c-11e9-8002-0a62acea77ae/AWSEBInstanceLaunchWaitHandle?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190704T052841Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86399&X-Amz-Credential=AKIAIIT3CWAIMJYUTISA%2F20190704%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=4546508d0e071fe06e86df149605ad3694ab89388e4c1478679060db5ccb8d6d Jul 4 05:29:52 ip-172-31-17-226 [eb-cfn-init]: CloudFormation signaled successfully with SUCCESS. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:53.002Z] Tailing /var/log/eb-commandprocessor.log Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: ******************* eb-commandprocessor taillog ******************* Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.409Z] DEBUG [2847] : Reading config file: /etc/elasticbeanstalk/.aws-eb-stack.properties Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.410Z] DEBUG [2847] : Checking if the command processor should execute... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] DEBUG [2847] : Checking whether the command is applicable to instance (i-0297856d09027860c).. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] INFO [2847] : Command is applicable to this instance (i-0297856d09027860c).. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] DEBUG [2847] : Checking if the received command stage is valid.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + exit 0 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] INFO [2847] : No stage_num in command. Valid stage.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] INFO [2847] : Received command CMD-PreInit: {"api_version"=>"1.0", "request_id"=>"0", "command_name"=>"CMD-PreInit"} Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] INFO [2847] : Command processor should execute command. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] DEBUG [2847] : Storing current stage.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] DEBUG [2847] : Stage_num does not exist. Not saving null stage. Returning.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] DEBUG [2847] : Reading config file: /etc/elasticbeanstalk/.aws-eb-stack.properties Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.415Z] DEBUG [2847] : Retrieving metadata for key: AWS::ElasticBeanstalk::Ext||_ContainerConfigFileContent||commands.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.416Z] DEBUG [2847] : Retrieving metadata for key: AWS::ElasticBeanstalk::Ext||_API||_Commands.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.416Z] INFO [2847] : Found enabled addons: ["logstreaming", "logpublish"]. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.417Z] INFO [2847] : Updating Command definition of addon logstreaming. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.417Z] INFO [2847] : Updating Command definition of addon logpublish. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.417Z] DEBUG [2847] : Refreshing metadata... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.422Z] DEBUG [2847] : Using cached environment metadata. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.422Z] INFO [2847] : Recreated directory /opt/elasticbeanstalk/deploy/configuration/. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.422Z] DEBUG [2847] : Retrieving metadata for key: AWS::ElasticBeanstalk::Ext||_AppSourceUrlFileContent||url.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.423Z] INFO [2847] : Created appsource url file at /opt/elasticbeanstalk/deploy/configuration/appsourceurl. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.423Z] DEBUG [2847] : Retrieving metadata for key: AWS::ElasticBeanstalk::Ext||_ContainerConfigFileContent.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.424Z] INFO [2847] : Created container config file at /opt/elasticbeanstalk/deploy/configuration/containerconfiguration. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.424Z] DEBUG [2847] : Retrieving metadata for key: AWS::ElasticBeanstalk::Ext||_ContainerConfigFileContent||commands.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.425Z] DEBUG [2847] : Retrieving metadata for key: AWS::ElasticBeanstalk::Ext||_API||_Commands.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.426Z] INFO [2847] : Found enabled addons: ["logstreaming", "logpublish"]. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.430Z] INFO [2847] : Updating Command definition of addon logstreaming. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.430Z] INFO [2847] : Updating Command definition of addon logpublish. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.430Z] DEBUG [2847] : Retrieving metadata for key: AWS::CloudFormation::Init||Infra-WriteApplication2||files.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.431Z] DEBUG [2847] : Retrieving metadata for key: AWS::ElasticBeanstalk::Ext||ManifestFileS3Key.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.685Z] INFO [2847] : Finding latest manifest from bucket 'elasticbeanstalk-us-east-1-825148403966' with prefix 'resources/environments/e-nrncavevhv/_runtime/versions/manifest_'. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.779Z] INFO [2847] : Found manifest with key 'resources/environments/e-nrncavevhv/_runtime/versions/manifest_1562218117030'. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.789Z] INFO [2847] : Updated manifest cache: deployment ID 1 and serial 1. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.789Z] DEBUG [2847] : Loaded definition of Command CMD-PreInit. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.790Z] INFO [2847] : Executing Initialization Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.790Z] INFO [2847] : Executing command: CMD-PreInit... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.790Z] INFO [2847] : Executing command CMD-PreInit activities... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.790Z] DEBUG [2847] : Setting environment variables.. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:47.790Z] INFO [2847] : Running AddonsBefore for command CMD-PreInit... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:50.014Z] DEBUG [2847] : Running stages of Command CMD-PreInit from stage 0 to stage 0... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:50.014Z] INFO [2847] : Running stage 0 of command CMD-PreInit... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:50.014Z] DEBUG [2847] : Loaded 2 actions for stage 0. Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:50.014Z] INFO [2847] : Running 1 of 2 actions: DownloadSourceBundle... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:51.110Z] INFO [2847] : Running 2 of 2 actions: PreInitHook... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:52.488Z] INFO [2847] : Running AddonsAfter for command CMD-PreInit... Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:52.488Z] INFO [2847] : Command CMD-PreInit succeeded! Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:52.488Z] INFO [2847] : Command processor returning results: Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: {"status":"SUCCESS","api_version":"1.0","results":[{"status":"SUCCESS","msg":"","returncode":0,"events":[]}]} Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: ******************* End of taillog ******************* Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: [2019-07-04T05:29:53.025Z] Tailing /var/log/eb-activity.log Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: ******************* eb-activity taillog ******************* Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: ++ /opt/elasticbeanstalk/bin/get-config container -k tomcat_version Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + TOMCAT_VERSION=8.5 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + '[' 8.5 == 8.5 ']' Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + TOMCAT_VERSION=8 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + TOMCAT_NAME=tomcat8 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + TOMCAT_HOME=/usr/share/tomcat8 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + TOMCAT_CONF_HOME=/etc/tomcat8 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + SET_LIMIT_SH=/etc/elasticbeanstalk/set-ulimit.sh Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + echo 'Patching Tomcat 8 startup scripts' Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Patching Tomcat 8 startup scripts Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + '[' -f /opt/elasticbeanstalk/containerfiles/tomcat-elasticbeanstalk ']' Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + echo 'Installing tomcat-elasticbeanstalk script' Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Installing tomcat-elasticbeanstalk script Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + /bin/mv /opt/elasticbeanstalk/containerfiles/tomcat-elasticbeanstalk /usr/sbin Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + /bin/chown root:root /usr/sbin/tomcat-elasticbeanstalk Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + /bin/chmod 755 /usr/sbin/tomcat-elasticbeanstalk Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + echo 'Fixing Tomcat 8 init.d script' Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Fixing Tomcat 8 init.d script Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + /bin/sed -i -e 's/\/usr\/sbin\/tomcat8/\/usr\/sbin\/tomcat-elasticbeanstalk/g' /etc/init.d/tomcat8 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + grep -q /etc/elasticbeanstalk/set-ulimit.sh Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + cat /etc/init.d/tomcat8 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + sed -i '/function start() {/a \ \ \ if [ -f /etc/elasticbeanstalk/set-ulimit.sh ]; then . /etc/elasticbeanstalk/set-ulimit.sh; fi' /etc/init.d/tomcat8 Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + echo 'Adding X-Forwarded-Proto valve' Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Adding X-Forwarded-Proto valve Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + /bin/sed -i -e '/<\/Host>/ i\ Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: ' /etc/tomcat8/server.xml Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + echo 'Setting UTF-8 support' Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: Setting UTF-8 support Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + grep -q 'Elastic Beanstalk' /etc/tomcat8/server.xml Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + sed -i '1 a\' /etc/tomcat8/server.xml Jul 4 05:29:53 ip-172-31-17-226 [eb-cfn-init]: + sed -i 's/ 4.0.0 com.in28minutes.springboot.web 03-spring-boot-web-application-h2 0.0.1-SNAPSHOT war Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.1.0.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime org.springframework.boot spring-boot-starter-security javax.servlet jstl org.webjars bootstrap 3.3.6 org.webjars bootstrap-datepicker 1.0.1 org.webjars jquery 1.9.1 org.apache.tomcat.embed tomcat-embed-jasper provided org.springframework.boot spring-boot-starter-tomcat provided org.springframework.boot spring-boot-devtools runtime org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin spring-milestones Spring Milestones https://repo.spring.io/milestones spring-milestones Spring Milestones https://repo.spring.io/milestones ================================================ FILE: 03-spring-boot-web-application-h2/readme.md ================================================ # Todo Web Application using Spring Boot and H2 In memory database Run com.in28minutes.springboot.web.SpringBootFirstWebApplication as a Java Application. Runs on default port of Spring Boot - 8080 ## Can be run as a Jar or a WAR `mvn clean install` generate a war which can deployed to your favorite web server. We will deploy to Cloud as a WAR ## Web Application - http://localhost:8080/login with in28minutes/dummy as credentials - You can add, delete and update your todos - Spring Security is used to secure the application - `com.in28minutes.springboot.web.security.SecurityConfiguration` contains the in memory security credential configuration. ## H2 Console - http://localhost:8080/h2-console - Use `jdbc:h2:mem:testdb` as JDBC URL ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/EnvironmentConfigurationLogger.java ================================================ package com.in28minutes.springboot.web; import java.util.Arrays; import java.util.stream.StreamSupport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.env.AbstractEnvironment; import org.springframework.core.env.EnumerablePropertySource; import org.springframework.core.env.Environment; import org.springframework.core.env.MutablePropertySources; import org.springframework.stereotype.Component; @Component public class EnvironmentConfigurationLogger { private static final Logger LOGGER = LoggerFactory.getLogger(EnvironmentConfigurationLogger.class); @EventListener public void handleContextRefresh(ContextRefreshedEvent event) { final Environment environment = event.getApplicationContext().getEnvironment(); LOGGER.info("====== Environment and configuration ======"); LOGGER.info("Active profiles: {}", Arrays.toString(environment.getActiveProfiles())); final MutablePropertySources sources = ((AbstractEnvironment) environment).getPropertySources(); StreamSupport.stream(sources.spliterator(), false).filter(ps -> ps instanceof EnumerablePropertySource) .map(ps -> ((EnumerablePropertySource) ps).getPropertyNames()).flatMap(Arrays::stream).distinct() .forEach(prop -> LOGGER.info("{}", prop));// environment.getProperty(prop) LOGGER.info("==========================================="); } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/SpringBootFirstWebApplication.java ================================================ package com.in28minutes.springboot.web; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan("com.in28minutes.springboot.web") public class SpringBootFirstWebApplication extends SpringBootServletInitializer { // AWS @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(SpringBootFirstWebApplication.class); } public static void main(String[] args) { SpringApplication.run(SpringBootFirstWebApplication.class, args); } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/controller/ErrorController.java ================================================ package com.in28minutes.springboot.web.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; @Controller("error") public class ErrorController { @ExceptionHandler(Exception.class) public ModelAndView handleException (HttpServletRequest request, Exception ex){ ModelAndView mv = new ModelAndView(); mv.addObject("exception", ex.getLocalizedMessage()); mv.addObject("url", request.getRequestURL()); mv.setViewName("error"); return mv; } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/controller/LogoutController.java ================================================ package com.in28minutes.springboot.web.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class LogoutController { @RequestMapping(value = "/logout", method = RequestMethod.GET) public String logout(HttpServletRequest request, HttpServletResponse response) { Authentication authentication = SecurityContextHolder.getContext() .getAuthentication(); if (authentication != null) { new SecurityContextLogoutHandler().logout(request, response, authentication); } return "redirect:/"; } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/controller/TodoController.java ================================================ package com.in28minutes.springboot.web.controller; import java.text.SimpleDateFormat; import java.util.Date; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.in28minutes.springboot.web.model.Todo; import com.in28minutes.springboot.web.service.TodoRepository; @Controller public class TodoController { @Autowired TodoRepository repository; @InitBinder public void initBinder(WebDataBinder binder) { // Date - dd/MM/yyyy SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); binder.registerCustomEditor(Date.class, new CustomDateEditor( dateFormat, false)); } @RequestMapping(value = "/list-todos", method = RequestMethod.GET) public String showTodos(ModelMap model) { String name = getLoggedInUserName(model); model.put("todos", repository.findByUser(name)); //model.put("todos", service.retrieveTodos(name)); return "list-todos"; } private String getLoggedInUserName(ModelMap model) { Object principal = SecurityContextHolder.getContext() .getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { return ((UserDetails) principal).getUsername(); } return principal.toString(); } @RequestMapping(value = "/add-todo", method = RequestMethod.GET) public String showAddTodoPage(ModelMap model) { model.addAttribute("todo", new Todo(0, getLoggedInUserName(model), "Default Desc", new Date(), false)); return "todo"; } @RequestMapping(value = "/delete-todo", method = RequestMethod.GET) public String deleteTodo(@RequestParam int id) { //if(id==1) //throw new RuntimeException("Something went wrong"); repository.deleteById(id); //service.deleteTodo(id); return "redirect:/list-todos"; } @RequestMapping(value = "/update-todo", method = RequestMethod.GET) public String showUpdateTodoPage(@RequestParam int id, ModelMap model) { Todo todo = repository.findById(id).get(); //Todo todo = service.retrieveTodo(id); model.put("todo", todo); return "todo"; } @RequestMapping(value = "/update-todo", method = RequestMethod.POST) public String updateTodo(ModelMap model, @Valid Todo todo, BindingResult result) { if (result.hasErrors()) { return "todo"; } todo.setUser(getLoggedInUserName(model)); repository.save(todo); //service.updateTodo(todo); return "redirect:/list-todos"; } @RequestMapping(value = "/add-todo", method = RequestMethod.POST) public String addTodo(ModelMap model, @Valid Todo todo, BindingResult result) { if (result.hasErrors()) { return "todo"; } todo.setUser(getLoggedInUserName(model)); repository.save(todo); /*service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(), false);*/ return "redirect:/list-todos"; } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/controller/WelcomeController.java ================================================ package com.in28minutes.springboot.web.controller; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class WelcomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String showWelcomePage(ModelMap model) { model.put("name", getLoggedinUserName()); return "welcome"; } private String getLoggedinUserName() { Object principal = SecurityContextHolder.getContext() .getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { return ((UserDetails) principal).getUsername(); } return principal.toString(); } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/model/Todo.java ================================================ package com.in28minutes.springboot.web.model; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.validation.constraints.Size; @Entity public class Todo { @Id @GeneratedValue private int id; private String user; @Size(min=10, message="Enter at least 10 Characters...") private String desc; private Date targetDate; private boolean isDone; public Todo() { super(); } public Todo(int id, String user, String desc, Date targetDate, boolean isDone) { super(); this.id = id; this.user = user; this.desc = desc; this.targetDate = targetDate; this.isDone = isDone; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public Date getTargetDate() { return targetDate; } public void setTargetDate(Date targetDate) { this.targetDate = targetDate; } public boolean isDone() { return isDone; } public void setDone(boolean isDone) { this.isDone = isDone; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Todo other = (Todo) obj; if (id != other.id) { return false; } return true; } @Override public String toString() { return String.format( "Todo [id=%s, user=%s, desc=%s, targetDate=%s, isDone=%s]", id, user, desc, targetDate, isDone); } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/security/SecurityConfiguration.java ================================================ package com.in28minutes.springboot.web.security; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter{ //Create User - in28Minutes/dummy @Autowired public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser("in28minutes").password("{noop}dummy") .roles("USER", "ADMIN"); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().antMatchers("/login", "/h2-console/**").permitAll() .antMatchers("/", "/*todo*/**").access("hasRole('USER')").and() .formLogin(); http.csrf().disable(); http.headers().frameOptions().disable(); } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java ================================================ package com.in28minutes.springboot.web.service; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import com.in28minutes.springboot.web.model.Todo; public interface TodoRepository extends JpaRepository{ List findByUser(String user); //service.retrieveTodos(name) //service.deleteTodo(id); //service.retrieveTodo(id) //service.updateTodo(todo) //service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(),false); } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/java/com/in28minutes/springboot/web/service/TodoService.java ================================================ package com.in28minutes.springboot.web.service; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.springframework.stereotype.Service; import com.in28minutes.springboot.web.model.Todo; @Service public class TodoService { private static List todos = new ArrayList(); private static int todoCount = 3; static { todos.add(new Todo(1, "in28minutes", "Learn Spring MVC", new Date(), false)); todos.add(new Todo(2, "in28minutes", "Learn Struts", new Date(), false)); todos.add(new Todo(3, "in28minutes", "Learn Hibernate", new Date(), false)); } public List retrieveTodos(String user) { List filteredTodos = new ArrayList(); for (Todo todo : todos) { if (todo.getUser().equalsIgnoreCase(user)) { filteredTodos.add(todo); } } return filteredTodos; } public Todo retrieveTodo(int id) { for (Todo todo : todos) { if (todo.getId()==id) { return todo; } } return null; } public void updateTodo(Todo todo){ todos.remove(todo); todos.add(todo); } public void addTodo(String name, String desc, Date targetDate, boolean isDone) { todos.add(new Todo(++todoCount, name, desc, targetDate, isDone)); } public void deleteTodo(int id) { Iterator iterator = todos.iterator(); while (iterator.hasNext()) { Todo todo = iterator.next(); if (todo.getId() == id) { iterator.remove(); } } } } ================================================ FILE: 03-spring-boot-web-application-h2/src/main/resources/application.properties ================================================ spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp logging.level.org.springframework.web=INFO spring.jpa.show-sql=true spring.h2.console.enabled=true #spring.h2.console.settings.web-allow-others=true ================================================ FILE: 03-spring-boot-web-application-h2/src/main/resources/data.sql ================================================ insert into TODO values(10001, 'Learn Spring Boot', false, sysdate(), 'in28minutes'); insert into TODO values(10002, 'Learn Angular JS', false, sysdate(), 'in28minutes'); insert into TODO values(10003, 'Learn to Dance', false, sysdate(), 'in28minutes'); ================================================ FILE: 03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/common/footer.jspf ================================================ ================================================ FILE: 03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/common/header.jspf ================================================ <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> First Web Application ================================================ FILE: 03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/common/navigation.jspf ================================================ ================================================ FILE: 03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/error.jsp ================================================ <%@ include file="common/header.jspf"%> <%@ include file="common/navigation.jspf"%>
An exception occurred! Please contact Support!
<%@ include file="common/footer.jspf"%> ================================================ FILE: 03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/list-todos.jsp ================================================ <%@ include file="common/header.jspf" %> <%@ include file="common/navigation.jspf" %>
Your todos are
Description Target Date Is it Done?
${todo.desc} ${todo.done} Update Delete
<%@ include file="common/footer.jspf" %> ================================================ FILE: 03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/todo.jsp ================================================ <%@ include file="common/header.jspf" %> <%@ include file="common/navigation.jspf" %>
Description
Target Date
<%@ include file="common/footer.jspf" %> ================================================ FILE: 03-spring-boot-web-application-h2/src/main/webapp/WEB-INF/jsp/welcome.jsp ================================================ <%@ include file="common/header.jspf"%> <%@ include file="common/navigation.jspf"%>
Welcome ${name}!! Click here to manage your todo's.
<%@ include file="common/footer.jspf"%> ================================================ FILE: 03-spring-boot-web-application-h2/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java ================================================ package com.in28minutes.springboot.web; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class SpringBootFirstWebApplicationTests { @Test public void contextLoads() { } } ================================================ FILE: 04-spring-boot-web-application-mysql/build-artifacts-backup/04-spring-boot-web-application-mysql-0.0.1-SNAPSHOT.war ================================================ [File too large to display: 40.4 MB] ================================================ FILE: 04-spring-boot-web-application-mysql/pom.xml ================================================ 4.0.0 com.in28minutes.springboot.web 04-spring-boot-web-application-mysql 0.0.1-SNAPSHOT war Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.1.0.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 test mysql mysql-connector-java 8.0.22 org.springframework.boot spring-boot-starter-security javax.servlet jstl org.webjars bootstrap 3.3.6 org.webjars bootstrap-datepicker 1.0.1 org.webjars jquery 1.9.1 org.apache.tomcat.embed tomcat-embed-jasper provided org.springframework.boot spring-boot-starter-tomcat provided org.springframework.boot spring-boot-devtools runtime org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin spring-milestones Spring Milestones https://repo.spring.io/milestones spring-milestones Spring Milestones https://repo.spring.io/milestones ================================================ FILE: 04-spring-boot-web-application-mysql/readme.md ================================================ # Todo Web Application using Spring Boot and MySQL as Database Run com.in28minutes.springboot.web.SpringBootFirstWebApplication as a Java Application. Runs on default port of Spring Boot - 8080 Application uses h2 database to run the tests. ## Can be run as a Jar or a WAR `mvn clean install` generate a war which can deployed to your favorite web server. We will deploy to Cloud as a WAR ## Web Application - http://localhost:8080/login with in28minutes/dummy as credentials - You can add, delete and update your todos - Spring Security is used to secure the application - `com.in28minutes.springboot.web.security.SecurityConfiguration` contains the in memory security credential configuration. ## Changes from H2 Application #### pom.xml ``` com.h2database h2 test mysql mysql-connector-java ``` #### src/main/resources/application.properties ``` #spring.h2.console.enabled=true #spring.h2.console.settings.web-allow-others=true spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://${RDS_HOSTNAME:localhost}:${RDS_PORT:3306}/${RDS_DB_NAME:todos} spring.datasource.username=${RDS_USERNAME:todos-user} spring.datasource.password=${RDS_PASSWORD:dummytodos} spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect ``` #### src/test/resources/application.properties ``` spring.jpa.hibernate.ddl-auto=create-drop spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 spring.datasource.username=sa spring.datasource.password=sa ``` #### public class Todo ``` @Size(min=10, message="Enter at least 10 Characters...") @Column(name="description") private String desc; ``` ## My SQL ### Launching MySQL using Docker ``` docker run --detach --env MYSQL_ROOT_PASSWORD=dummypassword --env MYSQL_USER=todos-user --env MYSQL_PASSWORD=dummytodos --env MYSQL_DATABASE=todos --name mysql --publish 3306:3306 mysql:5.7 ``` ### My SQL Shell Client - https://dev.mysql.com/downloads/shell/ - Install on mac using `brew install caskroom/cask/mysql-shell`. ``` Rangas-MacBook-Air:aws-projects rangakaranam$ mysqlsh MySQL Shell 8.0.15 Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type '\help' or '\?' for help; '\quit' to exit. MySQL JS > \connect todos-user@localhost:3306 Creating a session to 'todos-user@localhost:3306' Please provide the password for 'todos-user@localhost:3306': Save password for 'todos-user@localhost:3306'? [Y]es/[N]o/Ne[v]er (default No): v Fetching schema names for autocompletion... Press ^C to stop. Your MySQL connection id is 37 Server version: 5.7.26 MySQL Community Server (GPL) No default schema selected; type \use to set one. MySQL localhost:3306 ssl JS > \sql Switching to SQL mode... Commands end with ; MySQL localhost:3306 ssl SQL > use todos Default schema set to `todos`. Fetching table and column names from `todos` for auto-completion... Press ^C to stop. MySQL localhost:3306 ssl todos SQL > select * from todo ; +----+--------------+---------+----------------------------+-------------+ | id | description | is_done | target_date | user | +----+--------------+---------+----------------------------+-------------+ | 1 | Default Desc | 0 | 2019-06-26 18:30:00.000000 | in28minutes | +----+--------------+---------+----------------------------+-------------+ 1 row in set (0.0032 sec) ``` ### Create Todo Table for Production ``` create table hibernate_sequence (next_val bigint) engine=InnoDB insert into hibernate_sequence values ( 1 ) create table todo (id integer not null, description varchar(255), is_done bit not null, target_date datetime(6), user varchar(255), primary key (id)) engine=InnoDB ``` ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/EnvironmentConfigurationLogger.java ================================================ package com.in28minutes.springboot.web; import java.util.Arrays; import java.util.stream.StreamSupport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.env.AbstractEnvironment; import org.springframework.core.env.EnumerablePropertySource; import org.springframework.core.env.Environment; import org.springframework.core.env.MutablePropertySources; import org.springframework.stereotype.Component; @Component public class EnvironmentConfigurationLogger { private static final Logger LOGGER = LoggerFactory.getLogger(EnvironmentConfigurationLogger.class); @EventListener public void handleContextRefresh(ContextRefreshedEvent event) { final Environment environment = event.getApplicationContext().getEnvironment(); LOGGER.info("====== Environment and configuration ======"); LOGGER.info("Active profiles: {}", Arrays.toString(environment.getActiveProfiles())); final MutablePropertySources sources = ((AbstractEnvironment) environment).getPropertySources(); StreamSupport.stream(sources.spliterator(), false).filter(ps -> ps instanceof EnumerablePropertySource) .map(ps -> ((EnumerablePropertySource) ps).getPropertyNames()).flatMap(Arrays::stream).distinct() .forEach(prop -> LOGGER.info("{}", prop));// environment.getProperty(prop) LOGGER.info("==========================================="); } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/SpringBootFirstWebApplication.java ================================================ package com.in28minutes.springboot.web; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan("com.in28minutes.springboot.web") public class SpringBootFirstWebApplication extends SpringBootServletInitializer { // AWS @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(SpringBootFirstWebApplication.class); } public static void main(String[] args) { SpringApplication.run(SpringBootFirstWebApplication.class, args); } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/controller/ErrorController.java ================================================ package com.in28minutes.springboot.web.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; @Controller("error") public class ErrorController { @ExceptionHandler(Exception.class) public ModelAndView handleException (HttpServletRequest request, Exception ex){ ModelAndView mv = new ModelAndView(); mv.addObject("exception", ex.getLocalizedMessage()); mv.addObject("url", request.getRequestURL()); mv.setViewName("error"); return mv; } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/controller/LogoutController.java ================================================ package com.in28minutes.springboot.web.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class LogoutController { @RequestMapping(value = "/logout", method = RequestMethod.GET) public String logout(HttpServletRequest request, HttpServletResponse response) { Authentication authentication = SecurityContextHolder.getContext() .getAuthentication(); if (authentication != null) { new SecurityContextLogoutHandler().logout(request, response, authentication); } return "redirect:/"; } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/controller/TodoController.java ================================================ package com.in28minutes.springboot.web.controller; import java.text.SimpleDateFormat; import java.util.Date; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import com.in28minutes.springboot.web.model.Todo; import com.in28minutes.springboot.web.service.TodoRepository; @Controller public class TodoController { @Autowired TodoRepository repository; @InitBinder public void initBinder(WebDataBinder binder) { // Date - dd/MM/yyyy SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); binder.registerCustomEditor(Date.class, new CustomDateEditor( dateFormat, false)); } @RequestMapping(value = "/list-todos", method = RequestMethod.GET) public String showTodos(ModelMap model) { String name = getLoggedInUserName(model); model.put("todos", repository.findByUser(name)); //model.put("todos", service.retrieveTodos(name)); return "list-todos"; } private String getLoggedInUserName(ModelMap model) { Object principal = SecurityContextHolder.getContext() .getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { return ((UserDetails) principal).getUsername(); } return principal.toString(); } @RequestMapping(value = "/add-todo", method = RequestMethod.GET) public String showAddTodoPage(ModelMap model) { model.addAttribute("todo", new Todo(0, getLoggedInUserName(model), "Default Desc", new Date(), false)); return "todo"; } @RequestMapping(value = "/delete-todo", method = RequestMethod.GET) public String deleteTodo(@RequestParam int id) { //if(id==1) //throw new RuntimeException("Something went wrong"); repository.deleteById(id); //service.deleteTodo(id); return "redirect:/list-todos"; } @RequestMapping(value = "/update-todo", method = RequestMethod.GET) public String showUpdateTodoPage(@RequestParam int id, ModelMap model) { Todo todo = repository.findById(id).get(); //Todo todo = service.retrieveTodo(id); model.put("todo", todo); return "todo"; } @RequestMapping(value = "/update-todo", method = RequestMethod.POST) public String updateTodo(ModelMap model, @Valid Todo todo, BindingResult result) { if (result.hasErrors()) { return "todo"; } todo.setUser(getLoggedInUserName(model)); repository.save(todo); //service.updateTodo(todo); return "redirect:/list-todos"; } @RequestMapping(value = "/add-todo", method = RequestMethod.POST) public String addTodo(ModelMap model, @Valid Todo todo, BindingResult result) { if (result.hasErrors()) { return "todo"; } todo.setUser(getLoggedInUserName(model)); repository.save(todo); /*service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(), false);*/ return "redirect:/list-todos"; } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/controller/WelcomeController.java ================================================ package com.in28minutes.springboot.web.controller; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class WelcomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String showWelcomePage(ModelMap model) { model.put("name", getLoggedinUserName()); return "welcome"; } private String getLoggedinUserName() { Object principal = SecurityContextHolder.getContext() .getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { return ((UserDetails) principal).getUsername(); } return principal.toString(); } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/model/Todo.java ================================================ package com.in28minutes.springboot.web.model; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.validation.constraints.Size; @Entity public class Todo { @Id @GeneratedValue private int id; private String user; @Size(min=10, message="Enter at least 10 Characters...") @Column(name="description") private String desc; private Date targetDate; private boolean isDone; public Todo() { super(); } public Todo(int id, String user, String desc, Date targetDate, boolean isDone) { super(); this.id = id; this.user = user; this.desc = desc; this.targetDate = targetDate; this.isDone = isDone; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public Date getTargetDate() { return targetDate; } public void setTargetDate(Date targetDate) { this.targetDate = targetDate; } public boolean isDone() { return isDone; } public void setDone(boolean isDone) { this.isDone = isDone; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Todo other = (Todo) obj; if (id != other.id) { return false; } return true; } @Override public String toString() { return String.format( "Todo [id=%s, user=%s, desc=%s, targetDate=%s, isDone=%s]", id, user, desc, targetDate, isDone); } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/security/SecurityConfiguration.java ================================================ package com.in28minutes.springboot.web.security; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter{ //Create User - in28Minutes/dummy @Autowired public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser("in28minutes").password("{noop}dummy") .roles("USER", "ADMIN"); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().antMatchers("/login", "/h2-console/**").permitAll() .antMatchers("/", "/*todo*/**").access("hasRole('USER')").and() .formLogin(); http.csrf().disable(); http.headers().frameOptions().disable(); } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/service/TodoRepository.java ================================================ package com.in28minutes.springboot.web.service; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import com.in28minutes.springboot.web.model.Todo; public interface TodoRepository extends JpaRepository{ List findByUser(String user); //service.retrieveTodos(name) //service.deleteTodo(id); //service.retrieveTodo(id) //service.updateTodo(todo) //service.addTodo(getLoggedInUserName(model), todo.getDesc(), todo.getTargetDate(),false); } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/java/com/in28minutes/springboot/web/service/TodoService.java ================================================ package com.in28minutes.springboot.web.service; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.springframework.stereotype.Service; import com.in28minutes.springboot.web.model.Todo; @Service public class TodoService { private static List todos = new ArrayList(); private static int todoCount = 3; static { todos.add(new Todo(1, "in28minutes", "Learn Spring MVC", new Date(), false)); todos.add(new Todo(2, "in28minutes", "Learn Struts", new Date(), false)); todos.add(new Todo(3, "in28minutes", "Learn Hibernate", new Date(), false)); } public List retrieveTodos(String user) { List filteredTodos = new ArrayList(); for (Todo todo : todos) { if (todo.getUser().equalsIgnoreCase(user)) { filteredTodos.add(todo); } } return filteredTodos; } public Todo retrieveTodo(int id) { for (Todo todo : todos) { if (todo.getId()==id) { return todo; } } return null; } public void updateTodo(Todo todo){ todos.remove(todo); todos.add(todo); } public void addTodo(String name, String desc, Date targetDate, boolean isDone) { todos.add(new Todo(++todoCount, name, desc, targetDate, isDone)); } public void deleteTodo(int id) { Iterator iterator = todos.iterator(); while (iterator.hasNext()) { Todo todo = iterator.next(); if (todo.getId() == id) { iterator.remove(); } } } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/resources/application.properties ================================================ spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp logging.level.org.springframework.web=INFO spring.jpa.show-sql=true #spring.h2.console.enabled=true #spring.h2.console.settings.web-allow-others=true spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://${RDS_HOSTNAME:localhost}:${RDS_PORT:3306}/${RDS_DB_NAME:todos} spring.datasource.username=${RDS_USERNAME:todos-user} spring.datasource.password=${RDS_PASSWORD:dummytodos} spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect #awseb-e-fiwshfewnw-stack-AWSEBSecurityGroup-8BSA213MNW98 #Security Group: sg-0e0798c5e8e7a2643 -> Web Server Instance #sg-0e0798c5e8e7a2643 - #sg-0e0798c5e8e7a2643 #user name - todostageuser #Database NAme - todos_stage #RDS_HOSTNAME-todostage.cxohavuo1efd.us-east-1.rds.amazonaws.com #RDS_PORT-3306 #RDS_DB_NAME-todos_stage #RDS_USERNAME-todostageuser #RDS_PASSWORD #sg-0d7b7ff6b6a7331cd ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/footer.jspf ================================================ ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/header.jspf ================================================ <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%> First Web Application ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/common/navigation.jspf ================================================ ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/error.jsp ================================================ <%@ include file="common/header.jspf"%> <%@ include file="common/navigation.jspf"%>
An exception occurred! Please contact Support!
<%@ include file="common/footer.jspf"%> ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/list-todos.jsp ================================================ <%@ include file="common/header.jspf" %> <%@ include file="common/navigation.jspf" %>
Your todos are
Description Target Date Is it Done?
${todo.desc} ${todo.done} Update Delete
<%@ include file="common/footer.jspf" %> ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/todo.jsp ================================================ <%@ include file="common/header.jspf" %> <%@ include file="common/navigation.jspf" %>
Description
Target Date
<%@ include file="common/footer.jspf" %> ================================================ FILE: 04-spring-boot-web-application-mysql/src/main/webapp/WEB-INF/jsp/welcome.jsp ================================================ <%@ include file="common/header.jspf"%> <%@ include file="common/navigation.jspf"%>
Welcome ${name}!! Click here to manage your todo's.
<%@ include file="common/footer.jspf"%> ================================================ FILE: 04-spring-boot-web-application-mysql/src/test/java/com/in28minutes/springboot/web/SpringBootFirstWebApplicationTests.java ================================================ package com.in28minutes.springboot.web; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class SpringBootFirstWebApplicationTests { @Test public void contextLoads() { } } ================================================ FILE: 04-spring-boot-web-application-mysql/src/test/resources/application.properties ================================================ spring.jpa.hibernate.ddl-auto=create-drop spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 spring.datasource.username=sa spring.datasource.password=sa ================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/05-restful-web-services-full-stack-bankend-0.0.1-SNAPSHOT.jar ================================================ [File too large to display: 38.2 MB] ================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/build/asset-manifest.json ================================================ { "main.css": "/static/css/main.566e00ae.chunk.css", "main.js": "/static/js/main.85126504.chunk.js", "main.js.map": "/static/js/main.85126504.chunk.js.map", "runtime~main.js": "/static/js/runtime~main.c5541365.js", "runtime~main.js.map": "/static/js/runtime~main.c5541365.js.map", "static/js/2.3f64e426.chunk.js": "/static/js/2.3f64e426.chunk.js", "static/js/2.3f64e426.chunk.js.map": "/static/js/2.3f64e426.chunk.js.map", "index.html": "/index.html", "precache-manifest.fffdf22a71e2cab7bfcc691bf8ce04a4.js": "/precache-manifest.fffdf22a71e2cab7bfcc691bf8ce04a4.js", "service-worker.js": "/service-worker.js", "static/css/main.566e00ae.chunk.css.map": "/static/css/main.566e00ae.chunk.css.map" } ================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/build/index.html ================================================ My Todo Application
================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/build/manifest.json ================================================ { "short_name": "React App", "name": "Create React App Sample", "icons": [ { "src": "favicon.ico", "sizes": "64x64 32x32 24x24 16x16", "type": "image/x-icon" } ], "start_url": ".", "display": "standalone", "theme_color": "#000000", "background_color": "#ffffff" } ================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/build/precache-manifest.fffdf22a71e2cab7bfcc691bf8ce04a4.js ================================================ self.__precacheManifest = [ { "revision": "fdfcfda2d9b1bf31db52", "url": "/static/js/runtime~main.c5541365.js" }, { "revision": "aa849e993541898903d5", "url": "/static/js/main.85126504.chunk.js" }, { "revision": "3be61595d9a1137a984f", "url": "/static/js/2.3f64e426.chunk.js" }, { "revision": "aa849e993541898903d5", "url": "/static/css/main.566e00ae.chunk.css" }, { "revision": "0599a7b1b11b0ef313a773d341260a9e", "url": "/index.html" } ]; ================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/build/service-worker.js ================================================ /** * Welcome to your Workbox-powered service worker! * * You'll need to register this file in your web app and you should * disable HTTP caching for this file too. * See https://goo.gl/nhQhGp * * The rest of the code is auto-generated. Please don't update this file * directly; instead, make changes to your Workbox build configuration * and re-run your build process. * See https://goo.gl/2aRDsh */ importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"); importScripts( "/precache-manifest.fffdf22a71e2cab7bfcc691bf8ce04a4.js" ); workbox.clientsClaim(); /** * The workboxSW.precacheAndRoute() method efficiently caches and responds to * requests for URLs in the manifest. * See https://goo.gl/S9QRab */ self.__precacheManifest = [].concat(self.__precacheManifest || []); workbox.precaching.suppressWarnings(); workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); workbox.routing.registerNavigationRoute("/index.html", { blacklist: [/^\/_/,/\/[^\/]+\.[^\/]+$/], }); ================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/build/static/css/main.566e00ae.chunk.css ================================================ @import url(https://unpkg.com/bootstrap@4.1.0/dist/css/bootstrap.min.css);body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.footer{position:absolute;bottom:0;width:100%;height:40px;background-color:#222}.App{text-align:center}.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite;height:40vmin;pointer-events:none}.App-header{background-color:#282c34;min-height:100vh;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} /*# sourceMappingURL=main.566e00ae.chunk.css.map */ ================================================ FILE: 05-spring-boot-react-full-stack-h2/build-artifacts-backup/build/static/js/2.3f64e426.chunk.js ================================================ (window.webpackJsonp=window.webpackJsonp||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(40)},function(e,t,n){e.exports=n(64)()},function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,"a",function(){return r})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",function(){return r})},function(e,t,n){"use strict";function r(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",n=e&&e.split("/")||[],r=t&&t.split("/")||[],o=e&&u(e),i=t&&u(t),a=o||i;if(e&&u(e)?r=n:n.length&&(r.pop(),r=r.concat(n)),!r.length)return"/";var s=void 0;if(r.length){var c=r[r.length-1];s="."===c||".."===c||""===c}else s=!1;for(var f=0,d=r.length;d>=0;d--){var p=r[d];"."===p?l(r,d):".."===p?(l(r,d),f++):f&&(l(r,d),f--)}if(!a)for(;f--;f)r.unshift("..");!a||""===r[0]||r[0]&&u(r[0])||r.unshift("");var h=r.join("/");return s&&"/"!==h.substr(-1)&&(h+="/"),h},c="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var f=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every(function(t,r){return e(t,n[r])});var r="undefined"===typeof t?"undefined":c(t);if(r!==("undefined"===typeof n?"undefined":c(n)))return!1;if("object"===r){var o=t.valueOf(),i=n.valueOf();if(o!==t||i!==n)return e(o,i);var a=Object.keys(t),u=Object.keys(n);return a.length===u.length&&a.every(function(r){return e(t[r],n[r])})}return!1},d=function(e){return"/"===e.charAt(0)?e:"/"+e},p=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)},h=function(e,t){return p(e,t)?e.substr(t.length):e},m=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},y=function(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o},v=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};a()(w,"Browser history needs a DOM");var t=window.history,n=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history}(),r=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e.forceRefresh,u=void 0!==i&&i,l=e.getUserConfirmation,s=void 0===l?S:l,c=e.keyLength,f=void 0===c?6:c,v=e.basename?m(d(e.basename)):"",b=function(e){var t=e||{},n=t.key,r=t.state,i=window.location,a=i.pathname+i.search+i.hash;return o()(!v||p(a,v),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+a+'" to begin with "'+v+'".'),v&&(a=h(a,v)),g(a,r,n)},E=function(){return Math.random().toString(36).substr(2,f)},P=_(),M=function(e){O(V,e),V.length=t.length,P.notifyListeners(V.location,V.action)},j=function(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(b(e.state))},D=function(){N(b(C()))},R=!1,N=function(e){R?(R=!1,M()):P.confirmTransitionTo(e,"POP",s,function(t){t?M({action:"POP",location:e}):F(e)})},F=function(e){var t=V.location,n=U.indexOf(t.key);-1===n&&(n=0);var r=U.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(R=!0,L(o))},A=b(C()),U=[A.key],Y=function(e){return v+y(e)},L=function(e){t.go(e)},I=0,W=function(e){1===(I+=e)?(k(window,"popstate",j),r&&k(window,"hashchange",D)):0===I&&(x(window,"popstate",j),r&&x(window,"hashchange",D))},z=!1,V={length:t.length,action:"POP",location:A,createHref:Y,push:function(e,r){o()(!("object"===("undefined"===typeof e?"undefined":T(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var i=g(e,r,E(),V.location);P.confirmTransitionTo(i,"PUSH",s,function(e){if(e){var r=Y(i),a=i.key,l=i.state;if(n)if(t.pushState({key:a,state:l},null,r),u)window.location.href=r;else{var s=U.indexOf(V.location.key),c=U.slice(0,-1===s?0:s+1);c.push(i.key),U=c,M({action:"PUSH",location:i})}else o()(void 0===l,"Browser history cannot push state in browsers that do not support HTML5 history"),window.location.href=r}})},replace:function(e,r){o()(!("object"===("undefined"===typeof e?"undefined":T(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var i=g(e,r,E(),V.location);P.confirmTransitionTo(i,"REPLACE",s,function(e){if(e){var r=Y(i),a=i.key,l=i.state;if(n)if(t.replaceState({key:a,state:l},null,r),u)window.location.replace(r);else{var s=U.indexOf(V.location.key);-1!==s&&(U[s]=i.key),M({action:"REPLACE",location:i})}else o()(void 0===l,"Browser history cannot replace state in browsers that do not support HTML5 history"),window.location.replace(r)}})},go:L,goBack:function(){return L(-1)},goForward:function(){return L(1)},block:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=P.setPrompt(e);return z||(W(1),z=!0),function(){return z&&(z=!1,W(-1)),t()}},listen:function(e){var t=P.appendListener(e);return W(1),function(){W(-1),t()}}};return V};Object.assign,"function"===typeof Symbol&&Symbol.iterator,Object.assign;n.d(t,"a",function(){return E}),n.d(t,"b",function(){return g}),n.d(t,"c",function(){return b})},function(e,t,n){"use strict";var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n-1};var C=function(e,t){var n=this.__data__,r=k(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function E(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=ot},at={};at["[object Float32Array]"]=at["[object Float64Array]"]=at["[object Int8Array]"]=at["[object Int16Array]"]=at["[object Int32Array]"]=at["[object Uint8Array]"]=at["[object Uint8ClampedArray]"]=at["[object Uint16Array]"]=at["[object Uint32Array]"]=!0,at["[object Arguments]"]=at["[object Array]"]=at["[object ArrayBuffer]"]=at["[object Boolean]"]=at["[object DataView]"]=at["[object Date]"]=at["[object Error]"]=at["[object Function]"]=at["[object Map]"]=at["[object Number]"]=at["[object Object]"]=at["[object RegExp]"]=at["[object Set]"]=at["[object String]"]=at["[object WeakMap]"]=!1;var ut=function(e){return $e(e)&&it(e.length)&&!!at[$(e)]};var lt=function(e){return function(t){return e(t)}},st=n(14),ct=st.a&&st.a.isTypedArray,ft=ct?lt(ct):ut,dt=Object.prototype.hasOwnProperty;var pt=function(e,t){var n=Je(e),r=!n&&Xe(e),o=!n&&!r&&Object(et.a)(e),i=!n&&!r&&!o&&ft(e),a=n||r||o||i,u=a?Be(e.length,String):[],l=u.length;for(var s in e)!t&&!dt.call(e,s)||a&&("length"==s||o&&("offset"==s||"parent"==s)||i&&("buffer"==s||"byteLength"==s||"byteOffset"==s)||rt(s,l))||u.push(s);return u},ht=Object.prototype;var mt=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ht)};var yt=function(e,t){return function(n){return e(t(n))}},vt=yt(Object.keys,Object),gt=Object.prototype.hasOwnProperty;var bt=function(e){if(!mt(e))return vt(e);var t=[];for(var n in Object(e))gt.call(e,n)&&"constructor"!=n&&t.push(n);return t};var _t=function(e){return null!=e&&it(e.length)&&!X(e)};var wt=function(e){return _t(e)?pt(e):bt(e)};var kt=function(e,t){return e&&He(t,wt(t),e)};var xt=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t},St=Object.prototype.hasOwnProperty;var Tt=function(e){if(!q(e))return xt(e);var t=mt(e),n=[];for(var r in e)("constructor"!=r||!t&&St.call(e,r))&&n.push(r);return n};var Ot=function(e){return _t(e)?pt(e,!0):Tt(e)};var Ct=function(e,t){return e&&He(t,Ot(t),e)},Et=n(38);var Pt=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0?[]:{}}}if((0===a?e:o)[u[a]]===n)return e;void 0===n?delete o[u[a]]:o[u[a]]=n;var f=i({},e,r);return 0===a&&void 0===n&&delete f[u[a]],f}function Tr(e,t,n,r){void 0===n&&(n=new WeakMap),void 0===r&&(r={});for(var o=0,i=Object.keys(e);o0?n.map(function(n){return t.runSingleFieldLevelValidation(n,xr(e,n))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")];return Promise.all(r).then(function(e){return e.reduce(function(e,t,r){return"DO_NOT_DELETE_YOU_WILL_BE_FIRED"===t?e:(t&&(e=Sr(e,n[r],t)),e)},{})})},t.prototype.runValidateHandler=function(e){var t=this;return new Promise(function(n){var r=t.props.validate(e);void 0===r?n({}):Dr(r)?r.then(function(){n({})},function(e){n(e)}):n(r)})},t.prototype.render=function(){var e=this.props,t=e.component,n=e.render,r=e.children,o=this.getFormikBag(),i=this.getFormikContext();return Object(u.createElement)(_r,{value:i},t?Object(u.createElement)(t,o):n?n(o):r?Or(r)?r(o):jr(r)?null:u.Children.only(r):null)},t.defaultProps={validateOnChange:!0,validateOnBlur:!0,isInitialValid:!1,enableReinitialize:!1},t}(u.Component);function Nr(e,t,n){var r=e.slice();return t.forEach(function(t,o){if("undefined"===typeof r[o]){var i=!1!==n.clone&&n.isMergeableObject(t);r[o]=i?m(Array.isArray(t)?[]:{},t,n):t}else n.isMergeableObject(t)?r[o]=m(e[o],t,n):-1===e.indexOf(t)&&r.push(t)}),r}var Fr=kr(function(e){function t(t){var n=e.call(this,t)||this;t.render,t.children,t.component;return n}return o(t,e),t.prototype.componentDidMount=function(){this.props.formik.registerField(this.props.name,this)},t.prototype.componentDidUpdate=function(e){this.props.name!==e.name&&(this.props.formik.unregisterField(e.name),this.props.formik.registerField(this.props.name,this)),this.props.validate!==e.validate&&this.props.formik.registerField(this.props.name,this)},t.prototype.componentWillUnmount=function(){this.props.formik.unregisterField(this.props.name)},t.prototype.render=function(){var e=this.props,t=(e.validate,e.name),n=e.render,r=e.children,o=e.component,l=void 0===o?"input":o,s=e.formik,c=a(e,["validate","name","render","children","component","formik"]),f=(s.validate,s.validationSchema,a(s,["validate","validationSchema"])),d={value:"radio"===c.type||"checkbox"===c.type?c.value:xr(s.values,t),name:t,onChange:s.handleChange,onBlur:s.handleBlur},p={field:d,form:f};if(n)return n(p);if(Or(r))return r(p);if("string"===typeof l){var h=c.innerRef,m=a(c,["innerRef"]);return Object(u.createElement)(l,i({ref:h},d,m,{children:r}))}return Object(u.createElement)(l,i({},p,c,{children:r}))},t}(u.Component)),Ar=kr(function(e){var t=e.formik,n=t.handleReset,r=t.handleSubmit,o=a(e,["formik"]);return Object(u.createElement)("form",i({onReset:n,onSubmit:r},o))});Ar.displayName="Form";var Ur=function(e,t,n){var r=(e||[]).slice(),o=r[t];return r.splice(t,1),r.splice(n,0,o),r},Yr=function(e,t,n){var r=(e||[]).slice(),o=r[t];return r[t]=r[n],r[n]=o,r},Lr=function(e,t,n){var r=(e||[]).slice();return r.splice(t,0,n),r},Ir=function(e,t,n){var r=(e||[]).slice();return r[t]=n,r},Wr=(u.Component,u.Component,kr(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o(t,e),t.prototype.shouldComponentUpdate=function(e){return xr(this.props.formik.errors,this.props.name)!==xr(e.formik.errors,this.props.name)||xr(this.props.formik.touched,this.props.name)!==xr(e.formik.touched,this.props.name)||Object.keys(this.props).length!==Object.keys(e).length},t.prototype.render=function(){var e=this.props,t=e.component,n=e.formik,r=e.render,o=e.children,i=e.name,l=a(e,["component","formik","render","children","name"]),s=xr(n.touched,i),c=xr(n.errors,i);return s&&c?r?Or(r)?r(c):null:o?Or(o)?o(c):null:t?Object(u.createElement)(t,l,c):c:null},t}(u.Component)))},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,n;function r(){return t.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function a(e){return void 0===e}function u(e){return"number"===typeof e||"[object Number]"===Object.prototype.toString.call(e)}function l(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function s(e,t){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,o)).toString().substr(1)+r}var L=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,I=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,W={},z={};function V(e,t,n,r){var o=r;"string"===typeof r&&(o=function(){return this[r]()}),e&&(z[e]=o),t&&(z[t[0]]=function(){return Y(o.apply(this,arguments),t[1],t[2])}),n&&(z[n]=function(){return this.localeData().ordinal(o.apply(this,arguments),e)})}function H(e,t){return e.isValid()?(t=B(t,e.localeData()),W[t]=W[t]||function(e){var t,n,r,o=e.match(L);for(t=0,n=o.length;t=0&&I.test(e);)e=e.replace(I,r),I.lastIndex=0,n-=1;return e}var $=/\d/,q=/\d\d/,G=/\d{3}/,Q=/\d{4}/,Z=/[+-]?\d{6}/,K=/\d\d?/,X=/\d\d\d\d?/,J=/\d\d\d\d\d\d?/,ee=/\d{1,3}/,te=/\d{1,4}/,ne=/[+-]?\d{1,6}/,re=/\d+/,oe=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,ae=/Z|[+-]\d\d(?::?\d\d)?/gi,ue=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,le={};function se(e,t,n){le[e]=P(t)?t:function(e,r){return e&&n?n:t}}function ce(e,t){return c(le,e)?le[e](t._strict,t._locale):new RegExp(fe(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,o){return t||n||r||o})))}function fe(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var de={};function pe(e,t){var n,r=t;for("string"===typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=k(e)}),n=0;n68?1900:2e3)};var Ce,Ee=Pe("FullYear",!0);function Pe(e,t){return function(n){return null!=n?(je(this,e,n),r.updateOffset(this,t),this):Me(this,e)}}function Me(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function je(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&Oe(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),De(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function De(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?Oe(e)?29:28:31-r%7%2}Ce=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=0){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function ze(e,t,n){var r=7+t-n,o=(7+We(e,0,r).getUTCDay()-t)%7;return-o+r-1}function Ve(e,t,n,r,o){var i,a,u=(7+n-r)%7,l=ze(e,r,o),s=1+7*(t-1)+u+l;return s<=0?a=Te(i=e-1)+s:s>Te(e)?(i=e+1,a=s-Te(e)):(i=e,a=s),{year:i,dayOfYear:a}}function He(e,t,n){var r,o,i=ze(e.year(),t,n),a=Math.floor((e.dayOfYear()-i-1)/7)+1;return a<1?(o=e.year()-1,r=a+Be(o,t,n)):a>Be(e.year(),t,n)?(r=a-Be(e.year(),t,n),o=e.year()+1):(o=e.year(),r=a),{week:r,year:o}}function Be(e,t,n){var r=ze(e,t,n),o=ze(e+1,t,n);return(Te(e)-r+o)/7}function $e(e,t){return e.slice(t,7).concat(e.slice(0,t))}V("w",["ww",2],"wo","week"),V("W",["WW",2],"Wo","isoWeek"),R("week","w"),R("isoWeek","W"),U("week",5),U("isoWeek",5),se("w",K),se("ww",K,q),se("W",K),se("WW",K,q),he(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=k(e)}),V("d",0,"do","day"),V("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),V("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),V("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),V("e",0,0,"weekday"),V("E",0,0,"isoWeekday"),R("day","d"),R("weekday","e"),R("isoWeekday","E"),U("day",11),U("weekday",11),U("isoWeekday",11),se("d",K),se("e",K),se("E",K),se("dd",function(e,t){return t.weekdaysMinRegex(e)}),se("ddd",function(e,t){return t.weekdaysShortRegex(e)}),se("dddd",function(e,t){return t.weekdaysRegex(e)}),he(["dd","ddd","dddd"],function(e,t,n,r){var o=n._locale.weekdaysParse(e,r,n._strict);null!=o?t.d=o:p(n).invalidWeekday=e}),he(["d","e","E"],function(e,t,n,r){t[r]=k(e)});var qe="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ge="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Qe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ze=ue,Ke=ue,Xe=ue;function Je(){function e(e,t){return t.length-e.length}var t,n,r,o,i,a=[],u=[],l=[],s=[];for(t=0;t<7;t++)n=d([2e3,1]).day(t),r=this.weekdaysMin(n,""),o=this.weekdaysShort(n,""),i=this.weekdays(n,""),a.push(r),u.push(o),l.push(i),s.push(r),s.push(o),s.push(i);for(a.sort(e),u.sort(e),l.sort(e),s.sort(e),t=0;t<7;t++)u[t]=fe(u[t]),l[t]=fe(l[t]),s[t]=fe(s[t]);this._weekdaysRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function et(){return this.hours()%12||12}function tt(e,t){V(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function nt(e,t){return t._meridiemParse}V("H",["HH",2],0,"hour"),V("h",["hh",2],0,et),V("k",["kk",2],0,function(){return this.hours()||24}),V("hmm",0,0,function(){return""+et.apply(this)+Y(this.minutes(),2)}),V("hmmss",0,0,function(){return""+et.apply(this)+Y(this.minutes(),2)+Y(this.seconds(),2)}),V("Hmm",0,0,function(){return""+this.hours()+Y(this.minutes(),2)}),V("Hmmss",0,0,function(){return""+this.hours()+Y(this.minutes(),2)+Y(this.seconds(),2)}),tt("a",!0),tt("A",!1),R("hour","h"),U("hour",13),se("a",nt),se("A",nt),se("H",K),se("h",K),se("k",K),se("HH",K,q),se("hh",K,q),se("kk",K,q),se("hmm",X),se("hmmss",J),se("Hmm",X),se("Hmmss",J),pe(["H","HH"],be),pe(["k","kk"],function(e,t,n){var r=k(e);t[be]=24===r?0:r}),pe(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),pe(["h","hh"],function(e,t,n){t[be]=k(e),p(n).bigHour=!0}),pe("hmm",function(e,t,n){var r=e.length-2;t[be]=k(e.substr(0,r)),t[_e]=k(e.substr(r)),p(n).bigHour=!0}),pe("hmmss",function(e,t,n){var r=e.length-4,o=e.length-2;t[be]=k(e.substr(0,r)),t[_e]=k(e.substr(r,2)),t[we]=k(e.substr(o)),p(n).bigHour=!0}),pe("Hmm",function(e,t,n){var r=e.length-2;t[be]=k(e.substr(0,r)),t[_e]=k(e.substr(r))}),pe("Hmmss",function(e,t,n){var r=e.length-4,o=e.length-2;t[be]=k(e.substr(0,r)),t[_e]=k(e.substr(r,2)),t[we]=k(e.substr(o))});var rt,ot=Pe("Hours",!0),it={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ne,monthsShort:Fe,week:{dow:0,doy:6},weekdays:qe,weekdaysMin:Qe,weekdaysShort:Ge,meridiemParse:/[ap]\.?m?\.?/i},at={},ut={};function lt(e){return e?e.toLowerCase().replace("_","-"):e}function st(t){var n=null;if(!at[t]&&"undefined"!==typeof e&&e&&e.exports)try{n=rt._abbr,!function(){var e=new Error("Cannot find module 'undefined'");throw e.code="MODULE_NOT_FOUND",e}(),ct(n)}catch(r){}return at[t]}function ct(e,t){var n;return e&&((n=a(t)?dt(e):ft(e,t))?rt=n:"undefined"!==typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),rt._abbr}function ft(e,t){if(null!==t){var n,r=it;if(t.abbr=e,null!=at[e])E("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=at[e]._config;else if(null!=t.parentLocale)if(null!=at[t.parentLocale])r=at[t.parentLocale]._config;else{if(null==(n=st(t.parentLocale)))return ut[t.parentLocale]||(ut[t.parentLocale]=[]),ut[t.parentLocale].push({name:e,config:t}),null;r=n._config}return at[e]=new j(M(r,t)),ut[e]&&ut[e].forEach(function(e){ft(e.name,e.config)}),ct(e),at[e]}return delete at[e],null}function dt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return rt;if(!o(e)){if(t=st(e))return t;e=[e]}return function(e){for(var t,n,r,o,i=0;i0;){if(r=st(o.slice(0,t).join("-")))return r;if(n&&n.length>=t&&x(o,n,!0)>=t-1)break;t--}i++}return rt}(e)}function pt(e){var t,n=e._a;return n&&-2===p(e).overflow&&(t=n[ve]<0||n[ve]>11?ve:n[ge]<1||n[ge]>De(n[ye],n[ve])?ge:n[be]<0||n[be]>24||24===n[be]&&(0!==n[_e]||0!==n[we]||0!==n[ke])?be:n[_e]<0||n[_e]>59?_e:n[we]<0||n[we]>59?we:n[ke]<0||n[ke]>999?ke:-1,p(e)._overflowDayOfYear&&(tge)&&(t=ge),p(e)._overflowWeeks&&-1===t&&(t=xe),p(e)._overflowWeekday&&-1===t&&(t=Se),p(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function mt(e){var t,n,o,i,a,u=[];if(!e._d){for(o=function(e){var t=new Date(r.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[ge]&&null==e._a[ve]&&function(e){var t,n,r,o,i,a,u,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)i=1,a=4,n=ht(t.GG,e._a[ye],He(Mt(),1,4).year),r=ht(t.W,1),((o=ht(t.E,1))<1||o>7)&&(l=!0);else{i=e._locale._week.dow,a=e._locale._week.doy;var s=He(Mt(),i,a);n=ht(t.gg,e._a[ye],s.year),r=ht(t.w,s.week),null!=t.d?((o=t.d)<0||o>6)&&(l=!0):null!=t.e?(o=t.e+i,(t.e<0||t.e>6)&&(l=!0)):o=i}r<1||r>Be(n,i,a)?p(e)._overflowWeeks=!0:null!=l?p(e)._overflowWeekday=!0:(u=Ve(n,r,o,i,a),e._a[ye]=u.year,e._dayOfYear=u.dayOfYear)}(e),null!=e._dayOfYear&&(a=ht(e._a[ye],o[ye]),(e._dayOfYear>Te(a)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),n=We(a,0,e._dayOfYear),e._a[ve]=n.getUTCMonth(),e._a[ge]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=u[t]=o[t];for(;t<7;t++)e._a[t]=u[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[be]&&0===e._a[_e]&&0===e._a[we]&&0===e._a[ke]&&(e._nextDay=!0,e._a[be]=0),e._d=(e._useUTC?We:function(e,t,n,r,o,i,a){var u;return e<100&&e>=0?(u=new Date(e+400,t,n,r,o,i,a),isFinite(u.getFullYear())&&u.setFullYear(e)):u=new Date(e,t,n,r,o,i,a),u}).apply(null,u),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[be]=24),e._w&&"undefined"!==typeof e._w.d&&e._w.d!==i&&(p(e).weekdayMismatch=!0)}}var yt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,vt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,gt=/Z|[+-]\d\d(?::?\d\d)?/,bt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_t=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],wt=/^\/?Date\((\-?\d+)/i;function kt(e){var t,n,r,o,i,a,u=e._i,l=yt.exec(u)||vt.exec(u);if(l){for(p(e).iso=!0,t=0,n=bt.length;t0&&p(e).unusedInput.push(a),u=u.slice(u.indexOf(n)+n.length),s+=n.length),z[i]?(n?p(e).empty=!1:p(e).unusedTokens.push(i),me(i,n,e)):e._strict&&!n&&p(e).unusedTokens.push(i);p(e).charsLeftOver=l-s,u.length>0&&p(e).unusedInput.push(u),e._a[be]<=12&&!0===p(e).bigHour&&e._a[be]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[be]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[be],e._meridiem),mt(e),pt(e)}else Ot(e);else kt(e)}function Et(e){var t=e._i,n=e._f;return e._locale=e._locale||dt(e._l),null===t||void 0===n&&""===t?m({nullInput:!0}):("string"===typeof t&&(e._i=t=e._locale.preparse(t)),_(t)?new b(pt(t)):(l(t)?e._d=t:o(n)?function(e){var t,n,r,o,i;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(o=0;othis?this:e:m()});function Rt(e,t){var n,r;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Mt();for(n=t[0],r=1;r=0?new Date(e+400,t,n)-un:new Date(e,t,n).valueOf()}function cn(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-un:Date.UTC(e,t,n)}function fn(e,t){V(0,[e,e.length],0,t)}function dn(e,t,n,r,o){var i;return null==e?He(this,r,o).year:(i=Be(e,r,o),t>i&&(t=i),function(e,t,n,r,o){var i=Ve(e,t,n,r,o),a=We(i.year,0,i.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,r,o))}V(0,["gg",2],0,function(){return this.weekYear()%100}),V(0,["GG",2],0,function(){return this.isoWeekYear()%100}),fn("gggg","weekYear"),fn("ggggg","weekYear"),fn("GGGG","isoWeekYear"),fn("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),U("weekYear",1),U("isoWeekYear",1),se("G",oe),se("g",oe),se("GG",K,q),se("gg",K,q),se("GGGG",te,Q),se("gggg",te,Q),se("GGGGG",ne,Z),se("ggggg",ne,Z),he(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=k(e)}),he(["gg","GG"],function(e,t,n,o){t[o]=r.parseTwoDigitYear(e)}),V("Q",0,"Qo","quarter"),R("quarter","Q"),U("quarter",7),se("Q",$),pe("Q",function(e,t){t[ve]=3*(k(e)-1)}),V("D",["DD",2],"Do","date"),R("date","D"),U("date",9),se("D",K),se("DD",K,q),se("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),pe(["D","DD"],ge),pe("Do",function(e,t){t[ge]=k(e.match(K)[0])});var pn=Pe("Date",!0);V("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),U("dayOfYear",4),se("DDD",ee),se("DDDD",G),pe(["DDD","DDDD"],function(e,t,n){n._dayOfYear=k(e)}),V("m",["mm",2],0,"minute"),R("minute","m"),U("minute",14),se("m",K),se("mm",K,q),pe(["m","mm"],_e);var hn=Pe("Minutes",!1);V("s",["ss",2],0,"second"),R("second","s"),U("second",15),se("s",K),se("ss",K,q),pe(["s","ss"],we);var mn,yn=Pe("Seconds",!1);for(V("S",0,0,function(){return~~(this.millisecond()/100)}),V(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),V(0,["SSS",3],0,"millisecond"),V(0,["SSSS",4],0,function(){return 10*this.millisecond()}),V(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),V(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),V(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),V(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),V(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),R("millisecond","ms"),U("millisecond",16),se("S",ee,$),se("SS",ee,q),se("SSS",ee,G),mn="SSSS";mn.length<=9;mn+="S")se(mn,re);function vn(e,t){t[ke]=k(1e3*("0."+e))}for(mn="S";mn.length<=9;mn+="S")pe(mn,vn);var gn=Pe("Milliseconds",!1);V("z",0,0,"zoneAbbr"),V("zz",0,0,"zoneName");var bn=b.prototype;function _n(e){return e}bn.add=Kt,bn.calendar=function(e,t){var n=e||Mt(),o=Wt(n,this).startOf("day"),i=r.calendarFormat(this,o)||"sameElse",a=t&&(P(t[i])?t[i].call(this,n):t[i]);return this.format(a||this.localeData().calendar(i,this,Mt(n)))},bn.clone=function(){return new b(this)},bn.diff=function(e,t,n){var r,o,i;if(!this.isValid())return NaN;if(!(r=Wt(e,this)).isValid())return NaN;switch(o=6e4*(r.utcOffset()-this.utcOffset()),t=N(t)){case"year":i=Jt(this,r)/12;break;case"month":i=Jt(this,r);break;case"quarter":i=Jt(this,r)/3;break;case"second":i=(this-r)/1e3;break;case"minute":i=(this-r)/6e4;break;case"hour":i=(this-r)/36e5;break;case"day":i=(this-r-o)/864e5;break;case"week":i=(this-r-o)/6048e5;break;default:i=this-r}return n?i:w(i)},bn.endOf=function(e){var t;if(void 0===(e=N(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?cn:sn;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=an-ln(t+(this._isUTC?0:this.utcOffset()*on),an)-1;break;case"minute":t=this._d.valueOf(),t+=on-ln(t,on)-1;break;case"second":t=this._d.valueOf(),t+=rn-ln(t,rn)-1}return this._d.setTime(t),r.updateOffset(this,!0),this},bn.format=function(e){e||(e=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var t=H(this,e);return this.localeData().postformat(t)},bn.from=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||Mt(e).isValid())?$t({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},bn.fromNow=function(e){return this.from(Mt(),e)},bn.to=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||Mt(e).isValid())?$t({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},bn.toNow=function(e){return this.to(Mt(),e)},bn.get=function(e){return P(this[e=N(e)])?this[e]():this},bn.invalidAt=function(){return p(this).overflow},bn.isAfter=function(e,t){var n=_(e)?e:Mt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=N(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?H(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):P(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",H(n,"Z")):H(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},bn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",o=t+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+o)},bn.toJSON=function(){return this.isValid()?this.toISOString():null},bn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},bn.unix=function(){return Math.floor(this.valueOf()/1e3)},bn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},bn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},bn.year=Ee,bn.isLeapYear=function(){return Oe(this.year())},bn.weekYear=function(e){return dn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},bn.isoWeekYear=function(e){return dn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},bn.quarter=bn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},bn.month=Ue,bn.daysInMonth=function(){return De(this.year(),this.month())},bn.week=bn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},bn.isoWeek=bn.isoWeeks=function(e){var t=He(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},bn.weeksInYear=function(){var e=this.localeData()._week;return Be(this.year(),e.dow,e.doy)},bn.isoWeeksInYear=function(){return Be(this.year(),1,4)},bn.date=pn,bn.day=bn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!==typeof e?e:isNaN(e)?"number"===typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},bn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},bn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"===typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},bn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},bn.hour=bn.hours=ot,bn.minute=bn.minutes=hn,bn.second=bn.seconds=yn,bn.millisecond=bn.milliseconds=gn,bn.utcOffset=function(e,t,n){var o,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"===typeof e){if(null===(e=It(ae,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(o=zt(this)),this._offset=e,this._isUTC=!0,null!=o&&this.add(o,"m"),i!==e&&(!t||this._changeInProgress?Zt(this,$t(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,r.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:zt(this)},bn.utc=function(e){return this.utcOffset(0,e)},bn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(zt(this),"m")),this},bn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"===typeof this._i){var e=It(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},bn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Mt(e).utcOffset():0,(this.utcOffset()-e)%60===0)},bn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},bn.isLocal=function(){return!!this.isValid()&&!this._isUTC},bn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},bn.isUtc=Vt,bn.isUTC=Vt,bn.zoneAbbr=function(){return this._isUTC?"UTC":""},bn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},bn.dates=T("dates accessor is deprecated. Use date instead.",pn),bn.months=T("months accessor is deprecated. Use month instead",Ue),bn.years=T("years accessor is deprecated. Use year instead",Ee),bn.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!==typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),bn.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!a(this._isDSTShifted))return this._isDSTShifted;var e={};if(v(e,this),(e=Et(e))._a){var t=e._isUTC?d(e._a):Mt(e._a);this._isDSTShifted=this.isValid()&&x(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var wn=j.prototype;function kn(e,t,n,r){var o=dt(),i=d().set(r,t);return o[n](i,e)}function xn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return kn(e,t,n,"month");var r,o=[];for(r=0;r<12;r++)o[r]=kn(e,r,n,"month");return o}function Sn(e,t,n,r){"boolean"===typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var o,i=dt(),a=e?i._week.dow:0;if(null!=n)return kn(t,(n+a)%7,r,"day");var l=[];for(o=0;o<7;o++)l[o]=kn(t,(o+a)%7,r,"day");return l}wn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return P(r)?r.call(t,n):r},wn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},wn.invalidDate=function(){return this._invalidDate},wn.ordinal=function(e){return this._ordinal.replace("%d",e)},wn.preparse=_n,wn.postformat=_n,wn.relativeTime=function(e,t,n,r){var o=this._relativeTime[n];return P(o)?o(e,t,n,r):o.replace(/%d/i,e)},wn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return P(n)?n(t):n.replace(/%s/i,t)},wn.set=function(e){var t,n;for(n in e)P(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},wn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Re).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},wn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Re.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},wn.monthsParse=function(e,t,n){var r,o,i;if(this._monthsParseExact)return function(e,t,n){var r,o,i,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)i=d([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(o=Ce.call(this._shortMonthsParse,a))?o:null:-1!==(o=Ce.call(this._longMonthsParse,a))?o:null:"MMM"===t?-1!==(o=Ce.call(this._shortMonthsParse,a))?o:-1!==(o=Ce.call(this._longMonthsParse,a))?o:null:-1!==(o=Ce.call(this._longMonthsParse,a))?o:-1!==(o=Ce.call(this._shortMonthsParse,a))?o:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(o=d([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},wn.monthsRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Ie.call(this),e?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=Le),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},wn.monthsShortRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Ie.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=Ye),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},wn.week=function(e){return He(e,this._week.dow,this._week.doy).week},wn.firstDayOfYear=function(){return this._week.doy},wn.firstDayOfWeek=function(){return this._week.dow},wn.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?$e(n,this._week.dow):e?n[e.day()]:n},wn.weekdaysMin=function(e){return!0===e?$e(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},wn.weekdaysShort=function(e){return!0===e?$e(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},wn.weekdaysParse=function(e,t,n){var r,o,i;if(this._weekdaysParseExact)return function(e,t,n){var r,o,i,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=d([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(o=Ce.call(this._weekdaysParse,a))?o:null:"ddd"===t?-1!==(o=Ce.call(this._shortWeekdaysParse,a))?o:null:-1!==(o=Ce.call(this._minWeekdaysParse,a))?o:null:"dddd"===t?-1!==(o=Ce.call(this._weekdaysParse,a))?o:-1!==(o=Ce.call(this._shortWeekdaysParse,a))?o:-1!==(o=Ce.call(this._minWeekdaysParse,a))?o:null:"ddd"===t?-1!==(o=Ce.call(this._shortWeekdaysParse,a))?o:-1!==(o=Ce.call(this._weekdaysParse,a))?o:-1!==(o=Ce.call(this._minWeekdaysParse,a))?o:null:-1!==(o=Ce.call(this._minWeekdaysParse,a))?o:-1!==(o=Ce.call(this._weekdaysParse,a))?o:-1!==(o=Ce.call(this._shortWeekdaysParse,a))?o:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(o=d([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(o,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(o,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(o,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(o,"")+"|^"+this.weekdaysShort(o,"")+"|^"+this.weekdaysMin(o,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},wn.weekdaysRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Je.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Ze),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},wn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Je.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ke),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},wn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Je.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Xe),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},wn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},wn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ct("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),r.lang=T("moment.lang is deprecated. Use moment.locale instead.",ct),r.langData=T("moment.langData is deprecated. Use moment.localeData instead.",dt);var Tn=Math.abs;function On(e,t,n,r){var o=$t(t,n);return e._milliseconds+=r*o._milliseconds,e._days+=r*o._days,e._months+=r*o._months,e._bubble()}function Cn(e){return e<0?Math.floor(e):Math.ceil(e)}function En(e){return 4800*e/146097}function Pn(e){return 146097*e/4800}function Mn(e){return function(){return this.as(e)}}var jn=Mn("ms"),Dn=Mn("s"),Rn=Mn("m"),Nn=Mn("h"),Fn=Mn("d"),An=Mn("w"),Un=Mn("M"),Yn=Mn("Q"),Ln=Mn("y");function In(e){return function(){return this.isValid()?this._data[e]:NaN}}var Wn=In("milliseconds"),zn=In("seconds"),Vn=In("minutes"),Hn=In("hours"),Bn=In("days"),$n=In("months"),qn=In("years"),Gn=Math.round,Qn={ss:44,s:45,m:45,h:22,d:26,M:11},Zn=Math.abs;function Kn(e){return(e>0)-(e<0)||+e}function Xn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Zn(this._milliseconds)/1e3,r=Zn(this._days),o=Zn(this._months);e=w(n/60),t=w(e/60),n%=60,e%=60;var i=w(o/12),a=o%=12,u=r,l=t,s=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",f=this.asSeconds();if(!f)return"P0D";var d=f<0?"-":"",p=Kn(this._months)!==Kn(f)?"-":"",h=Kn(this._days)!==Kn(f)?"-":"",m=Kn(this._milliseconds)!==Kn(f)?"-":"";return d+"P"+(i?p+i+"Y":"")+(a?p+a+"M":"")+(u?h+u+"D":"")+(l||s||c?"T":"")+(l?m+l+"H":"")+(s?m+s+"M":"")+(c?m+c+"S":"")}var Jn=Ft.prototype;return Jn.isValid=function(){return this._isValid},Jn.abs=function(){var e=this._data;return this._milliseconds=Tn(this._milliseconds),this._days=Tn(this._days),this._months=Tn(this._months),e.milliseconds=Tn(e.milliseconds),e.seconds=Tn(e.seconds),e.minutes=Tn(e.minutes),e.hours=Tn(e.hours),e.months=Tn(e.months),e.years=Tn(e.years),this},Jn.add=function(e,t){return On(this,e,t,1)},Jn.subtract=function(e,t){return On(this,e,t,-1)},Jn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=N(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+En(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Pn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Jn.asMilliseconds=jn,Jn.asSeconds=Dn,Jn.asMinutes=Rn,Jn.asHours=Nn,Jn.asDays=Fn,Jn.asWeeks=An,Jn.asMonths=Un,Jn.asQuarters=Yn,Jn.asYears=Ln,Jn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Jn._bubble=function(){var e,t,n,r,o,i=this._milliseconds,a=this._days,u=this._months,l=this._data;return i>=0&&a>=0&&u>=0||i<=0&&a<=0&&u<=0||(i+=864e5*Cn(Pn(u)+a),a=0,u=0),l.milliseconds=i%1e3,e=w(i/1e3),l.seconds=e%60,t=w(e/60),l.minutes=t%60,n=w(t/60),l.hours=n%24,a+=w(n/24),o=w(En(a)),u+=o,a-=Cn(Pn(o)),r=w(u/12),u%=12,l.days=a,l.months=u,l.years=r,this},Jn.clone=function(){return $t(this)},Jn.get=function(e){return e=N(e),this.isValid()?this[e+"s"]():NaN},Jn.milliseconds=Wn,Jn.seconds=zn,Jn.minutes=Vn,Jn.hours=Hn,Jn.days=Bn,Jn.weeks=function(){return w(this.days()/7)},Jn.months=$n,Jn.years=qn,Jn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var r=$t(e).abs(),o=Gn(r.as("s")),i=Gn(r.as("m")),a=Gn(r.as("h")),u=Gn(r.as("d")),l=Gn(r.as("M")),s=Gn(r.as("y")),c=o<=Qn.ss&&["s",o]||o0,c[4]=n,function(e,t,n,r,o){return o.relativeTime(t||1,!!n,e,r)}.apply(null,c)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},Jn.toISOString=Xn,Jn.toString=Xn,Jn.toJSON=Xn,Jn.locale=en,Jn.localeData=nn,Jn.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Xn),Jn.lang=tn,V("X",0,0,"unix"),V("x",0,0,"valueOf"),se("x",oe),se("X",/[+-]?\d+(\.\d{1,3})?/),pe("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),pe("x",function(e,t,n){n._d=new Date(k(e))}),r.version="2.24.0",t=Mt,r.fn=bn,r.min=function(){return Rt("isBefore",[].slice.call(arguments,0))},r.max=function(){return Rt("isAfter",[].slice.call(arguments,0))},r.now=function(){return Date.now?Date.now():+new Date},r.utc=d,r.unix=function(e){return Mt(1e3*e)},r.months=function(e,t){return xn(e,t,"months")},r.isDate=l,r.locale=ct,r.invalid=m,r.duration=$t,r.isMoment=_,r.weekdays=function(e,t,n){return Sn(e,t,n,"weekdays")},r.parseZone=function(){return Mt.apply(null,arguments).parseZone()},r.localeData=dt,r.isDuration=At,r.monthsShort=function(e,t){return xn(e,t,"monthsShort")},r.weekdaysMin=function(e,t,n){return Sn(e,t,n,"weekdaysMin")},r.defineLocale=ft,r.updateLocale=function(e,t){if(null!=t){var n,r,o=it;null!=(r=st(e))&&(o=r._config),t=M(o,t),(n=new j(t)).parentLocale=at[e],at[e]=n,ct(e)}else null!=at[e]&&(null!=at[e].parentLocale?at[e]=at[e].parentLocale:null!=at[e]&&delete at[e]);return at[e]},r.locales=function(){return O(at)},r.weekdaysShort=function(e,t,n){return Sn(e,t,n,"weekdaysShort")},r.normalizeUnits=N,r.relativeTimeRounding=function(e){return void 0===e?Gn:"function"===typeof e&&(Gn=e,!0)},r.relativeTimeThreshold=function(e,t){return void 0!==Qn[e]&&(void 0===t?Qn[e]:(Qn[e]=t,"s"===e&&(Qn.ss=t-1),!0))},r.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},r.prototype=bn,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()}).call(this,n(67)(e))},function(e,t,n){"use strict";var r=n(19),o=n.n(r),i={},a=0;t.a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];"string"===typeof t&&(t={path:t});var r=t,u=r.path,l=r.exact,s=void 0!==l&&l,c=r.strict,f=void 0!==c&&c,d=r.sensitive;if(null==u)return n;var p=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=i[n]||(i[n]={});if(r[e])return r[e];var u=[],l={re:o()(e,u,t),keys:u};return a<1e4&&(r[e]=l,a++),l}(u,{end:s,strict:f,sensitive:void 0!==d&&d}),h=p.re,m=p.keys,y=h.exec(e);if(!y)return null;var v=y[0],g=y.slice(1),b=e===v;return s&&!b?null:{path:u,url:"/"===u&&""===v?"/":v,isExact:b,params:m.reduce(function(e,t,n){return e[t.name]=g[n],e},{})}}},function(e,t,n){var r=n(66);e.exports=p,e.exports.parse=i,e.exports.compile=function(e,t){return u(i(e,t))},e.exports.tokensToFunction=u,e.exports.tokensToRegExp=d;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(e,t){for(var n,r=[],i=0,a=0,u="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var f=n[0],d=n[1],p=n.index;if(u+=e.slice(a,p),a=p+f.length,d)u+=d[1];else{var h=e[a],m=n[2],y=n[3],v=n[4],g=n[5],b=n[6],_=n[7];u&&(r.push(u),u="");var w=null!=m&&null!=h&&h!==m,k="+"===b||"*"===b,x="?"===b||"*"===b,S=n[2]||c,T=v||g;r.push({name:y||i++,prefix:m||"",delimiter:S,optional:x,repeat:k,partial:w,asterisk:!!_,pattern:T?s(T):_?".*":"[^"+l(S)+"]+?"})}}return a=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(i)}),e.exports=u}).call(this,n(48))},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i=Object.defineProperty,a=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,l=Object.getOwnPropertyDescriptor,s=Object.getPrototypeOf,c=s&&s(Object);e.exports=function e(t,n,f){if("string"!==typeof n){if(c){var d=s(n);d&&d!==c&&e(t,d,f)}var p=a(n);u&&(p=p.concat(u(n)));for(var h=0;hD.length&&D.push(e)}function F(e,t,n){return null==e?0:function e(t,n,r,o){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case i:case a:l=!0}}if(l)return r(o,t,""===n?"."+A(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;sthis.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=se,e.release=ce}o(le.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ae)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ae)},persist:function(){this.isPersistent=ae},isPersistent:ue,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=ue,this._dispatchInstances=this._dispatchListeners=null}}),le.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},le.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(le);var de=le.extend({data:null}),pe=le.extend({data:null}),he=[9,13,27,32],me=B&&"CompositionEvent"in window,ye=null;B&&"documentMode"in document&&(ye=document.documentMode);var ve=B&&"TextEvent"in window&&!ye,ge=B&&(!me||ye&&8=ye),be=String.fromCharCode(32),_e={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},we=!1;function ke(e,t){switch(e){case"keyup":return-1!==he.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function xe(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Se=!1;var Te={eventTypes:_e,extractEvents:function(e,t,n,r){var o=void 0,i=void 0;if(me)e:{switch(e){case"compositionstart":o=_e.compositionStart;break e;case"compositionend":o=_e.compositionEnd;break e;case"compositionupdate":o=_e.compositionUpdate;break e}o=void 0}else Se?ke(e,n)&&(o=_e.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=_e.compositionStart);return o?(ge&&"ko"!==n.locale&&(Se||o!==_e.compositionStart?o===_e.compositionEnd&&Se&&(i=ie()):(re="value"in(ne=r)?ne.value:ne.textContent,Se=!0)),o=de.getPooled(o,t,n,r),i?o.data=i:null!==(i=xe(n))&&(o.data=i),H(o),i=o):i=null,(e=ve?function(e,t){switch(e){case"compositionend":return xe(t);case"keypress":return 32!==t.which?null:(we=!0,be);case"textInput":return(e=t.data)===be&&we?null:e;default:return null}}(e,n):function(e,t){if(Se)return"compositionend"===e||!me&&ke(e,t)?(e=ie(),oe=re=ne=null,Se=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1