Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 03-04 15:26:05.887: I/jPCT-AE(14142): Subobject of object 5/object7 compiled to indexed fixed point data using 11904/2143 vertices in 3ms!
- 03-04 15:26:05.887: D/jPCT-AE(14142): Processing and uploading vertices of subobject of object 5/object7 took 3ms
- 03-04 15:26:05.887: I/jPCT-AE(14142): Object 5/object7 compiled to 1 subobjects in 4ms!
- 03-04 15:26:05.888: I/jPCT-AE(14142): glEnable(2977) took 6934ns
- 03-04 15:26:05.888: D/libEGL(14142): glGetError();
- 03-04 15:26:05.889: I/jPCT-AE(14142): glEnable(2896) took 8578ns
- 03-04 15:26:05.889: D/libEGL(14142): glGetError();
- 03-04 15:26:05.890: D/libEGL(14142): glEnable(0xb44);
- 03-04 15:26:05.890: I/jPCT-AE(14142): glEnable(2884) took 19614ns
- 03-04 15:26:05.890: D/libEGL(14142): glGetError();
- 03-04 15:26:05.891: D/jPCT-AE(14142): Binding texture 14
- 03-04 15:26:05.891: D/libEGL(14142): glActiveTexture(GL_TEXTURE0);
- 03-04 15:26:05.891: I/jPCT-AE(14142): glActiveTexture(33984) took 23361ns
- 03-04 15:26:05.891: D/libEGL(14142): glGetError();
- 03-04 15:26:05.892: D/libEGL(14142): glBindTexture(0xde1, 14);
- 03-04 15:26:05.892: I/jPCT-AE(14142): glBindTexture(3553, 14) took 201814ns
- 03-04 15:26:05.892: D/libEGL(14142): glGetError();
- 03-04 15:26:05.893: D/libEGL(14142): glGetError();
- 03-04 15:26:05.894: I/jPCT-AE(14142): Compiling shader program!
- 03-04 15:26:05.894: D/libEGL(14142): glCreateShader(0x8b31);
- 03-04 15:26:05.895: D/libEGL(14142): const char* shaderSrc[] = {
- 03-04 15:26:05.895: D/libEGL(14142): "// precision
- 03-04 15:26:05.895: D/libEGL(14142): precision highp float;
- 03-04 15:26:05.895: D/libEGL(14142): precision highp int;
- 03-04 15:26:05.895: D/libEGL(14142): precision highp sampler2D;
- 03-04 15:26:05.895: D/libEGL(14142): uniform mat4 modelViewProjectionMatrix;
- 03-04 15:26:05.895: D/libEGL(14142): attribute vec4 position;
- 03-04 15:26:05.895: D/libEGL(14142): attribute vec2 texture0;
- 03-04 15:26:05.895: D/libEGL(14142): varying vec2 texCoord0;
- 03-04 15:26:05.895: D/libEGL(14142): const vec3 SATURATION=vec3 (1.000000,1.000000,1.000000);
- 03-04 15:26:05.895: D/libEGL(14142): #define SPARKLES1 0
- 03-04 15:26:05.895: D/libEGL(14142): const bool SPARKLES2 =false;
- 03-04 15:26:05.895: D/libEGL(14142): #define SATURATION1 0
- 03-04 15:26:05.895: D/libEGL(14142): const bool SATURATION2 =false;
- 03-04 15:26:05.895: D/libEGL(14142): void main() {
- 03-04 15:26:05.895: D/libEGL(14142): texCoord0 = texture0;
- 03-04 15:26:05.895: D/libEGL(14142): gl_Position = modelViewProjectionMatrix * position;
- 03-04 15:26:05.895: D/libEGL(14142): }
- 03-04 15:26:05.895: D/libEGL(14142): "
- 03-04 15:26:05.895: D/libEGL(14142): };
- 03-04 15:26:05.895: D/libEGL(14142): glShaderSource(7, 1, shaderSrc, (const GLint*) 0);
- 03-04 15:26:05.895: D/libEGL(14142): glCompileShader(7);
- 03-04 15:26:05.895: D/libEGL(14142): glGetShaderiv(7, 0x8b81, (GLint *) 0x12c090fc);
- 03-04 15:26:05.896: D/libEGL(14142): glCreateShader(0x8b30);
- 03-04 15:26:05.897: D/libEGL(14142): const char* shaderSrc[] = {
- 03-04 15:26:05.897: D/libEGL(14142): "// precision
- 03-04 15:26:05.897: D/libEGL(14142): precision highp float;
- 03-04 15:26:05.897: D/libEGL(14142): precision highp int;
- 03-04 15:26:05.897: D/libEGL(14142): precision highp sampler2D;
- 03-04 15:26:05.897: D/libEGL(14142): //uniform float random;
- 03-04 15:26:05.897: D/libEGL(14142): uniform sampler2D textureUnit0;
- 03-04 15:26:05.897: D/libEGL(14142): varying vec2 texCoord0;
- 03-04 15:26:05.897: D/libEGL(14142): const vec3 SATURATIONFORMULA = vec3(0.2125, 0.7154, 0.0721);
- 03-04 15:26:05.897: D/libEGL(14142): const vec4 BLACK = vec4(0.0,0.0,0.0,1.0);
- 03-04 15:26:05.897: D/libEGL(14142): const float RANDA = 12.9898;
- 03-04 15:26:05.897: D/libEGL(14142): const float RANDB = 78.233;
- 03-04 15:26:05.897: D/libEGL(14142): const float RANDC = 43758.5453;
- 03-04 15:26:05.897: D/libEGL(14142): const vec3 SATURATION=vec3 (1.000000,1.000000,1.000000);
- 03-04 15:26:05.897: D/libEGL(14142): #define SPARKLES1 0
- 03-04 15:26:05.897: D/libEGL(14142): const bool SPARKLES2 =false;
- 03-04 15:26:05.897: D/libEGL(14142): #define SATURATION1 0
- 03-04 15:26:05.897: D/libEGL(14142): const bool SATURATION2 =false;
- 03-04 15:26:05.897: D/libEGL(14142): // function to generate random numbers
- 03-04 15:26:05.897: D/libEGL(14142): float rand(vec2 co) {
- 03-04 15:26:05.897: D/libEGL(14142): vec2 randAB = vec2(RANDA,RANDB);
- 03-04 15:26:05.897: D/libEGL(14142): float dt= dot(co.xy , randAB);
- 03-04 15:26:05.897: D/libEGL(14142): float sn= mod(dt,3.14);
- 03-04 15:26:05.897: D/libEGL(14142): float tot = sin(sn) * RANDC;
- 03-04 15:26:05.897: D/libEGL(14142): return fract(tot);
- 03-04 15:26:05.897: D/libEGL(14142): }
- 03-04 15:26:05.897: D/libEGL(14142): // function to oversaturate/desaturate rgb values
- 03-04 15:26:05.897: D/libEGL(14142): vec3 saturate(vec3 rgb, vec3 saturation) {
- 03-04 15:26:05.897: D/libEGL(14142): // (Modified) algorithm from Chapter 16 of OpenGL Shading Language
- 03-04 15:26:05.897: D/libEGL(14142): float intensity = dot(rgb, SATURATIONFORMULA);
- 03-04 15:26:05.897: D/libEGL(14142): float satR = mix(intensity, rgb.r, saturation.r);
- 03-04 15:26:05.897: D/libEGL(14142): float satG = mix(i
- 03-04 15:26:05.897: D/libEGL(14142): };
- 03-04 15:26:05.897: D/libEGL(14142): glShaderSource(8, 1, shaderSrc, (const GLint*) 0);
- 03-04 15:26:05.897: D/libEGL(14142): glCompileShader(8);
- 03-04 15:26:05.897: D/libEGL(14142): glGetShaderiv(8, 0x8b81, (GLint *) 0x12c0910c);
- 03-04 15:26:05.900: D/libEGL(14142): glCreateProgram();
- 03-04 15:26:05.901: D/libEGL(14142): glAttachShader(9, 7);
- 03-04 15:26:05.901: D/libEGL(14142): glGetError();
- 03-04 15:26:05.902: D/libEGL(14142): glAttachShader(9, 8);
- 03-04 15:26:05.902: D/libEGL(14142): glGetError();
- 03-04 15:26:05.903: D/libEGL(14142): glLinkProgram(9);
- 03-04 15:26:05.937: D/libEGL(14142): glGetProgramiv(9, 0x8b82, (GLint *) 0x12c0911c);
- 03-04 15:26:05.940: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.941: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf1ec8c0);
- 03-04 15:26:05.942: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf1ec8c0);
- 03-04 15:26:05.943: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf08a1e0);
- 03-04 15:26:05.943: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf08a1e0);
- 03-04 15:26:05.944: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf08a1e0);
- 03-04 15:26:05.944: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.945: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.945: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.946: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.947: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.947: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.948: D/libEGL(14142): glGetAttribLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.949: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.950: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.951: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.951: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf08a1e0);
- 03-04 15:26:05.952: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.953: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.953: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.954: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.955: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.956: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.957: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.957: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.958: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.959: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.960: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.960: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf08a1e0);
- 03-04 15:26:05.961: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.962: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.962: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf039910);
- 03-04 15:26:05.963: I/jPCT-AE(14142): Handles of 9: 1/0/-1
- 03-04 15:26:05.963: D/libEGL(14142): glUseProgram(9);
- 03-04 15:26:05.963: D/libEGL(14142): glUniform1i(1, 0);
- 03-04 15:26:05.963: D/libEGL(14142): glUseProgram(9);
- 03-04 15:26:05.963: I/jPCT-AE(14142): glMatrixMode(5888) took 9244ns
- 03-04 15:26:05.963: D/libEGL(14142): glGetError();
- 03-04 15:26:05.964: I/jPCT-AE(14142): glPushMatrix() took 6867ns
- 03-04 15:26:05.964: D/libEGL(14142): glGetError();
- 03-04 15:26:05.965: I/jPCT-AE(14142): glLoadIdentity() took 6857ns
- 03-04 15:26:05.965: D/libEGL(14142): glGetError();
- 03-04 15:26:05.966: D/libEGL(14142): glCullFace(0x404);
- 03-04 15:26:05.966: I/jPCT-AE(14142): glCullFace(1028) took 40689ns
- 03-04 15:26:05.966: D/libEGL(14142): glGetError();
- 03-04 15:26:05.966: I/jPCT-AE(14142): glLightModelfv(2899, [F@18291028, 0) took 6981ns
- 03-04 15:26:05.966: D/libEGL(14142): glGetError();
- 03-04 15:26:05.967: I/jPCT-AE(14142): glMaterialfv(1032, 5632, [F@33584141, 0) took 5602ns
- 03-04 15:26:05.967: D/libEGL(14142): glGetError();
- 03-04 15:26:05.968: I/jPCT-AE(14142): glLoadMatrixf([F@39bbc6e6, 0) took 7211ns
- 03-04 15:26:05.968: D/libEGL(14142): glGetError();
- 03-04 15:26:05.969: D/libEGL(14142): glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE);
- 03-04 15:26:05.969: I/jPCT-AE(14142): glColorMask(true, true, true, false) took 95150ns
- 03-04 15:26:05.969: D/libEGL(14142): glGetError();
- 03-04 15:26:05.970: D/libEGL(14142): glGetUniformLocation(9, (const GLchar *) 0xaf08a1e8);
- 03-04 15:26:05.970: D/libEGL(14142): const GLfloat value[] = {
- 03-04 15:26:05.970: D/libEGL(14142): 5.04202e+06, -165.569, 0, 0,
- 03-04 15:26:05.970: D/libEGL(14142): -272.269, -3.06609e+06, 0, 0,
- 03-04 15:26:05.970: D/libEGL(14142): 0, 0, 3e+06, 3e+06,
- 03-04 15:26:05.970: D/libEGL(14142): 3850.86, -0.146312, -21646.3, -21644.3
- 03-04 15:26:05.970: D/libEGL(14142): };
- 03-04 15:26:05.970: D/libEGL(14142): glUniformMatrix4fv(0, 1, GL_FALSE, value);
- 03-04 15:26:05.970: D/libEGL(14142): glUniform1f(-1, 0);
- 03-04 15:26:05.970: I/jPCT-AE(14142): Creating buffers...
- 03-04 15:26:05.971: D/libEGL(14142): glGetError();
- 03-04 15:26:05.972: D/libEGL(14142): glGenBuffers(1, (GLuint *) 0x12c0925c);
- 03-04 15:26:05.973: I/jPCT-AE(14142): glGenBuffers(1, [I@771f427, 0) took 2235483ns
- 03-04 15:26:05.973: D/libEGL(14142): glGetError();
- 03-04 15:26:05.973: D/libEGL(14142): glGetError();
- 03-04 15:26:05.974: D/libEGL(14142): glGenBuffers(1, (GLuint *) 0x12c0925c);
- 03-04 15:26:05.975: I/jPCT-AE(14142): glGenBuffers(1, [I@771f427, 0) took 1549896ns
- 03-04 15:26:05.975: D/libEGL(14142): glGetError();
- 03-04 15:26:05.976: D/libEGL(14142): glGetError();
- 03-04 15:26:05.976: D/libEGL(14142): glGenBuffers(1, (GLuint *) 0x12c0925c);
- 03-04 15:26:05.977: I/jPCT-AE(14142): glGenBuffers(1, [I@771f427, 0) took 1197078ns
- 03-04 15:26:05.977: D/libEGL(14142): glGetError();
- 03-04 15:26:05.977: D/libEGL(14142): glGetError();
- 03-04 15:26:05.978: D/libEGL(14142): glGenBuffers(1, (GLuint *) 0x12c0925c);
- 03-04 15:26:05.978: I/jPCT-AE(14142): glGenBuffers(1, [I@771f427, 0) took 1084754ns
- 03-04 15:26:05.978: D/libEGL(14142): glGetError();
- 03-04 15:26:05.979: D/libEGL(14142): glBindBuffer(0x8892, 1);
- 03-04 15:26:05.979: I/jPCT-AE(14142): glBindBuffer(34962, 1) took 111408ns
- 03-04 15:26:05.979: D/libEGL(14142): glGetError();
- 03-04 15:26:05.980: D/libEGL(14142): glBufferData(0x8892, 25716, (const void *) 0xa2eea010, 0x88e4);
- 03-04 15:26:05.980: I/jPCT-AE(14142): glBufferData(34962, 25716, java.nio.ByteBufferAsIntBuffer[position=0,limit=6429,capacity=6429], 35044) took 211477ns
- 03-04 15:26:05.980: D/libEGL(14142): glGetError();
- 03-04 15:26:05.981: D/libEGL(14142): glBindBuffer(0x8892, 2);
- 03-04 15:26:05.981: I/jPCT-AE(14142): glBindBuffer(34962, 2) took 86074ns
- 03-04 15:26:05.981: D/libEGL(14142): glGetError();
- 03-04 15:26:05.981: D/libEGL(14142): glBufferData(0x8892, 25716, (const void *) 0xa2a82010, 0x88e4);
- 03-04 15:26:05.982: I/jPCT-AE(14142): glBufferData(34962, 25716, java.nio.ByteBufferAsIntBuffer[position=0,limit=6429,capacity=6429], 35044) took 243577ns
- 03-04 15:26:05.982: D/libEGL(14142): glGetError();
- 03-04 15:26:05.983: D/libEGL(14142): glBindBuffer(0x8892, 3);
- 03-04 15:26:05.983: I/jPCT-AE(14142): glBindBuffer(34962, 3) took 58168ns
- 03-04 15:26:05.983: D/libEGL(14142): glGetError();
- 03-04 15:26:05.983: D/libEGL(14142): glBufferData(0x8892, 17144, (const void *) 0xb30ef010, 0x88e4);
- 03-04 15:26:05.984: I/jPCT-AE(14142): glBufferData(34962, 17144, java.nio.ByteBufferAsIntBuffer[position=0,limit=4286,capacity=4286], 35044) took 279698ns
- 03-04 15:26:05.984: D/libEGL(14142): glGetError();
- 03-04 15:26:05.984: D/libEGL(14142): glBindBuffer(0x8892, 0);
- 03-04 15:26:05.984: I/jPCT-AE(14142): glBindBuffer(34962, 0) took 34421ns
- 03-04 15:26:05.984: D/libEGL(14142): glGetError();
- 03-04 15:26:05.985: D/libEGL(14142): glBindBuffer(0x8893, 4);
- 03-04 15:26:05.986: I/jPCT-AE(14142): glBindBuffer(34963, 4) took 91711ns
- 03-04 15:26:05.986: D/libEGL(14142): glGetError();
- 03-04 15:26:05.986: D/libEGL(14142): glBufferData(0x8893, 23808, (const void *) 0xa2bca010, 0x88e4);
- 03-04 15:26:05.987: I/jPCT-AE(14142): glBufferData(34963, 23808, java.nio.ByteBufferAsShortBuffer[position=0,limit=11904,capacity=23808], 35044) took 346995ns
- 03-04 15:26:05.987: D/libEGL(14142): glGetError();
- 03-04 15:26:05.987: D/libEGL(14142): glBindBuffer(0x8893, 0);
- 03-04 15:26:05.987: I/jPCT-AE(14142): glBindBuffer(34963, 0) took 105984ns
- 03-04 15:26:05.987: D/libEGL(14142): glGetError();
- 03-04 15:26:05.988: I/jPCT-AE(14142): VBO created for object 'object7'
- 03-04 15:26:05.988: I/jPCT-AE(14142): glEnableClientState(32885) took 6778ns
- 03-04 15:26:05.988: D/libEGL(14142): glGetError();
- 03-04 15:26:05.989: D/libEGL(14142): glBindBuffer(0x8892, 1);
- 03-04 15:26:05.989: I/jPCT-AE(14142): glBindBuffer(34962, 1) took 204203ns
- 03-04 15:26:05.989: D/libEGL(14142): glGetError();
- 03-04 15:26:05.989: I/jPCT-AE(14142): glNormalPointer(5132, 12, 0) took 5370ns
- 03-04 15:26:05.989: D/libEGL(14142): glGetError();
- 03-04 15:26:05.990: D/libEGL(14142): glEnableVertexAttribArray(1);
- 03-04 15:26:05.990: I/jPCT-AE(14142): glEnableClientState(32884) took 107584ns
- 03-04 15:26:05.990: D/libEGL(14142): glGetError();
- 03-04 15:26:05.990: D/libEGL(14142): glBindBuffer(0x8892, 2);
- 03-04 15:26:05.990: I/jPCT-AE(14142): glBindBuffer(34962, 2) took 36469ns
- 03-04 15:26:05.990: D/libEGL(14142): glGetError();
- 03-04 15:26:05.991: D/libEGL(14142): glVertexAttribPointer(1, 3, GL_FIXED, GL_FALSE, 12, (const void *) 0x00000000);
- 03-04 15:26:05.991: I/jPCT-AE(14142): glVertexPointer(3, 5132, 12, 0) took 50833ns
- 03-04 15:26:05.991: D/libEGL(14142): glGetError();
- 03-04 15:26:05.992: I/jPCT-AE(14142): glDisableClientState(32886) took 9077ns
- 03-04 15:26:05.992: D/libEGL(14142): glGetError();
- 03-04 15:26:05.993: D/libEGL(14142): glActiveTexture(GL_TEXTURE0);
- 03-04 15:26:05.993: I/jPCT-AE(14142): glClientActiveTexture(33984) took 113718ns
- 03-04 15:26:05.993: D/libEGL(14142): glGetError();
- 03-04 15:26:05.994: D/libEGL(14142): glEnableVertexAttribArray(0);
- 03-04 15:26:05.994: I/jPCT-AE(14142): glEnableClientState(32888) took 47341ns
- 03-04 15:26:05.995: D/libEGL(14142): glGetError();
- 03-04 15:26:05.995: D/libEGL(14142): glBindBuffer(0x8892, 3);
- 03-04 15:26:05.995: I/jPCT-AE(14142): glBindBuffer(34962, 3) took 33052ns
- 03-04 15:26:05.995: D/libEGL(14142): glGetError();
- 03-04 15:26:05.996: D/libEGL(14142): glVertexAttribPointer(0, 2, GL_FIXED, GL_FALSE, 8, (const void *) 0x00000000);
- 03-04 15:26:05.996: I/jPCT-AE(14142): glTexCoordPointer(2, 5132, 8, 0) took 60093ns
- 03-04 15:26:05.996: D/libEGL(14142): glGetError();
- 03-04 15:26:05.997: D/libEGL(14142): glBindBuffer(0x8892, 0);
- 03-04 15:26:05.997: I/jPCT-AE(14142): glBindBuffer(34962, 0) took 70580ns
- 03-04 15:26:05.997: D/libEGL(14142): glGetError();
- 03-04 15:26:05.998: D/libEGL(14142): glBindBuffer(0x8893, 4);
- 03-04 15:26:05.998: I/jPCT-AE(14142): glBindBuffer(34963, 4) took 40971ns
- 03-04 15:26:05.998: D/libEGL(14142): glGetError();
- 03-04 15:26:05.998: D/libEGL(14142): glDrawElements(GL_TRIANGLES, 11904, GL_UNSIGNED_SHORT, (const void *) 0x00000000);
- 03-04 15:26:05.998: A/libc(14142): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xa2c665f0 in tid 14161 (GLThread 289)
Add Comment
Please, Sign In to add comment