Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General feedback on 2.1.5 beta builds #16813

Closed
7 of 10 tasks
akien-mga opened this issue Feb 19, 2018 · 56 comments
Closed
7 of 10 tasks

General feedback on 2.1.5 beta builds #16813

akien-mga opened this issue Feb 19, 2018 · 56 comments
Assignees
Milestone

Comments

@akien-mga
Copy link
Member

akien-mga commented Feb 19, 2018

Godot version:
Godot 2.1.5-beta (dev snapshots)

Now that 3.0 is out and while many are waiting for 3.1 to get back their OpenGL 2.1 or OpenGL ES 2.0 support, it's time for an update to the 2.1 "old" stable branch which is still used in production by many.

There have been tons of changes since 2.1.4 in the 2.1 branch, some of which may have introduced regressions or API breakages - during 3.0 development, the pressure to get new features in 2.1 was high and we were less conservative than we plan to be for 3.0.x releases.

This thread should serve to notify of potential regressions or breakages that you will find in 2.1.5-beta builds, and which were not present in 2.1.4-stable. This is not the place for feature requests - and at this stage we really don't want to spend too much time on 2.1 features, finishing 3.1 has much high priority.

Please test it on your games (after doing backups/using version control of course!) and report any potential breakage. It would be especially useful to test it on complex games currently in production with 2.1.4. If you're using custom compiled templates to add some modules (Steam, ads, etc.), check the README.txt file in each beta's folder to know what commit it was made from.


Downloads:


Reported issues/fixes done so far:

@akien-mga akien-mga added this to the 2.1 milestone Feb 19, 2018
@ObaniGemini
Copy link

ObaniGemini commented Feb 19, 2018

#10262 Still happens

@ObaniGemini
Copy link

#16814 Still happens too

@akien-mga
Copy link
Member Author

akien-mga commented Feb 19, 2018

#10262 Still happens

Thanks, should now be fixed with be4b63a (and f637578 as hotfix for build issue).

@ghost
Copy link

ghost commented Feb 19, 2018

I think it would be helpful to know what has changed between 2.1.4 and 2.1.5. Particularly regarding exporting from Godot 2 to 3.

@eon-s
Copy link
Contributor

eon-s commented Feb 20, 2018

The exporter improved a lot but also 3 changed many things, all the demos may need to be tested for export again.

@Ranoller
Copy link
Contributor

Ranoller commented Feb 20, 2018

works well in general... A bug that was never fixed is that godot can crash in windows on quit if physics are multithreading no matters you queue quit. It only happend to me in a slow computer. This was reported long time ago by linux user but i don't find issue.

The exporter do strange things. Most relevant is duplicate / bad allocate some project settings: ej->icon I will try to report finded issues

@eon-s
Copy link
Contributor

eon-s commented Feb 20, 2018

@Ranoller I have seen duplicate entries on some demos, but some of these were made with earlier version of the exporter, if you see it again open an issue because I do not remember seeing one about it.

@Ranoller
Copy link
Contributor

I did the export today, with a buid compiled yesterday, so the issues are here. Tomorrow I will try to recopilate info.

@ghost
Copy link

ghost commented Feb 20, 2018

My hope is the final version of Godot 2 contains a fully Godot 3 compatible exporter.

@vnen
Copy link
Member

vnen commented Feb 20, 2018

@davidpgil the exporter can only do so much, it'll always require manual work. The purpose of the converter is mostly to allow you to open the scenes and resources on Godot 3 so you can fix the problems using the editor interface.

@Ranoller
Copy link
Contributor

Ranoller commented Feb 20, 2018

Project Settings that are in ported project and not in new project in Godot3:

  • Rendering/2d/use_pixel_snap (new property is in rendering/quality/2d/use_pixel_snap)
  • Rendering/viewport/default_clear_color (new property is in rendering/environment/viewport/default_clear_color)
  • Debug/stdout/print_fps (new property is in debug/settings/print_fps)
  • Display/stretch/aspect and Display/stretch/mode (new property are in display/window/stretch)
  • Autoload (a list with autoloads)
  • Editor Plugins/enabled (have their own folder, for now no editor plugin is imported)
  • Image Loader/filter
  • Importer Defaults/texture
  • Physics 2d/Motion_fix_enabled
  • Rasterizer/low_memory_2d_mode
  • Rasterizer/Textscreen_filtered
  • Render/Light_discard_enabled
  • Render/Mipmap_policy
  • Render/Room_cull_enabled
  • Render/Shadows_enabled
  • Application/Icon (new is Application/Config/Icon) --- This is very visible bad-convertion because exported projects from godot 2 always have default icon in project manager no matters you change that. (Until you find the duplicated option)
  • Rendering/Quality/Anisotropic_Filter_Level (new property is in Rendering/Quality/Filters/Anisotropic_Filter_Level)

