Look at this program. If I use const bool use_rhw = true;
, it displays the texture properly, but if I change it to false, I only see black square with no texture. I need to rotate images, and D3DFVF_XYZRHW can't do that.
main.cpp
#include <d3d9.h>
#pragma comment(lib,"d3d9.lib")
//FUNCAHEAD
void THROW();
void THROWcom(const char* messagebox);
//FUNCAHEADEND
//VARS
const bool use_rhw = true;
int screen_offset_x = 0;
int screen_offset_y = 0;
int waiting_for_text_input = 0;
const int char_width = 9;
const int char_height = 16;
const float char_w_f = 9.0f;
const float char_h_f = 16.0f;
int g_window_w;
int g_window_h;
float g_window_w_f;
float g_window_h_f;
int g_window_w_char;
int g_window_h_char;
int textures_used = 0;
const bool paranoid = true; //LATER
const bool paranoid2 = false;
LPDIRECT3D9 d3d = NULL; // Used to create the D3DDevice
LPDIRECT3DDEVICE9 d3ddev = NULL; // Our rendering device
// A structure for our custom vertex type
struct CUSTOMVERTEX
{
FLOAT x, y, z; // The transformed position for the vertex
FLOAT tu, tv;
};
// Our custom FVF, which describes our custom vertex structure
//#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW | D3DFVF_TEX1)
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1)
struct CUSTOMVERTEX_RHW
{
FLOAT x, y, z, rhw; // The transformed position for the vertex
FLOAT tu, tv;
};
#define D3DFVF_CUSTOMVERTEX_RHW (D3DFVF_XYZRHW | D3DFVF_TEX1)
struct CUSTOMVERTEX_LINELIST
{
FLOAT x, y, z, rhw; // The transformed position for the vertex
D3DCOLOR c;
};
#define D3DFVF_CUSTOMVERTEX_LINELIST (D3DFVF_XYZRHW | D3DFVF_DIFFUSE )
LPDIRECT3DTEXTURE9 g_texture_text;
LPDIRECT3DVERTEXBUFFER9 g_vertexbuffer_lines = 0;
int g_vertexbuffer_lines_size = 1024;
int g_vertexbuffer_lines_used = 0;
LPDIRECT3DVERTEXBUFFER9 g_vertexbuffer_alsotext = 0;
const int g_vertexbuffer_alsotext_size = 0x1000;
int g_vertexbuffer_alsotext_used = 0x0;
unsigned char* image;
int image_width, image_height;
LPDIRECT3DVERTEXBUFFER9 image_vbuf = 0;
LPDIRECT3DTEXTURE9 image_texture = 0;
//these _not are here so that the default state of everything is always 0.
struct display {
bool need_redraw_not;
bool possible_to_draw_not;
int display_w;
int display_h;
};
struct display g_display;
struct view {
//int pos_y_img;
int pos_y;
int pos_x;
float scale;
bool need_scale_not;
};
HWND g_hwnd;
int g_background_color = 0x00000000;
float scale = 1.0f;
//int texttexturesource[1152];
#include "texttexturesource.h"
HANDLE g_heap;
const HANDLE BADHANDLE = INVALID_HANDLE_VALUE;
//VARSEND
//FUNC
void memget_init() {
g_heap = GetProcessHeap();
}
char* memget(UINT len) {
return (char*)HeapAlloc(g_heap, HEAP_ZERO_MEMORY, len);
}
char* memget_nonzero(UINT len) {
return (char*)HeapAlloc(g_heap, 0, len);
}
void memfree(char* mem) {
HeapFree(g_heap, 0, mem);
}
void memcopy(char* from, char* to, UINT len) {
#ifdef __DMC__
while (len--) {
*to++ = *from++;
}
#else
CopyMemory(to, from, len);
#endif
}
HANDLE file_open(const char* name, char mode) {
HANDLE res = 0;
if (mode == 'r') {
res = CreateFileA(name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
}
else if (mode == 'w') {
res = CreateFileA(name, GENERIC_WRITE, FILE_SHARE_READ, 0,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
}
return res;
//else if (mode == 'c') { //check
// return CreateFileA(name, 0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0,
// OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
//}
}
UINT file_get_size(HANDLE file) {
return GetFileSize(file, 0);
}
void file_read(HANDLE file, char* buf, UINT len) {
DWORD bytes_read;
ReadFile(file, buf, len, &bytes_read, 0);
}
void file_write(HANDLE file, char* buf, UINT len) {
DWORD bytes_written;
WriteFile(file, buf, len, &bytes_written, 0);
}
void file_close(HANDLE file) {
CloseHandle(file);
}
unsigned int next_power_of_2(unsigned int in) {
int out = 1;
while (out < in) {
out *= 2;
}
return out;
}
void THROW() {
MessageBoxA(0, "THROW", "THROW", 0);
ExitProcess(0);
}
void THROWcom(const char* messagebox) {
MessageBoxA(0, messagebox, "THROWcom", 0);
ExitProcess(0);
}
void LoadText() {
textures_used++;
d3ddev->CreateTexture(512, 512, 1, 0,
D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &g_texture_text, 0);
LPDIRECT3DSURFACE9 pSurface;
g_texture_text->GetSurfaceLevel(0, &pSurface);
D3DLOCKED_RECT lockedRect;
pSurface->LockRect(&lockedRect, 0, 0);
{
int* incur = texttexturesource;
int* oucur = (int*)lockedRect.pBits;
int inbits = 0;
int inval = 0;
for (int y = 0; y < 8 * 16; y++) {
for (int x = 0; x < 32 * 9; x++) {
if (inbits == 0) {
inval = *incur++;
inbits = 32;
}
if (inval & 0x80000000) {
*oucur++ = 0xffffffff;
}
else {
*oucur++ = 0x00000000;
}
inval = inval << 1;
inbits--;
}
oucur += 512 - 32 * 9;
}
incur = texttexturesource;
for (int y = 8 * 16; y < 16 * 16; y++) {
for (int x = 0; x < 32 * 9; x++) {
if (inbits == 0) {
inval = *incur++;
inbits = 32;
}
if (inval & 0x80000000) {
*oucur++ = 0x00000000;
}
else {
*oucur++ = 0xffffffff;
}
inval = inval << 1;
inbits--;
}
oucur += 512 - 32 * 9;
}
}
pSurface->UnlockRect();
pSurface->Release();
}
void RenderReset() {
if (g_vertexbuffer_lines) {
g_vertexbuffer_lines->Release();
g_vertexbuffer_lines = 0;
}
if (image_vbuf) {
image_vbuf->Release();
image_vbuf = 0;
}
if (g_vertexbuffer_alsotext) {
g_vertexbuffer_alsotext->Release();
g_vertexbuffer_alsotext = 0;
}
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dpp.BackBufferWidth = g_window_w;
d3dpp.BackBufferHeight = g_window_h;
HRESULT res = d3ddev->Reset(&d3dpp);
if (res != D3D_OK) THROW();
}
void fill_list_func(float*& p, float where_l, float where_r, float where_t, float where_b, float what_l, float what_r, float what_t, float what_b) {
/*lt*/
*p++ = where_l;
*p++ = where_t;
*p++ = 0.5f;
*p++ = 1.0f;
*p++ = what_l;
*p++ = what_t;
/* rt */
*p++ = where_r;
*p++ = where_t;
*p++ = 0.5f;
*p++ = 1.0f;
*p++ = what_r;
*p++ = what_t;
/*lb*/
*p++ = where_l;
*p++ = where_b;
*p++ = 0.5f;
*p++ = 1.0f;
*p++ = what_l;
*p++ = what_b;
/*lb*/
*p++ = where_l;
*p++ = where_b;
*p++ = 0.5f;
*p++ = 1.0f;
*p++ = what_l;
*p++ = what_b;
/*rt*/
*p++ = where_r;
*p++ = where_t;
*p++ = 0.5f;
*p++ = 1.0f;
*p++ = what_r;
*p++ = what_t;
/*rb*/
*p++ = where_r;
*p++ = where_b;
*p++ = 0.5f;
*p++ = 1.0f;
*p++ = what_r;
*p++ = what_b;
}
VOID Render() {
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, 0x0000FFFF, 1.0f, 0);
d3ddev->BeginScene();
// select which vertex format we are using
if (use_rhw) {
d3ddev->SetFVF(D3DFVF_CUSTOMVERTEX_RHW);
}
else {
d3ddev->SetFVF(D3DFVF_CUSTOMVERTEX);
}
int res = d3ddev->SetTexture(0, image_texture);
if (res != D3D_OK) THROWcom((char*)"SetTexture");
if (!use_rhw) {
D3DMATRIX matrix = {
2.0f / 4, 0.0f, 0.0f, 0.0f,
0.0f, 2.0f / 4, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f
};
d3ddev->SetTransform(D3DTS_VIEW, &matrix);
}
if (use_rhw) {
if (image_vbuf == 0) {
const int vertices_size = 1 * 6 * sizeof(CUSTOMVERTEX);
if (FAILED(d3ddev->CreateVertexBuffer(vertices_size,
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_MANAGED, &image_vbuf, NULL))) THROW();
float* p;
if (FAILED(image_vbuf->Lock(0, vertices_size, (void**)&p, 0))) THROW();
float where_x = 0.5f;
float where_y = 0.5f;
fill_list_func(p, where_x, where_x + 1024, where_y, where_y + 1024, 0.0f, 1.0f, 0.0f, 1.0f);
image_vbuf->Unlock();
}
}
else {
if (image_vbuf == 0) {
const int vertices_size = 1 * 6 * sizeof(CUSTOMVERTEX);
if (FAILED(d3ddev->CreateVertexBuffer(vertices_size,
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_MANAGED, &image_vbuf, NULL))) THROW();
CUSTOMVERTEX vertices[] =
{
{ -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, },
{ -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, },
{ 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, },
{ 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, },
{ -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, },
{ 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, },
};
void* p;
if (FAILED(image_vbuf->Lock(0, vertices_size, (void**)&p, 0))) THROW();
memcpy(p, vertices, sizeof(vertices));
image_vbuf->Unlock();
}
}
if (use_rhw) {
// select the vertex buffer to display
d3ddev->SetStreamSource(0, image_vbuf, 0, sizeof(CUSTOMVERTEX_RHW));
}
else {
d3ddev->SetStreamSource(0, image_vbuf, 0, sizeof(CUSTOMVERTEX));
}
// copy the vertex buffer to the back buffer
d3ddev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 2);
d3ddev->EndScene();
d3ddev->Present(NULL, NULL, NULL, NULL);
}
LRESULT WINAPI wWinMain_MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
bool down;
int is_repeat;
UINT32 scancode;
switch (msg)
{
case WM_SETFOCUS:
{
g_display.need_redraw_not = 0;
return 0;
}
case WM_SIZE:
{
//return 0;
g_window_w_f = g_display.display_w = g_window_w = (int)(short)LOWORD(lParam);
g_window_h_f = g_display.display_h = g_window_h = (int)(short)HIWORD(lParam);
g_display.need_redraw_not = 0;
if (g_window_w == 0 && g_window_h == 0) {
g_display.possible_to_draw_not = 1;
return 0;
}
else g_display.possible_to_draw_not = 0;
g_window_w_char = g_display.display_w / char_width;
g_window_h_char = g_display.display_h / char_height;
RenderReset();
return 0;
}
case WM_CLOSE:
//you may just comment this out
DestroyWindow(hWnd);
//PostQuitMessage(0);
return 0;
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
{
if (wParam == 'Q') {
DestroyWindow(hWnd);
}
return 0;
}
case WM_MOUSEWHEEL:
{
int zDelta;
zDelta = GET_WHEEL_DELTA_WPARAM(wParam) / WHEEL_DELTA;
//if (GetKeyState(VK_CONTROL) & 0x8000) {
// scale += zDelta * 0.1f;
//} else
if (GetKeyState(VK_SHIFT) & 0x8000) {
screen_offset_x += zDelta * 100 * scale;
}
else {
screen_offset_y += zDelta * 100 * scale;
}
g_display.need_redraw_not = 0;
return 0;
}
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
#ifdef __DMC__
void start()
#else
INT WINAPI wWinMain(HINSTANCE hInst, HINSTANCE, LPWSTR, INT)
#endif
{
memget_init();
const bool create_window_or_fullscreen = true;
// Register the window class
WNDCLASSEX wc =
{
sizeof(WNDCLASSEX), CS_CLASSDC, wWinMain_MsgProc, 0L, 0L,
GetModuleHandle(NULL), NULL, LoadCursor(NULL, IDC_ARROW), NULL, NULL,
"window", NULL
};
RegisterClassEx(&wc);
g_window_w = GetSystemMetrics(SM_CXSCREEN);
g_window_h = GetSystemMetrics(SM_CYSCREEN);
if (create_window_or_fullscreen) {
RECT rc = { 0, 0, 0, 0 };
AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW, false);
g_display.display_w = g_window_w + rc.left - rc.right;
g_display.display_h = g_window_h + rc.top - rc.bottom;
}
else {
g_display.display_w = g_window_w;
g_display.display_h = g_window_h;
}
g_window_w_f = (float)g_display.display_w;
g_window_h_f = (float)g_display.display_h;
g_window_w_char = g_display.display_w / char_width;
g_window_h_char = g_display.display_h / char_height;
HWND hWnd;
if (create_window_or_fullscreen) {
// Create the application's window
hWnd = CreateWindow("window", "window",
WS_OVERLAPPEDWINDOW, 0, 0, g_window_w, g_window_h,
NULL, NULL, wc.hInstance, NULL);
}
else {
//winapi borderless window fullscreen
//https://stackoverflow.com/questions/34462445/fullscreen-vs-borderless-window
hWnd = CreateWindow("window", "window",
WS_POPUP, 0, 0, g_window_w, g_window_h,
NULL, NULL, wc.hInstance, NULL);
}
g_hwnd = hWnd;
// Initialize Direct3D
//if( SUCCEEDED( InitD3D( hWnd ) ) )
if (NULL == (d3d = Direct3DCreate9(D3D_SDK_VERSION))) THROW();
{
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
if (FAILED(d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3ddev)))
{
THROW();
}
}
d3ddev->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
d3ddev->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
//copypaste
//g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
//g_pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
d3ddev->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
LoadText();
// Show the window
//ShowWindow(hWnd, SW_SHOWDEFAULT);
ShowWindow(hWnd, SW_MAXIMIZE);
UpdateWindow(hWnd);
// Enter the message loop
MSG msg;
ZeroMemory(&msg, sizeof(msg));
while (msg.message != WM_QUIT)
{
if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
{
if (waiting_for_text_input) {
TranslateMessage(&msg); //will send WM_CHAR, comment if don't need this
}
DispatchMessage(&msg);
}
else
{
bool bisy = false;
if (!g_display.need_redraw_not && !g_display.possible_to_draw_not) {
HRESULT res = d3ddev->TestCooperativeLevel();
if (res == D3D_OK) {
g_display.need_redraw_not = true;
Render();
bisy = true;
}
else if (res == D3DERR_DEVICELOST) {
Sleep(1);
}
else if (res == D3DERR_DEVICENOTRESET) {
RenderReset();
}
}
if (!bisy) {
Sleep(1);
}
}
}
ExitProcess(0);
return 0;
}
texturesource.h
#pragma once
int texttexturesource[1152] = { 0x00000000, 0x00000000, 0x00ff003f, 0xc0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00ff003f, 0xc0000000, 0x00008001, 0x00000003, 0xe0000000, 0x00000000, 0x00000000, 0x003f1f80, 0x00000000, 0x00ff003f, 0xc3c3c1f9, 0xfc00c003, 0x060cc7f6, 0x30003018, 0x0c000000, 0x00000000, 0x0040bfc0, 0x0000c060, 0x00ff003f, 0xc1c66199, 0x8c30e007, 0x0f0ccdb3, 0x0000783c, 0x0c000000, 0x00000000, 0x0052b6cd, 0x8101e0f0, 0x00ff003f, 0xc34661f9, 0xfc30f00f, 0x1f8ccdb1, 0xc000fc7e, 0x0c000000, 0x000041fc, 0x0040bfdf, 0xc381e1f8, 0x00ff1e30, 0xc6466181, 0x8db6f81f, 0x060ccdb3, 0x60003018, 0x0c060600, 0x0120e1fc, 0x0040bfdf, 0xc7c73bfc, 0x30e73326, 0x4f066181, 0x8c78fe7f, 0x060cc7b6, 0x30003018, 0x0c030c0c, 0x0330e0f8, 0x005eb0df, 0xcfe73bfc, 0x78c3212f, 0x5983c181, 0x8dcef81f, 0x060cc1b6, 0x30003018, 0x0c3f9fcc, 0x07f9f0f8, 0x004cb9df, 0xc7c739f8, 0x78c3212f, 0x59818181, 0x8c78f00f, 0x1f8cc1b3, 0x63f8fc18, 0x0c030c0c, 0x0331f070, 0x0040bfcf, 0x8380c060, 0x30e73326, 0x5987e381, 0x9db6e007, 0x0f0001b1, 0xc3f87818, 0x3f06060f, 0xe123f870, 0x0040bfc7, 0x0100c060, 0x00ff1e30, 0xd9818783, 0x9c30c003, 0x060cc1b0, 0x63f83018, 0x1e000000, 0x0003f820, 0x003f1f82, 0x0001e0f0, 0x00ff003f, 0xcf018703, 0x98308001, 0x000cc1b6, 0x33f8fc18, 0x0c000000, 0x00000000, 0x00000000, 0x00000000, 0x00ff003f, 0xc0000003, 0x00000000, 0x00000003, 0xe0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00ff003f, 0xc0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00ff003f, 0xc0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00ff003f, 0xc0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001980, 0x01800000, 0x60000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000c1980, 0x07c000e0, 0x600c1800, 0x00000000, 0x00003c0c, 0x1f0f80c7, 0xf0e1fc7c, 0x3e000000, 0x000000f8, 0x001e198d, 0x8c6001b0, 0x60180c00, 0x00000000, 0x0000661c, 0x3198c1c6, 0x01818cc6, 0x63000000, 0x6001818c, 0x001e090d, 0x8c2611b0, 0xc0300600, 0x00000000, 0x0004c33c, 0x0180c3c6, 0x03000cc6, 0x63060300, 0xc000c18c, 0x001e001f, 0xcc0630e0, 0x00300619, 0x83000000, 0x000cc30c, 0x0300c6c6, 0x03000cc6, 0x63060301, 0x83f06018, 0x000c000d, 0x87c061d8, 0x0030060f, 0x03000000, 0x0018db0c, 0x06078cc7, 0xe3f0187c, 0x3f000003, 0x00003030, 0x000c000d, 0x8060c370, 0x0030063f, 0xcfc007f0, 0x0030db0c, 0x0c00cfe0, 0x331830c6, 0x03000006, 0x00001830, 0x000c000d, 0x80618330, 0x0030060f, 0x03000000, 0x0060c30c, 0x1800c0c0, 0x331860c6, 0x03000003, 0x03f03030, 0x0000001f, 0xc8630330, 0x00300619, 0x83018000, 0x00c0c30c, 0x3000c0c0, 0x331860c6, 0x03060301, 0x80006000, 0x000c000d, 0x8c663330, 0x00180c00, 0x00018000, 0x6180660c, 0x3198c0c6, 0x331860c6, 0x06060300, 0xc000c030, 0x000c000d, 0x87c431d8, 0x000c1800, 0x00018000, 0x61003c3f, 0x3f8f81e3, 0xe1f0607c, 0x3c000600, 0x60018030, 0x00000000, 0x01800000, 0x00000000, 0x00030000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000e000, 0x00083f07, 0x8f87f3f8, 0x78c61e07, 0x9ccf061b, 0x18f8fc3e, 0x3f0f8ff6, 0x330d86c3, 0x61bfc780, 0x01e1b000, 0x7c1c198c, 0xc6c33198, 0xccc60c03, 0x0cc6073b, 0x998c6663, 0x1998cdb6, 0x330d86c3, 0x61b0c608, 0x00631800, 0xc6361998, 0x46631189, 0x84c60c03, 0x0cc607fb, 0xd98c6663, 0x1998c996, 0x330d8666, 0x61a1860c, 0x00600000, 0xc6631998, 0x066341a1, 0x80c60c03, 0x0d8607fb, 0xf98c6663, 0x198c0186, 0x330d863c, 0x3303060e, 0x00600000, 0xde631f18, 0x0663c1e1, 0x80fe0c03, 0x0f0606db, 0x798c7c63, 0x1f070186, 0x330d8618, 0x1e060607, 0x00600000, 0xde7f1998, 0x066341a1, 0xbcc60c03, 0x0f06061b, 0x398c6063, 0x1b018186, 0x330db618, 0x0c0c0603, 0x80600000, 0xde631998, 0x06630181, 0x8cc60c33, 0x0d86061b, 0x198c6063, 0x1980c186, 0x330db63c, 0x0c180601, 0xc0600000, 0xdc631998, 0x46631181, 0x8cc60c33, 0x0cc6261b, 0x198c606b, 0x1998c186, 0x3199fe66, 0x0c304600, 0xe0600000, 0xc063198c, 0xc6c33180, 0xccc60c33, 0x0cc6661b, 0x198c606f, 0x1998c186, 0x30f0ccc3, 0x0c30c600, 0x60600000, 0x7c633f07, 0x8f87f3c0, 0x74c61e1e, 0x1ccfe61b, 0x18f8f03e, 0x398f83c3, 0xe060ccc3, 0x1e3fc780, 0x21e00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000000, 0x000001fe, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x18003800, 0x01c000e0, 0x00e00c01, 0x9c038000, 0x00000000, 0x00000100, 0x00000000, 0x000001c1, 0x8381d800, 0x00001800, 0x00c001b0, 0x00600c01, 0x8c018000, 0x00000000, 0x00000300, 0x00000000, 0x00000301, 0x80c37000, 0x00001800, 0x00c00190, 0x00600000, 0x0c018000, 0x00000000, 0x00000300, 0x00000000, 0x00000301, 0x80c00020, 0x003c1e0f, 0x83c3e180, 0xec6c1c03, 0x8cc18733, 0x70f8dc3b, 0x370f8fc6, 0x630d86c3, 0x633f8301, 0x80c00070, 0x00061b18, 0xc6c633c1, 0x98760c01, 0x8d8187f9, 0x998c6666, 0x1d98c306, 0x630d8666, 0x63330e00, 0x007000d8, 0x003e1998, 0x0cc7f181, 0x98660c01, 0x8f0186d9, 0x998c6666, 0x198c0306, 0x630d863c, 0x63060301, 0x80c0018c, 0x00661998, 0x0cc60181, 0x98660c01, 0x8f0186d9, 0x998c6666, 0x18070306, 0x630db618, 0x630c0301, 0x80c0018c, 0x00661998, 0x0cc60181, 0x98660c01, 0x8d8186d9, 0x998c6666, 0x18018306, 0x6199b63c, 0x63180301, 0x80c0018c, 0x00661998, 0xccc63181, 0x98660c01, 0x8cc186d9, 0x998c6666, 0x1818c366, 0x60f1fe66, 0x63318301, 0x80c001fc, 0x003b1f0f, 0x8763e3c0, 0xf8e61e01, 0x9cc3c6d9, 0x98f87c3e, 0x3c0f81c3, 0xb060ccc3, 0x3f3f81c1, 0x83800000, 0x00000000, 0x00000000, 0x18000019, 0x80000000, 0x00006006, 0x00000000, 0x00000000, 0x03000000, 0x00000000, 0x00000000, 0x00000001, 0x98000019, 0x80000000, 0x00006006, 0x00000000, 0x00000000, 0x06000000, 0x00000000, 0x00000000, 0x00000000, 0xf000000f, 0x00000000, 0x0000f00f, 0x00000000, 0x00000000, 0x7c000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00701800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000302, 0x000300e0, 0x00100018, 0x00018303, 0x18d83000, 0x00020003, 0x00c0c000, 0x63318303, 0x8003f01c, 0x3c660607, 0x0cc181b0, 0x0038630c, 0x0cc3c180, 0x00706000, 0x0f870c61, 0x81e060c6, 0x00000306, 0xc6199836, 0x66000c0d, 0x8000c0e0, 0x006c0006, 0x000660c0, 0x40000000, 0x1b0d8000, 0xc3303000, 0x3e318fc6, 0x43319830, 0xc2000000, 0x00000000, 0x78000000, 0x00000000, 0xe070fe00, 0x33000000, 0x00000000, 0x63319866, 0x01e1f030, 0xc0661f0f, 0x0783c1e0, 0xcc7c3e1f, 0x070381c1, 0xb0d86637, 0x330f87c3, 0xe33198c6, 0x6331980f, 0x00c18830, 0xc0663181, 0x80c06030, 0xc0c66331, 0x830180c3, 0x198c601d, 0xbf98cc66, 0x333198c6, 0x63319806, 0x07f998fc, 0xc0663f8f, 0x87c3e1f0, 0xc0fe7f3f, 0x830180c3, 0x198c7c0d, 0xb318cc66, 0x333198c6, 0x63319806, 0x00c1bc30, 0xc2663019, 0x8cc66330, 0xccc06030, 0x030180c3, 0xf9fc603f, 0x3318cc66, 0x333198c6, 0x63319866, 0x07f99830, 0x66663019, 0x8cc66330, 0x78c06030, 0x030180c3, 0x198c606c, 0x3318cc66, 0x333198c6, 0x63318fc6, 0x00c19830, 0x3c663199, 0x8cc66330, 0x18c66331, 0x830180c3, 0x198c666e, 0x3318cc66, 0x333198c6, 0x6331830e, 0x60c19830, 0x0c3b1f0e, 0xc763b1d8, 0x0c7c3e1f, 0x0783c1e3, 0x198cfe3b, 0xb38f87c3, 0xe1d8ec7e, 0x3e1f030f, 0xc0c3cc30, 0x06000000, 0x00000000, 0x78000000, 0x00000000, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x000001b0, 0x7c000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000c, 0x00000000, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0003b000, 0x00000000, 0x00000000, 0x000011aa, 0xf7630180, 0xc0d80000, 0x1b0d8003, 0x61b06000, 0x18060603, 0x0006e0f0, 0x70000000, 0x180c0000, 0x00004455, 0x1de30180, 0xc0d80000, 0x1b0d8003, 0x61b06000, 0x300c0c06, 0x076001b0, 0xd8300000, 0x180c00c0, 0x000011aa, 0xf7630180, 0xc0d80000, 0x1b0d8003, 0x61b06000, 0x6018180c, 0x0dc631b0, 0xd8300000, 0x184c20c0, 0x00004455, 0x1de30180, 0xc0d80000, 0x1b0d8003, 0x61b06000, 0x00000000, 0x000730f8, 0x70000000, 0x18cc6000, 0x000011aa, 0xf7630180, 0xc0d80000, 0x1b0d8003, 0x61b06000, 0x781c1f19, 0x8dc7b000, 0x00300000, 0x198cc0c0, 0xd9b04455, 0x1de30187, 0xc0d800f8, 0x7b0d9fcf, 0x61b3e000, 0x0c0c3199, 0x8667f1f8, 0xf8307f3f, 0x830180c1, 0xb0d811aa, 0xf7630180, 0xc0d80018, 0x030d80c0, 0x61b06000, 0x7c0c3199, 0x8666f000, 0x00606001, 0x860300c3, 0x606c4455, 0x1de30f87, 0xc3d9fcf8, 0x7b0d9ecf, 0xe7f3e1f0, 0xcc0c3199, 0x86667000, 0x00c06001, 0x8c0661e1, 0xb0d811aa, 0xf7630180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0xcc0c3199, 0x86663000, 0x00c66001, 0x99cce1e0, 0xd9b04455, 0x1de30180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0xcc0c3199, 0x86663000, 0x00c66001, 0x936961e0, 0x000011aa, 0xf7630180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0x761e1f0e, 0xc6663000, 0x007c0000, 0x00c3e0c0, 0x00004455, 0x1de30180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x01806000, 0x000011aa, 0xf7630180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x03e06000, 0x00004455, 0x1de30180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011aa, 0xf7630180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004455, 0x1de30180, 0xc0d86c18, 0x1b0d86c0, 0x00000030, 0x180c0003, 0x0000c060, 0x6c36000d, 0x80036000, 0xd8303600, 0x0006c180, 0x00006c18, 0x0c001ff0, 0x07803fff, 0x180c0003, 0x0000c060, 0x6c36000d, 0x80036000, 0xd8303600, 0x0006c180, 0x00006c18, 0x0c001ff0, 0x07803fff, 0x180c0003, 0x0000c060, 0x6c36000d, 0x80036000, 0xd8303600, 0x0006c180, 0x00006c18, 0x0c001ff0, 0x07803fff, 0x180c0003, 0x0000c060, 0x6c36000d, 0x80036000, 0xd8303600, 0x0006c180, 0x00006c18, 0x0c001ff0, 0x07803fff, 0x180c0003, 0x0000c060, 0x6c36000d, 0x80036000, 0xd8303600, 0x0006c180, 0x00006c18, 0x0c001ff0, 0x07803fff, 0x180c0003, 0x0000c07e, 0x6c379ffd, 0xfff37fff, 0xdfff367f, 0xc006c1f8, 0xfc006cff, 0x8c001ff0, 0x07803fff, 0x180c0003, 0x0000c060, 0x6c301800, 0x00030000, 0x00003600, 0x0006c180, 0xc0006c18, 0x0c001ff0, 0x07803fff, 0x1fffffe3, 0xfffffc7e, 0x6f3f9bff, 0xfef37fff, 0xdfffffff, 0xffe7f1f8, 0xfcffffff, 0xfc07ffff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000603, 0x0000c060, 0x6c001b00, 0x06c36000, 0xd800000c, 0x0d800000, 0xc0d86c18, 0x00061fff, 0xff803e00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xc0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xc0000038, 0x000001ed, 0x83800000, 0x003c3f80, 0x00000000, 0x0000000e, 0x03c00000, 0x70000000, 0x000000e0, 0xc000006c, 0x00000186, 0xc6c00000, 0x00663180, 0x0fe00000, 0x007e1c1b, 0x06000018, 0xc0f80000, 0x0c0181b0, 0xc000006c, 0x00000186, 0xc1800000, 0x0066319f, 0xcc600198, 0xec183631, 0x83000031, 0x818cfe0c, 0x060301b0, 0xc0600038, 0x00000186, 0xc301f000, 0x7666300d, 0x8603f199, 0xb83c6331, 0x8187e3f1, 0x818c000c, 0x03060180, 0xc060ec00, 0x00000186, 0xc641f000, 0xdc6c300d, 0x8306c198, 0x30666331, 0x87cdb6d9, 0xf18c003f, 0x018c0180, 0xc001b800, 0x00000186, 0xc7c1f000, 0xd866300d, 0x8186c198, 0x30667f1b, 0x0ccdb6d9, 0x818cfe0c, 0x03060180, 0xc1f80000, 0x0c001d80, 0x0001f000, 0xd863300d, 0x8306c198, 0x3066631b, 0x0ccdb799, 0x818c000c, 0x06030186, 0xc000ec00, 0x0c060d80, 0x0001f000, 0xd863300d, 0x8606c1f0, 0x303c631b, 0x0cc7e3f1, 0x818c0000, 0x0c018186, 0xc061b800, 0x00000d80, 0x0001f000, 0xdc63300d, 0x8c66c180, 0x3018361b, 0x0cc00300, 0xc18cfe00, 0x00000186, 0xc0600000, 0x00000780, 0x0001f000, 0x7666300d, 0x8fe38180, 0x307e1c3b, 0x87800600, 0x718c007f, 0x9f8fc183, 0x80000000, 0x00000380, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000180, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000180, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000180, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000180, 0x00000000, 0x00000000, 0x00000000 };
If you have any hints on what it can be, email me at sergei012321 at tutanota.com
User contributions licensed under CC BY-SA 3.0