Play Shockwave content in modern browsers
// ==UserScript==
// @name Shockwave Player for Modern Browsers
// @namespace
// @description Play Shockwave content in modern browsers
// @homepageURL https://teddybeargaming1.web.app
// @copyright 2025, Teddybear Software (http://tbsw.net)
// @require https://greasyfork.org/scripts/466069-swf2js/code/swf2js.js?version=1189198
// @match *://*/*
// @version 1.00-openbg
// @icon data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpvc2I9Imh0dHA6Ly93d3cub3BlbnN3YXRjaGJvb2sub3JnL3VyaS8yMDA5L29zYiIKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIGlkPSJzdmcyIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuNDguMy4xIHI5ODg2IgogICB3aWR0aD0iOTg2LjAzNjU2IgogICBoZWlnaHQ9Ijk4Ni4wODE0MiIKICAgc29kaXBvZGk6ZG9jbmFtZT0iQWRvYmVfRmxhc2hfUGxheWVyXzEwLnBuZyI+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGRlZnMKICAgICBpZD0iZGVmczYiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1Mzc2Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1Mzg0IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlN2U3ZTc7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDUzODAiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzYwIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1MzYyIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZTdlN2U3O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDUzNjQiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzUyIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzRlMTExZDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1MzU0IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojOGYxYTFlO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDUzNTYiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzI4Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzdjMTMxNTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1MzMwIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZTgxYzI0O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDUzMzIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzIwIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2U1ZTVlNTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1MzIyIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDUzMjQiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzE0IgogICAgICAgb3NiOnBhaW50PSJzb2xpZCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlZGVkZWQ7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTMxNiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiCiAgICAgICBpbmtzY2FwZTp2cF94PSIxNC44MDEzMDMgOiA0MjguODc0MjcgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfej0iMTEwNi40MTA0IDogNTIzLjYwMjYxIDogMSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSI0OTQgOiAzMjkuMzMzMzMgOiAxIgogICAgICAgaWQ9InBlcnNwZWN0aXZlMzgzMCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgyMiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgyNCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2U3ZTdlNztzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODI2IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgyMiIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDM4NzYiCiAgICAgICBjeD0iLTIwOC45MTYwNiIKICAgICAgIGN5PSIxNTAuMjg5NzMiCiAgICAgICBmeD0iLTIwOC45MTYwNiIKICAgICAgIGZ5PSIxNTAuMjg5NzMiCiAgICAgICByPSI0NzAuMDExNTciCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEuMDAwMDQ5OSw0OTcuOTA4MzIsLTkzLjIxMjU3NykiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTMyMCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUzMjYiCiAgICAgICB4MT0iLTk1LjExNDA5OCIKICAgICAgIHkxPSIxMDEuNjM0NzQiCiAgICAgICB4Mj0iNDIxLjQ1MTM5IgogICAgICAgeTI9IjEwMS42MzQ3NCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgzNDUuMTczMTksNDA3LjQ0NzEpIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MzI4IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTMzNCIKICAgICAgIHgxPSIxODc3LjU4MjkiCiAgICAgICB5MT0iOTE0LjQ2MDg4IgogICAgICAgeDI9IjE3MzQuMzE4NSIKICAgICAgIHkyPSIzMjMuMzE5NjEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyNTcuMzk4OCwtMTI2Ljg4NTQ2KSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTM1MiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUzNTgiCiAgICAgICB4MT0iLTM0LjQyNzU0IgogICAgICAgeTE9Ijg3Mi41ODU1NyIKICAgICAgIHgyPSItMzQuNDI3NTQiCiAgICAgICB5Mj0iNDYuNjE2MDI4IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDYzLjQ0MjUsMi45MDYxNDgyKSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTM2MCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUzNjYiCiAgICAgICB4MT0iNTA5LjI3NzY4IgogICAgICAgeTE9Ijc1My4xNDUzMiIKICAgICAgIHgyPSI1MDkuMjc3NjgiCiAgICAgICB5Mj0iNzY2LjQwNDI0IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMTA1MDg0OTcsMC4xNTM2MDE0NCkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUzNzYiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzgyIgogICAgICAgeDE9IjQ4Mi40ODM4NiIKICAgICAgIHkxPSI3ODEuMzY0NjIiCiAgICAgICB4Mj0iNDgyLjQ4Mzg2IgogICAgICAgeTI9IjcxNC40MjI3OSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MzIwLTUiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzI2LTQiCiAgICAgICB4MT0iLTk1LjExNDA5OCIKICAgICAgIHkxPSIxMDEuNjM0NzQiCiAgICAgICB4Mj0iNDIxLjQ1MTM5IgogICAgICAgeTI9IjEwMS42MzQ3NCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgzNDUuMDY4MTEsNDA3LjI5MzUpIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzIwLTUiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZTVlNWU1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDUzMjItOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1MzI0LTgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MzIwLTEiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzI2LTIiCiAgICAgICB4MT0iLTk1LjExNDA5OCIKICAgICAgIHkxPSIxMDEuNjM0NzQiCiAgICAgICB4Mj0iNDIxLjQ1MTM5IgogICAgICAgeTI9IjEwMS42MzQ3NCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgzNDUuMDY4MTEsNDA3LjI5MzUpIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MzIwLTEiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZTVlNWU1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDUzMjItNCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1MzI0LTkiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9Ijk4NCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI2NzUiCiAgICAgaWQ9Im5hbWVkdmlldzQiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnNuYXAtZ2xvYmFsPSJ0cnVlIgogICAgIGZpdC1tYXJnaW4tdG9wPSIwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMCIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIwIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIwIgogICAgIGlua3NjYXBlOnpvb209IjAuMzUzNTUzMzkiCiAgICAgaW5rc2NhcGU6Y3g9IjM5My41MTgiCiAgICAgaW5rc2NhcGU6Y3k9IjU1Ny4xMTE5OCIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzIiIC8+CiAgPHJlY3QKICAgICBzdHlsZT0iZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50Mzg3Nik7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgaWQ9InJlY3QzODQ2IgogICAgIHdpZHRoPSI5NDAuMDIzMTMiCiAgICAgaGVpZ2h0PSI5NDAuMDcwMDEiCiAgICAgeD0iMCIKICAgICB5PSIwIgogICAgIHJ5PSIwIiAvPgogIDxwYXRoCiAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDUzNTgpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIgogICAgIGQ9Ik0gMjIuNTA2NTIxLDk1OC40ODAyMiAwLjAwNjUyMDk2LDkzNS45MTYyIGwgMCwtNDY3Ljk1ODA4IDAsLTQ2Ny45NTgwNTI4MjIxOTMgTCAyMy4wMTA3NDEsMjMuMDA0Mjg3IGwgMjMuMDA0MjIsMjMuMDA0MjMgLTAuNTA0MjIsNDY3LjUxNzg2MyAtMC41MDQyMiw0NjcuNTE3ODggLTIyLjUsLTIyLjU2NDA0IHoiCiAgICAgaWQ9InBhdGg1MzUwIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPHJlY3QKICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NTMzNCk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgaWQ9InJlY3QzODQ2LTUiCiAgICAgd2lkdGg9Ijk0MC4wMjMxMyIKICAgICBoZWlnaHQ9Ijk0MC4wNzAwMSIKICAgICB4PSI0Ni4wMTM0MTYiCiAgICAgeT0iNDYuMDExNDM2IgogICAgIHJ5PSIwIiAvPgogIDxwYXRoCiAgICAgc3R5bGU9ImZpbGw6I2ZmMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIKICAgICBkPSJtIDI1MC4xODkyNSw3NjYuOTAwMDkgMCwtNTguMjkyNyA5Ljk5MDksLTEuMDAxNiBjIDQ4LjAxNTUsLTQuODEzMiA3MC45NzcxLC0xNS4xODU2IDEwMS43NTg5LC00NS45Njc0IDM1LjkwMjEsLTM1LjkwMjEgNTkuOTQzOSwtODAuOTAxOCA5OS43NTM0LC0xODYuNzExMSAyNi4zNDIsLTcwLjAxNDEgNDguMTc4MiwtMTEyLjUyMDYgODIuMzg5MiwtMTYwLjM3OTUgMjkuODU5NSwtNDEuNzcxNCA3Ny4xNzg2LC03NS42MjA1NCAxMzAuMTY0OSwtOTMuMTExNzQgMjYuMTA3MiwtOC42MTgxIDYxLjYxOTYsLTE0LjkzNzggODMuOTQxMSwtMTQuOTM3OCBsIDguNTY3MSwwIDAsNTguMzQ3NDQgMCw1OC4zNDczIC05Ljk5MDksMC44NzIzIGMgLTI2LjQ3NzcsMi4zMTE3IC00Ny45MzgyLDguODc5NyAtNjguNjU4NCwyMS4wMTMxIC0yNy41NjIsMTYuMTM5OCAtNjEuNDE0MSw1Ny41NzIgLTgwLjQ1MDksOTguNDY1MSAtNi42MDU5LDE0LjE5MDMgLTEwLjI1MDQsMTMuMDk2OSA0My42NSwxMy4wOTY5IGwgNDcuMzY0MiwwIDAsNTkuMTkxMiAwLDU5LjE5MTMgLTcyLjY1NTksMC4zODQgLTcyLjY1NTgsMC4zODM5IC03Ljk5MDgsMTcuNjYyNSBjIC0yMC40ODQ5LDQ1LjI3ODkgLTQ0LjM4MSw4Ny45MTg5IC02Ny43OTI3LDEyMC45Njg0IC00NC45ODg5LDYzLjUwOTUgLTEwNS4wNDkzLDk4LjAzOTQgLTE4OC45MDA5LDEwOC42MDMxIC05LjM2MTksMS4xNzk0IC0yMS44NTA1LDIuMTQ5NyAtMjcuNzUyNSwyLjE1NjIgbCAtMTAuNzMwOSwwLjAxMiAwLC01OC4yOTI3IHoiCiAgICAgaWQ9InBhdGgzODIwLTEiCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICA8cGF0aAogICAgIHN0eWxlPSJmaWxsOiM4MDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiCiAgICAgZD0ibSAyNTAuMjMyMTEsNzU0Ljg0IDAsLTU4LjI5MjcgOS45OTA4OCwtMS4wMDE2IGMgNDguMDE1NTYsLTQuODEzMiA3MC45NzcxMywtMTUuMTg1NiAxMDEuNzU4OTYsLTQ1Ljk2NzQgMzUuOTAyMTMsLTM1LjkwMjEgNTkuOTQzOTIsLTgwLjkwMTggOTkuNzUzNDEsLTE4Ni43MTExIDI2LjM0MTk5LC03MC4wMTQxIDQ4LjE3ODE3LC0xMTIuNTIwNiA4Mi4zODkxOCwtMTYwLjM3OTUgMjkuODU5NDksLTQxLjc3MTQgNzcuMTc4NjIsLTc1LjYyMDUgMTMwLjE2NDkxLC05My4xMTE2IDI2LjEwNzE0LC04LjYxODIgNjEuNjE5NTcsLTE0LjkzNzkgODMuOTQxMTMsLTE0LjkzNzkgbCA4LjU2NzAxLDAgMCw1OC4zNDc0IDAsNTguMzQ3MyAtOS45OTA4OCwwLjg3MjMgYyAtMjYuNDc3NjcsMi4zMTE3IC00Ny45MzgyMSw4Ljg3OTcgLTY4LjY1ODM5LDIxLjAxMzEgLTI3LjU2MTk0LDE2LjEzOTggLTYxLjQxNDEsNTcuNTcyIC04MC40NTA4NSw5OC40NjUxIC02LjYwNTk3LDE0LjE5MDMgLTEwLjI1MDQ0LDEzLjA5NjkgNDMuNjQ5OTYsMTMuMDk2OSBsIDQ3LjM2NDE3LDAgMCw1OS4xOTEyIDAsNTkuMTkxMyAtNzIuNjU1ODQsMC4zODQgLTcyLjY1NTgyLDAuMzgzOSAtNy45OTA3NywxNy42NjI1IGMgLTIwLjQ4NDkzLDQ1LjI3ODkgLTQ0LjM4MTA1LDg3LjkxODkgLTY3Ljc5MjcyLDEyMC45Njg0IC00NC45ODg5Myw2My41MDk0IC0xMDUuMDQ5MjcsOTguMDM5NCAtMTg4LjkwMDk1LDEwOC42MDMxIC05LjM2MTgyLDEuMTc5NCAtMjEuODUwNDIsMi4xNDk3IC0yNy43NTI0NCwyLjE1NjIgbCAtMTAuNzMwOTUsMC4wMTIgMCwtNTguMjkyNyB6IgogICAgIGlkPSJwYXRoMzgyMC0yIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPHRleHQKICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgIHN0eWxlPSJmb250LXNpemU6MzJweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHJldGNoOm5vcm1hbDtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDUzNjYpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlZlcmRhbmE7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpWZXJkYW5hIEJvbGQiCiAgICAgeD0iNDk1LjY3NDk5IgogICAgIHk9Ijc2Ny4zMTg5MSIKICAgICBpZD0idGV4dDMwMzIiCiAgICAgc29kaXBvZGk6bGluZXNwYWNpbmc9IjEyNSUiPjx0c3BhbgogICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgIGlkPSJ0c3BhbjMwMzQiCiAgICAgICB4PSI0OTUuNjc0OTkiCiAgICAgICB5PSI3NjcuMzE4OTEiCiAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NTM2Nik7ZmlsbC1vcGFjaXR5OjEiPlI8L3RzcGFuPjwvdGV4dD4KICA8cGF0aAogICAgIHNvZGlwb2RpOnR5cGU9ImFyYyIKICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTp1cmwoI2xpbmVhckdyYWRpZW50NTM4Mik7c3Ryb2tlLXdpZHRoOjE1LjgxMTAxOTk7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZSIKICAgICBpZD0icGF0aDMwNDIiCiAgICAgc29kaXBvZGk6Y3g9IjQ4Mi4xNTI0NCIKICAgICBzb2RpcG9kaTpjeT0iNzI1LjY0NjkxIgogICAgIHNvZGlwb2RpOnJ4PSI1My4yODQ2OTEiCiAgICAgc29kaXBvZGk6cnk9IjUzLjI4NDY5MSIKICAgICBkPSJtIDUzNS40MzcxMyw3MjUuNjQ2OTEgYSA1My4yODQ2OTEsNTMuMjg0NjkxIDAgMSAxIC0xMDYuNTY5MzksMCA1My4yODQ2OTEsNTMuMjg0NjkxIDAgMSAxIDEwNi41NjkzOSwwIHoiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4zODA3MjY0MSwwLDAsMC4zODA3MjY0MSwzMjQuMzQ0NzEsNDc5LjM2OTM4KSIgLz4KICA8cGF0aAogICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQ1MzI2KTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIKICAgICBkPSJtIDI1MC4wNTkwOSw3NjAuMTM2MzcgMCwtNTguMjkyNzIgOS45OTA4OCwtMS4wMDE1MiBjIDQ4LjAxNTU2LC00LjgxMzIxIDcwLjk3NzEzLC0xNS4xODU2MiAxMDEuNzU4OTYsLTQ1Ljk2NzQ0IDM1LjkwMjEzLC0zNS45MDIxMyA1OS45NDM5MiwtODAuOTAxNzcgOTkuNzUzNDEsLTE4Ni43MTEwNiAyNi4zNDE5OSwtNzAuMDE0MTEgNDguMTc4MTcsLTExMi41MjA2MyA4Mi4zODkxOCwtMTYwLjM3OTUgMjkuODU5NDksLTQxLjc3MTQgNzcuMTc4NjIsLTc1LjYyMDUgMTMwLjE2NDkxLC05My4xMTE2OSAyNi4xMDcxNCwtOC42MTgxOCA2MS42MTk1NywtMTQuOTM3ODIgODMuOTQxMTMsLTE0LjkzNzgyIGwgOC41NjcwMSwwIDAsNTguMzQ3MzQgMCw1OC4zNDczMyAtOS45OTA4OCwwLjg3MjI3IGMgLTI2LjQ3NzY3LDIuMzExNjggLTQ3LjkzODIxLDguODc5NzUgLTY4LjY1ODM5LDIxLjAxMzE1IC0yNy41NjE5NCwxNi4xMzk4MSAtNjEuNDE0MSw1Ny41NzIwMiAtODAuNDUwODUsOTguNDY1MDYgLTYuNjA1OTcsMTQuMTkwMzYgLTEwLjI1MDQ0LDEzLjA5Njg3IDQzLjY0OTk2LDEzLjA5Njg3IGwgNDcuMzY0MTcsMCAwLDU5LjE5MTI3IDAsNTkuMTkxMjUgLTcyLjY1NTg0LDAuMzgzOTkgLTcyLjY1NTgyLDAuMzgzOTggLTcuOTkwNzcsMTcuNjYyNDIgYyAtMjAuNDg0OTMsNDUuMjc4OTYgLTQ0LjM4MTA1LDg3LjkxODkgLTY3Ljc5MjcyLDEyMC45Njg0IC00NC45ODg5Myw2My41MDk0OSAtMTA1LjA0OTI3LDk4LjAzOTQ1IC0xODguOTAwOTUsMTA4LjYwMzExIC05LjM2MTgyLDEuMTc5NCAtMjEuODUwNDIsMi4xNDk3IC0yNy43NTI0NCwyLjE1NjIgbCAtMTAuNzMwOTUsMC4wMTE4IDAsLTU4LjI5MjcxIHoiCiAgICAgaWQ9InBhdGgzODIwIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+Cjwvc3ZnPgo=
// ==/UserScript==
/*
cssSelectors = [
'object[type="application/x-shockwave-flash"]',
'*[type="application/x-shockwave-flash"]',
'embed[src$=".swf"]']
*/
for (const element of document.querySelectorAll('embed[src$=".swf"]')) {
let divElement = document.createElement('div');
divElement.textContent = 'Click to run Adobe Flash.';// Click to run Adobe Flash.
divElement.setAttribute('swf-data', element.src);
divElement.style.height = element.closest('object').height;
divElement.style.width = element.closest('object').width;
divElement.style.fontSize = element.closest('object').height / 10;
divElement.style.fontStyle = 'italic';
divElement.style.display = 'table-cell';
divElement.style.verticalAlign = 'middle';
divElement.style.background = 'DarkRed';
divElement.style.color = 'WhiteSmoke';
divElement.style.textAlign = 'center';
divElement.style.fontWeight = 'bold';
divElement.style.userSelect = 'none';
divElement.addEventListener ("click", function() {
swf2js.load(element.src);
let swfElement = document.querySelector('div[id*="swf2js_"]:last-child');
swfElement.style.height = divElement.style.height;
swfElement.style.width = divElement.style.width;
divElement.parentNode.replaceChild(swfElement, divElement);
});
let orgElement = element.closest('object');
insertAfter(orgElement, divElement);
orgElement.remove();
}
// /questions/4793604/how-to-insert-an-element-after-another-element-in-javascript-without-using-a-lib
function insertAfter(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
/* Initial release
for (const element of document.querySelectorAll('embed[src$=".swf"]')) {
swf2js.load(element.src);
let newElement = document.querySelector('div[id*="swf2js_"]:last-child');
let orgElement = element.closest('object');
insertAfter(orgElement, newElement);
orgElement.remove();
}
function insertAfter(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
*/