@Ranoller
Copy link
Contributor

Ranoller commented Feb 20, 2018

Exporter seems to not suport UTF-8 characters:

·Nuevaanimación becomes NuevaanimaciÃ�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�Â�Ã�³n

@eon-s
Copy link
Contributor

eon-s commented Feb 20, 2018

That is an encoding issue, it seems, but is never good to use tildes in names anyway...

Open an issue about it and please use something like

<details></details>

@Ranoller
Copy link
Contributor

Some complete words that can be changed in experimental script exporter without much parsing:

.pos -> .position
.get_pos() ->.position
.o -> .origin

All methods that was changed from OS to Engine.

is_hidden -> !is_visible
Matrix32() -> Transform2D()

And somethings listed here: #9656

@Ranoller
Copy link
Contributor

This tilde is by default in godot (I didn´t push it). In spanish Animation -> animación

@akien-mga
Copy link
Member Author

Exporter seems to not suport UTF-8 characters:
·Nuevaanimación becomes NuevaanimaciÃ�Â�Ã�Â�Ã�Â�Ã�Â�Ã�

@Ranoller Could you open a new issue for that one, and attach an example project that triggers the issue on export? I'll have a look at it.

@ghost
Copy link

ghost commented Feb 20, 2018

@vnen I hope Godot 2 will be able to fully export to Godot 3 without any manual tweaking in the future. Its stuff like this that makes people point the main flaw in free software. Imagine if you could not open an older Photoshop file in a new version of Photoshop without a bunch of tweaking. Seems pretty bad, no? I know its unfair to compare free software to proprietary software, but I do think it makes any game dev really hesitate to use Godot. It seems pretty unprofessional to just shrug off this feature I'm hoping for.

@akien-mga
Copy link
Member Author

Its stuff like this that makes people point the main flaw in free software.

No, it's stuff like that that allows Godot to innovate and have a great architecture, compared to proprietary engines like Unity or Unreal which have such a huge technical debt that they can only work around their bad design decisions to avoid breaking compat.

For 3.0, we were at a stage where Godot's user base was small enough (and especially the number of published and in-development serious projects) that we could allow ourselves such compatibility breakage.

A fully functional out-of-the-box export is not possible, some of the stuff used in Godot 2 has simply no equivalent in Godot 3. The current exporter can be improved though, and you're welcome to report issues or even better, contribute enhancements.

@ghost
Copy link

ghost commented Feb 20, 2018

@akien-mga , with due respect, that is really an excuse. As you know writing software can be ugly. Of course mistakes happen. Solutions are ALWAYS possible. Even if the solution is ugly. If its possible to manually port a file to Godot 3 after the current exporter, then its possible to do it programmatically. I don't want this to turn to be debate, but I don't think is unreasonable to do. I don't have much experience with C++ but I can see what I can do. Would you help me find the exporter in the Godot source code?

@akien-mga
Copy link
Member Author

akien-mga commented Feb 20, 2018

@davidpgil It's all in https://github.com/godotengine/godot/blob/2.1/editor/editor_export_godot3.cpp

If its possible to manually port a file to Godot 3 after the current exporter, then its possible to do it programmatically.

Not necessarily - or it would have to be a two step process: first one exporter in Godot 2, then one importer in Godot 3. Because the manual steps you have to do in Godot 3 after export use Godot 3 features, which are missing in Godot 2. Having a fully functional exporter would mean reimplementing part of Godot 3 in Godot 2...

@ghost
Copy link

ghost commented Feb 20, 2018

Why not have an importer in Godot 3 then? That makes sense to me. Export from Godot 2 then import that project, or perhaps detect a project exported from Godot 2, then do the remaining conversions in Godot 3? Thanks for sharing the code... My C++ is very rusty I realize upon looking at the code. What do you suggest? I would like to at least try to make this project conversion work, at least, for my own project.

