AI.PIP21.1 Programare independentă de platformăAutomatică și Informaticădata:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNjAiIGhlaWdodD0iNjEyIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJyZ2IoMTE2LCAxODUsIDI1NSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMDg5MzMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAtMTIxLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA4OTMzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNDkwLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjExNTMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAtMTA0LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjExNTMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA1MDcuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMDg5MzMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAtODcuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMDg5MzMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA1MjQuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMDYzMzMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAtNzAuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMDYzMzMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA1NDEuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMTA2NjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIC01My41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4xMDY2NjY2NjY2NjY2NztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNTU4LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA3MjtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgLTM2LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA3MjtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNTc1LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjA5ODtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgLTE5LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjA5ODtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNTkyLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA4OTMzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgLTIuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMDg5MzMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA2MDkuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTU7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDE0LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjE1O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA2MjYuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMDU0NjY2NjY2NjY2NjY3O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAzMS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wNTQ2NjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDY0My41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xMzI2NjY2NjY2NjY2NztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNDguNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTMyNjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDY2MC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xNTtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNjUuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTU7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDY3Ny41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4xMDY2NjY2NjY2NjY2NztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgODIuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMTA2NjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDY5NC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xNTtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgOTkuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTU7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDcxMS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wOTg7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDExNi41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wOTg7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDcyOC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xMTUzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgMTMzLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjExNTMzMzMzMzMzMzMzO3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA3NDUuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTMyNjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDE1MC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xMzI2NjY2NjY2NjY2NztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNzYyLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjEzMjY2NjY2NjY2NjY3O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAxNjcuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTMyNjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDc3OS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4xMjQ7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDE4NC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4xMjQ7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDc5Ni41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wNDY7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDIwMS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wNDY7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDgxMy41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wNTQ2NjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDIxOC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wNTQ2NjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDgzMC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wODA2NjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDIzNS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wODA2NjY2NjY2NjY2Njc7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDg0Ny41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xMzI2NjY2NjY2NjY2NztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgMjUyLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjEzMjY2NjY2NjY2NjY3O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA4NjQuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiNkZGQiIHN0eWxlPSJvcGFjaXR5OjAuMTQxMzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDI2OS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4xNDEzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgODgxLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA4OTMzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgMjg2LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA4OTMzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgODk4LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA4OTMzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgMzAzLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjA4OTMzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgOTE1LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjE1O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAzMjAuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTU7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDkzMi41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wOTg7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDMzNy41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4wOTg7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDk0OS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wODkzMzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDM1NC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wODkzMzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDk2Ni41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wODkzMzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDM3MS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wODkzMzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDk4My41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wODkzMzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDM4OC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wODkzMzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDEwMDAuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMTE1MzMzMzMzMzMzMzM7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDQwNS41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xMTUzMzMzMzMzMzMzMztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgMTAxNy41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wNzI7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDQyMi41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2RkZCIgc3R5bGU9Im9wYWNpdHk6MC4wNzI7c3Ryb2tlLXdpZHRoOjE3cHg7IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjUsIDEwMzQuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMDk4O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCA0MzkuNSkiIC8+PHBhdGggZD0iTTAgODEgQyA0NS41IDAsIDg1IDAsIDEzMCA4MSBTIDIxNSAxNjIsIDI2MCA4MSBTIDM0NSAwLCAzOTAsIDgxIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0eWxlPSJvcGFjaXR5OjAuMDk4O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAxMDUxLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjEyNDtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNDU2LjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZGRkIiBzdHlsZT0ib3BhY2l0eTowLjEyNDtzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgMTA2OC41KSIgLz48cGF0aCBkPSJNMCA4MSBDIDQ1LjUgMCwgODUgMCwgMTMwIDgxIFMgMjE1IDE2MiwgMjYwIDgxIFMgMzQ1IDAsIDM5MCwgODEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzIyMiIgc3R5bGU9Im9wYWNpdHk6MC4xMzI2NjY2NjY2NjY2NztzdHJva2Utd2lkdGg6MTdweDsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NSwgNDczLjUpIiAvPjxwYXRoIGQ9Ik0wIDgxIEMgNDUuNSAwLCA4NSAwLCAxMzAgODEgUyAyMTUgMTYyLCAyNjAgODEgUyAzNDUgMCwgMzkwLCA4MSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMjIyIiBzdHlsZT0ib3BhY2l0eTowLjEzMjY2NjY2NjY2NjY3O3N0cm9rZS13aWR0aDoxN3B4OyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY1LCAxMDg1LjUpIiAvPjwvc3ZnPg==
Proiect web cu date în timp real dintr-o bază de date locală
Studentul poate alege traseul Java sau traseul Python pentru implementare.
Obiective
realizarea unui flux end-to-end: achiziție date de pe STM32 → port serial → DB locală → interfață web;
afișarea datelor în timp real (grafic + tabel), cu latență percepută ≤ 2 secunde;
documentarea arhitecturii și a pașilor de rulare pentru traseul ales (Java sau Python).
Alegeți unul dintre trasee
Traseul A — Java: citire serial + API web + acces DB implementate în Java (ex.: Spring Boot, JPA). Frontend HTML/CSS/JS.
Traseul B — Python: citire serial + API web + acces DB implementate în Python (ex.: FastAPI/Flask, SQLAlchemy). Frontend HTML/CSS/JS.
Cerințe minime (comune ambelor trasee)
DB locală cu tabel minim measurements(id, value, unit, source, created_at);
API care oferă datele: GET /api/data?limit=N și endpoint „live” (WebSocket sau SSE / polling 1s);
UI HTML/CSS/JS cu un chart și un tabel ce se actualizează automat;
Loguri & eroare: mesaje clare la port indisponibil, DB căzut, date invalide;
README cu pașii de rulare, configurări (port serial, DSN) și diagrama arhitecturii.
Traseul A — Java
Stack propus: Spring Boot (REST/WebSocket), JPA/Hibernate (JDBC), driver DB (SQLite/PostgreSQL/MySQL), librărie serial (ex.: com.fazecast:jSerialComm), Chart în front-end (Chart.js).
Serial: citește din port (baud/paritate/stop) și inseră în DB (batch sau per eșantion).