@Ranoller
Copy link
Contributor

·Exporter doesn´t generate default_env.tres

@akien-mga
Copy link
Member Author

What do you suggest? I would like to at least try to make this project conversion work, at least, for my own project.

Well, convert your project. See what works, what doesn't, and try to see how to fix what doesn't work. (First manually, then you can think about how to do it programmatically).

@Ranoller
Copy link
Contributor

Ranoller commented Feb 20, 2018

Sorry for change conversation but i have to say that some of the bad ported settings can become in:

SCRIPT ERROR: (null): Expected 'shader_type2 at the beggining of shader At:1 - ERROR: RasterizerStorageGLES3::_update_shader: Condition err != OK is true. AT: drivers\gles3\resterizer_storage_gles3.cpp:1697.

This error is triggered by aditional settings in project.godot [rendering].

My project have this imported settings:
[rendering]

quality/intended_usage/framebuffer_allocation=0
quality/intended_usage/framebuffer_allocation.mobile=0
quality/2d/use_pixel_snap=true
threads/thread_model=2
quality/filters/use_nearest_mipmap_filter=true
environment/default_clear_color=Color( 0, 0.181854, 0.230469, 1 )
quality/filters/msaa=1
2d/use_pixel_snap=true
viewport/default_clear_color=Color( 0.101961, 0.101961, 0.101961, 1 )

If I manually delete all of them error is gone. So is important to correct asign old - settings to new settings.

@avril-gh
Copy link
Contributor

Theres serious performance issue of instancing in 2.1.4 that make it impossible to load big levels without freezing main thread. #16769
Seems like its been solved in 3.x branch by @reduz so maybe could be good backport it to 2.x

@Ranoller
Copy link
Contributor

Ranoller commented Feb 20, 2018

Theres serious performance issue of instancing in 2.1.4 that make it impossible to load big levels without freezing main thread. #16769
Seems like its been solved in 3.x branch by @reduz so maybe could be good backport it to 2.x

I vote for that very strong.
Background loading levels is virtually impossible in godot 2. Very very tricky resource preloads to not freeze game.

@eon-s
Copy link
Contributor

eon-s commented Mar 25, 2018

@NicoLira open an issue about that, and mention if it is a regression (i.e. it worked right on previous versions and which one).

@ghost
Copy link

ghost commented Mar 26, 2018

In the RC1, this one is still present: #17566

And now when I run my most recent project, I get an error dump, and I really have no idea where to proceed with it. Any suggestions?

crash

@akien-mga
Copy link
Member Author

@avencherus Could you send me that project for debugging? Otherwise try to compile the 2.1 branch from source to get debug info when it crashes.

@eon-s
Copy link
Contributor

eon-s commented Mar 26, 2018

Another ParallaxLayer regression #17764

@ghost
Copy link

ghost commented Mar 26, 2018

@akien-mga Yes I can, though it is a little bit large. For now I will toss the project as is onto Google drive and email you the link. I'll title it: "CrashHandlerException 2.1.5 RC1" If there is better or more preferred way, let me know. I really appreciate you taking a look into it, I've been so tunnel vision on making the games that I'm still quite clueless about the deeper internals of Godot itself.

@akien-mga
Copy link
Member Author

@avencherus Thanks, got it. Moved the debugging to #17780.

@mokalux
Copy link

mokalux commented Mar 30, 2018

Hello there dear godot devs.
I posted a question on the forum but had no reply:
https://godotengine.org/qa/26348/how-can-i-access-the-id-in-a-translation-file

I may have found a bug. I'll try to explain briefly: I have a .csv file for translation which works fine BUT:

var pre = preload("res://words.en.xl").get_message_list() # =array list of all the IDs
var pre1 = preload("res://words.en.xl").get_message_list()[0] #<- NOT THE ID BUT THE TRANSLATION!

Can you confirm and do I fill a bug godot 2.1.5 rc1

@rcurtis
Copy link
Contributor

rcurtis commented Apr 13, 2018

I wish I could provide more information here, but after testing a large Godot game with this RC, performance is absolutely terrible.

Previously the game ran at a rock solid 60 - 90 fps, it now bounces from 2 - 50 FPS. The GD profiler is almost no help in identifying what is taking all the extra time.

@RandomShaper
Copy link
Member

@rcurtis, so the exact same game project on the same hardware & OS runs much smoother on 2.1.4, right?

It would be very helpful to know at which pre-release of 2.1.5 the performance drop starts: 2.1.5-beta.1, 2.1.5-beta.2 or right at 2.1.5-rc.1.

@ghost
Copy link

ghost commented Apr 16, 2018

Tried running in 2.1.5 RC, the game started for a flicker of a moment and crashed immediately with another vague trace. At first I had a crash because the Input.set_custom_mouse_cursor() had been updated to have the shape parameter. Has there been any other API changes that I could take a look at?

godot_v2 1 5-rc1_win64_2018-04-15_21-38-59

@rcurtis
Copy link
Contributor

rcurtis commented Apr 16, 2018

@RandomShaper After looking at it further, it seems to only tank in performance while the remote scene tree tab is open.

@Zireael07
Copy link
Contributor

Performance tanking with remote scene tree is a known thing. Don't use remote scene tree unless you really need it.

@ghost
Copy link

ghost commented Apr 20, 2018

With further testing there are issues with Input.set_custom_mouse_cursor() that have been introduced.

The first I found was that using an .atex for the texture of the cursor causes a crash. With some help from @eon-s and @Zylann I have this stack trace on it.

  • CrashHandlerException: Program crashed
  • Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
  • [0] ImageTexture::get_data (c:\godot\godot 2.1\builds\current 2.1.5 rc\scene\resources\texture.cpp:259)
  • [1] ImageTexture::get_data (c:\godot\godot 2.1\builds\current 2.1.5 rc\scene\resources\texture.cpp:259)
  • [2] OS_Windows::set_custom_mouse_cursor (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\os_windows.cpp:1983)
  • [3] InputDefault::set_custom_mouse_cursor (c:\godot\godot 2.1\builds\current 2.1.5 rc\main\input_default.cpp:504)
  • [4] MethodBind3<Input,Ref const & __ptr64,enum Input::CursorShape,Vector2 const & __ptr64>::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\method_bind.gen.inc:1994)
  • [5] Object::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\object.cpp:853)
  • [6] Variant::call_ptr (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\variant_call.cpp:991)
  • [7] GDFunction::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\modules\gdscript\gd_function.cpp:641)
  • [8] GDInstance::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\modules\gdscript\gd_script.cpp:1112)
  • [9] Object::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\object.cpp:832)
  • [10] Variant::call_ptr (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\variant_call.cpp:991)
  • [11] GDFunction::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\modules\gdscript\gd_function.cpp:641)
  • [12] GDInstance::call_multilevel (c:\godot\godot 2.1\builds\current 2.1.5 rc\modules\gdscript\gd_script.cpp:1128)
  • [13] Object::call_multilevel (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\object.cpp:590)
  • [14] SceneTree::_call_input_pause (c:\godot\godot 2.1\builds\current 2.1.5 rc\scene\main\scene_main_loop.cpp:829)
  • [15] Viewport::input (c:\godot\godot 2.1\builds\current 2.1.5 rc\scene\main\viewport.cpp:2274)
  • [16] Viewport::_vp_input (c:\godot\godot 2.1\builds\current 2.1.5 rc\scene\main\viewport.cpp:1371)
  • [17] MethodBind1<Viewport,InputEvent const & __ptr64>::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\method_bind.gen.inc:730)
  • [18] Object::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\object.cpp:853)
  • [19] Object::call (c:\godot\godot 2.1\builds\current 2.1.5 rc\core\object.cpp:732)
  • [20] SceneTree::call_group (c:\godot\godot 2.1\builds\current 2.1.5 rc\scene\main\scene_main_loop.cpp:208)
  • [21] SceneTree::input_event (c:\godot\godot 2.1\builds\current 2.1.5 rc\scene\main\scene_main_loop.cpp:422)
  • [22] InputDefault::parse_input_event (c:\godot\godot 2.1\builds\current 2.1.5 rc\main\input_default.cpp:349)
  • [23] OS_Windows::WndProc (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\os_windows.cpp:456)
  • [24] WndProc (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\os_windows.cpp:807)
  • [25] CallWindowProcW
  • [26] CallWindowProcW
  • [27] glDebugEntry
  • [28] CallWindowProcW
  • [29] DispatchMessageW
  • [30] OS_Windows::process_events (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\os_windows.cpp:1939)
  • [31] OS_Windows::run (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\os_windows.cpp:2410)
  • [32] widechar_main (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\godot_win.cpp:149)
  • [33] _main (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\godot_win.cpp:171)
  • [34] main (c:\godot\godot 2.1\builds\current 2.1.5 rc\platform\windows\godot_win.cpp:183)
  • [35] __scrt_common_main_seh (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253)
  • [36] BaseThreadInitThunk
  • -- END OF BACKTRACE --

Then once I started trying to use PNG and TEX files in the parameter the crashing stops. However, in my main scene the cursor appears for a brief moment, then vanishes, and then seems to be in a busy mode. After about a minute or two, then my cursor finally appears.

I thought maybe working around this by setting the busy shape, but no luck there.

I even tried applying the custom cursor texture to all shape types, but no result with that either.

const CROSSHAIR_TEX  = preload("res://resources/textures/special/cursor_crosshair.tex")

# ... elsewhere

for i in range(17):
	Input.set_custom_mouse_cursor(CROSSHAIR_TEX, i, CROSSHAIR_TEX.get_size() / 2.0)

If anyone has any suggestions to what this problem might be about, or what I can test? Let me know. Thanks.

@akien-mga
Copy link
Member Author

With further testing there are issues with Input.set_custom_mouse_cursor() that have been introduced.

CC @guilhermefelipecgs

@guilhermefelipecgs
Copy link
Contributor

@avencherus can you provide an example project?

@ghost
Copy link

ghost commented Apr 20, 2018

@guilhermefelipecgs For the .atex one, I can do that, but it's roughly two lines of code.

Mouse Cusor Bug.zip

As for the delayed appearance issue, I haven't been able to find out the exact conditions for causing it. When I try to do anything in a smaller scene, it appears to work fine. The main scene is quite large, hundreds of scenes and textures put into scene placeholders.

The cursor texture and all my assets are preloaded, so I don't know exactly what it might be waiting for, or why the cursor is showing a busy shape, while it not exactly being a busy shape, since it doesn't change when setting all the shapes to a custom cursor.

I'm up to try things out if you have theories, but otherwise I'm out of ideas, and I don't have a lot of time at the moment to mess around with it.

Hope some of that helps.

@guilhermefelipecgs
Copy link
Contributor

guilhermefelipecgs commented Apr 20, 2018

@avencherus set_custom_mouse_cursor only support Texture resources and will not work with atlas texture (*.atex), but should work with *.png and *.tex.
void set_custom_mouse_cursor( Texture image, int shape=0, Vector2 hotspot=Vector2(0, 0) )

This way shold work for .atex:
Input.set_custom_mouse_cursor(CURSOR.get_atlas(), 0, CURSOR.get_size() / 2.0)

But only with 32x32 pixel size on 2.1.5 beta, this restrictions was removed later 0988796.

About the delay, I don't know what could be the cause of it.

for i in range(17): Input.set_custom_mouse_cursor(CROSSHAIR_TEX, i, CROSSHAIR_TEX.get_size() / 2.0)

This probably will not work because set_custom_mouse_cursor has a bug and I only fix on master #18089, I'll make a port for 2.1. Meanwhile, try this way to see if you notice any diference:

for i in range(17):
	Input.set_custom_mouse_cursor(null, i) # Hack
	Input.set_custom_mouse_cursor(CROSSHAIR_TEX, i, CROSSHAIR_TEX.get_size() / 2.0)

Update: 2.1 doesn't have this problem.

@ghost
Copy link

ghost commented Apr 21, 2018

@guilhermefelipecgs Interesting. Thanks for the information. I will give those a try in the morning, and I will let you know what happens.

@ghost
Copy link

ghost commented Apr 21, 2018

@guilhermefelipecgs Ok I gave those things a try, and have some results to share.

  1. The get_atlas() works half way. It has a catch. The code uses the atlas' texture size for it's validation. In my case mine is 1024x1024. So it takes the parameter and has this error.

I noticed in your change the limit was increased, but even if it was high enough to allow, I get the impression it will fail at something further down the road if it needs the actual region dimensions (32x32, etc.).

error

  1. As far as I can tell 2.1.4 takes the .atex argument. I imagine if it isn't to be supported going forward, it may be better to have an error instead of the mysterious crash.

  2. The hack suggested didn't change the result for delayed cursor change. As seen here, it still takes about 10-20 seconds to present itself.

crosshair

  1. Possible Clue: What I did discover is that if I move the mouse cursor out of the window and then back over the window, the cursor will change/update immediately to the custom cursor texture. This happens in both full screen and windowed mode.

ezgif com-video-to-gif

@guilhermefelipecgs
Copy link
Contributor

guilhermefelipecgs commented Apr 21, 2018

@avencherus

Possible Clue: What I did discover is that if I move the mouse cursor out of the window and then back over the window, the cursor will change/update immediately to the custom cursor texture. This happens in both full screen and windowed mode.

Can you try this custom build that I made? I just put some logs: godot.windows.tools.64.exe.zip

I'm trying to understand why your cursor gets stuck on wait.
Do you set cursor wait by the code?

Start your project and move your cursor just a little to get a result similar to this (don't exit the window like you did in the gif 4), then send me the result:

log

@ghost
Copy link

ghost commented Apr 21, 2018

@guilhermefelipecgs Sure thing, thanks for taking the time to investigate.

To answer your question, the only cursor related things I've done so far is change the mouse mode to hidden/visible for joypad play (which I have commented out and back in during these tests with no difference) and when the player uses the mouse, set the custom cursor to a cross hair. So the joypad it's off, and mouse it has a 32x32 texture. Nothing more fancy than that at the moment.

The console output is the following:

  • WM_SETCURSOR
  • set_cursor_shape = 0
  • WM_MOUSEMOVE set_cursor_shape(0)
  • set_cursor_shape = 0
  • WM_MOUSEMOVE set_cursor_shape(0)
  • Opening project: mypath(mypath)
  • running cmdline: "mypath\godot.windows.tools.64.exe" "-path" "mypath" "-editor"
  • unicode error: invalid skip
  • ERROR: PopupMenu::get_item_text: Index p_idx out of size (items.size()).
  • At: scene\gui\popup_menu.cpp:674
  • ERROR: PopupMenu::set_item_checked: Index p_idx out of size (items.size()).
  • At: scene\gui\popup_menu.cpp:622
  • WM_SETCURSOR
  • set_cursor_shape = 0
  • WM_MOUSEMOVE set_cursor_shape(0)
  • running: mypath\Desktop\godot.windows.tools.64.exe -path mypath -rdebug 127.0.0.1:6096 -allow_focus_steal_pid 8588 -p 0x0 res://debug_startup.tscn
  • running cmdline: "mypath\Desktop\godot.windows.tools.64.exe" "-path" "mypath" "-rdebug" "127.0.0.1:6096" "-allow_focus_steal_pid" "8588" "-p" "0x0" "res://debug_startup.tscn"
  • set_mouse_mode
  • set_cursor_shape = 0
  • WM_MOUSEMOVE set_cursor_shape(0)
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • set_mouse_mode
  • MOUSE_MOTION
  • WM_SETCURSOR
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • MOUSE_MOTION
  • Shutting down

  • GAME IS CLOSING!
  • Game Shutdown.
  • EXIT GAME (prints mainly in game.gd)
  • set_cursor_shape = 0
  • WM_MOUSEMOVE set_cursor_shape(0)

I have a few print lines of my own when I close the game. I also kept the cursor inside the window as you asked, so it remained spinning as busy.

@guilhermefelipecgs
Copy link
Contributor

@avencherus I think I found the problem, can you test again with this patched version, pls? godot.windows.tools.64.exe.zip

About the atlas texture, I added a validation to show an error instead of crash.

@ghost
Copy link

ghost commented Apr 21, 2018

@guilhermefelipecgs Nice work, it looks like you got it. Curious what it was. X)

The cursor appears immediately as far as I can visually see, and here is the console result. If anything else related to this pops up in the meanwhile, I will let you know.

2018-04-21_22-48-14

When it comes to using an atlas texture as a cursor, like the following code below. I'm assuming it is still trying to use the main textures dimensions, rather than the atlas region size.

print(CROSSHAIR_TEX.get_atlas().get_size())
Input.set_custom_mouse_cursor(CROSSHAIR_TEX.get_atlas(), 0, Vector2(16, 16))

This is what occurs.
err

@akien-mga
Copy link
Member Author

2.1.5-stable has been released, closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests